Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с датой / 4 сообщений из 4, страница 1 из 1
02.04.2004, 18:48
    #32467686
marvel
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с датой
Есть текстовое поле, где пользователь вводит дату. Как мне программно проверить корректность ввода
...
Рейтинг: 0 / 0
06.04.2004, 16:42
    #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
06.04.2004, 17:10
    #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
06.04.2004, 19:41
    #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
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблема с датой / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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