VBA文本框输入掩码

时间:2009-07-16 05:47:43

标签: ms-access vba syntax validation

我在文本框中对日期和时间进行了两次验证:

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

需要(dd / mm hh:mm)并且工作正常

但有时我会把

34/34 56:78它会采取,但它不应该

日期不超过31,第12个月24和第59分钟

请帮忙

4 个答案:

答案 0 :(得分:1)

我刚刚在信用卡到期日期字段中遇到此问题。我愚蠢地将00/0000作为输入掩码更改为00/00,并遇到了您遇到的问题。问题是如果第二对数字是有效日期,它将被解释为日期,并且将默认提供当前年份。因此,如果您输入:

  06/09

2009年6月,它将存储为:

  06/09/2009

另一方面,如果您输入:

  06/34

它将被解释为

  06/01/1934

据我所知,你做你想做的事的唯一方法是使用4位数的年份。

答案 1 :(得分:0)

使用IsDate()

验证日期
Public Function ValidateDate(input As String) As Boolean    

    ValidateDate = IsDate(input)

End Function

返回一个布尔值,如果输入是有效的日期字符串,则返回True;否则返回False。最大值为

  

日:31

     

月:12

     

小时:23

     

Min:59

     

秒:59

答案 2 :(得分:0)

Access中的输入掩码不能限制为值范围,例如RegExp。唯一的方法是使用一些验证(如果你愿意,可以在按键上完成)。

答案 3 :(得分:0)

以不同方式解决问题。为用户提供可供选择的日历。你可以使用Allen Browne的Popup Calendar

之类的东西

禁用并锁定文本字段,您可以保证格式正确。