powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с датой
4 сообщений из 4, страница 1 из 1
Проблема с датой
    #32467686
marvel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть текстовое поле, где пользователь вводит дату. Как мне программно проверить корректность ввода
...
Рейтинг: 0 / 0
Проблема с датой
    #32470965
r00teR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно повесить обработчик на событие КейПресс для ТекстовогоПоля, который будет например блокировать определённые символы, что-то типа:
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim My_Template As String 'это типа маска ввода
My_Template = "!@#$%^&*()_+=abcdefgh"
If InStr(1, My_Template, Chr(KeyAscii)) > 0 Then KeyAscii = 0
...
'и по аналогии с вышенаписанной строчкой можно проверить символы, начиная с другой позиции в строке, например (т.е. если формат даты типа dd/mm/yyyy) на правильность ввода символов или сравнить с какой-нибудь датой, посчитать разницу между датами, например, в днях (по-моему функция DateDiff...)
End Sub
...
Рейтинг: 0 / 0
Проблема с датой
    #32471021
Flare
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я для ввода дат использую обычно Infragistics DateEdit ActiveX Control, а потом делаю проверку вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Private Sub dat_d()
...
If Len(DBirthDate.DateString) >  0  Then
    If CDate(DBirthDate.DateString) < CDate( "01 . 01 . 1900 ") And Len(DBirthDate.DateString) >  0  Or DBirthDate.DateString > CDate( "01 . 01 . 2100 ") And Len(DBirthDate.DateString) >  0  Then
        imsg = MsgBox( "Неверная дата рождения "  & DBirthDate.DateString, vbExclamation,  "Обновление данных невозможно." )
    Exit Sub
End If
...
End Sub

DBirthDate - DateEdit-контрол в данном примере.
Проблем обычно никаких.
...
Рейтинг: 0 / 0
Проблема с датой
    #32471213
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых, нужно проверить, а дата ли это вообще и проще всего (ИМХО) это сделать с помощью IsDate, привязав к событию Validate:

Private Sub txmДатаРожд_Validate(Ñancel As Boolean)
If Not IsDate(txmДатаРожд) Then
Ñancel = True
Beep
Else
dtДатаРожд = txmДатаРожд
Call TrfSum
End If
End Sub

Ну а далее, анализируешь переменную dtДатаРожд, разбивая ее на месяцы, дни, года ...
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с датой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]