2012-04-21 27 views
2

我本来以为Form!MyForm!Date >= #1/12/2010#可以做到这一点,但它似乎没有工作。在VB中等于或小于x的日期

有人可以提供一些线索什么我做错了

全码:

If (Forms!MyForm!DateSubmitted >= #1/01/2012#) Then 
MsgBox ("Past due date") 
End If 
+2

是'DateSubmitted'一个文本框?如果是,那么你正在比较一个字符串和日期。您必须首先将“Forms!MyForm!DateSubmitted”转换为日期,然后才能进行比较。 – 2012-04-21 13:48:08

+0

我还想补充说明'DateSubmitted'中的日期必须表示有效的字符串日期,例如“1/1/2012”而不是“1.1.2012” – 2012-04-21 13:59:11

回答

2

使用CDate函数来,至少,请确保您比较两个日期:

If (CDate(Forms!MyForm!DateSubmitted) >= #1/1/2012#) Then 
    MsgBox ("Past due date") 
End If 

如果你的输入字符串不是有效的日期字符串,你会得到类型错误,但你会知道你没有比较日期类型。

另外,检查你比较有效日期:

Form!MyForm!Date >= #1/12/2010# '2010 

Forms!MyForm!DateSubmitted >= #1/01/2012# '2012 
相关问题