Маска ввода текстового поля VBA - PullRequest
1 голос
/ 16 июля 2009

У меня есть две проверки для даты и времени, как показано ниже в текстовых полях:

00/00\ 00:00;0;0;_

Это займет (дд / мм чч: мм) и отлично работает

Но иногда я ставлю

34/34 56:78 это займет, но это не должно

Дата не должна превышать 31, месяц 12, время 24 и минута 59

.

Пожалуйста, помогите

Ответы [ 4 ]

1 голос
/ 16 июля 2009

Я только что столкнулся с этой проблемой вчера в поле даты истечения срока действия кредитной карты.Я тупо изменил 00/0000 в качестве маски ввода на 00/00 и столкнулся с проблемой, с которой вы столкнулись.проблема заключается в том, что если вторая пара цифр является действительной датой, она будет интерпретироваться как дата, а текущий год будет предоставлен неявно.Таким образом, если вы введете:

  06/09

для июня 2009 года, оно будет сохранено как:

  06/09/2009

С другой стороны, если вы введете:

  06/34

это будет интерпретироваться как

  06/01/1934

Насколько я понимаю, единственный способ для вас сделать то, что вы хотите, это использовать год из 4 цифр.

0 голосов
/ 16 июля 2009

Маски ввода в Access не могут быть ограничены диапазонами значений, как с RegExp. Единственный способ сделать это - использовать некоторую проверку (которая может быть сделана нажатием клавиши, если вы хотите).

0 голосов
/ 16 июля 2009

Подход к проблеме по-другому. Дайте пользователю календарь для выбора. Вы можете использовать что-то вроде всплывающего календаря Аллена Брауна 1002 *

Отключите и заблокируйте текстовое поле, и вы можете гарантировать, что формат правильный.

0 голосов
/ 16 июля 2009

подтвердите дату, используя IsDate()

Public Function ValidateDate(input As String) As Boolean    

    ValidateDate = IsDate(input)

End Function

это возвращает логическое значение, True, если ввод является допустимой строкой даты, False, если это не так. Максимальные значения

День: 31

Месяц: 12

час: 23

Мин: 59

с .: 59

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...