if isdate(text1) then if datediff('s',now(),cdate(text1))<0 then msgbox "error" end if
如果你的text1里面输入的是标准格式的日期数据,例如2004-07-15,这样比就可以: If Now > Text1.Text Then MsgBox "OK" Else MsgBox "False" End If
if datediff("d",now,cdate(text1.text))<0 then 报错 else 正确 end if
Private Sub Command1_Click() 'If CDate(Text1.Text) > Now Then MsgBox "err" If DateDiff("s", Now, CDate(Text1)) > 0 Then MsgBox "err" End SubPrivate Sub Form_Load() Text1.Text = Date + 10 'text1.text=date-1 End Sub
If Now > Text1.Text Then MsgBox "OK" Else MsgBox "False" End If呵呵,简单的好,如果text是标准时间的话
不会吧: Option ExplicitPrivate Sub Command1_Click() 'If CDate(Text1.Text) > Now Then MsgBox "err" If DateDiff("s", Now, CDate(Text1)) > 0 Then MsgBox "err" End SubPrivate Sub Form_Load() Text1.Text = #1/1/2008# End Sub
If IsDate(Text1) Then If DateDiff("s", Now(), CDate(Text1)) < 0 Then MsgBox "error" Else MsgBox "OK" End If End If
End Sub
主要是执行 If IsDate(Text1) Then 出现的就是ELSE的状态。所以后面的语句就根本不执行了
Option ExplicitPrivate Sub Command1_Click() MsgBox IIf(Now < CDate(Text1), "将来", "过去") MsgBox IIf(DateDiff("s", Now, CDate(Text1)) > 0, "将来", "过去") End SubPrivate Sub Form_Load() Text1.Text = "2008-1-1" End Sub
isdate()中的数据应该是什末类型?2008-1-1的格式好像无效吧 主要是执行 If IsDate(Text1) Then 出现的就是ELSE的状态。所以后面的语句就根本不执行了 ======================= 你先运行一下这个代码看结果显示什么????? Private Sub Form_Click() Print IsDate("2008-1-1") End Sub你不要自己输入代码,原样复制运行试试,我这里是true......
If format(Now,"yyyy-mm-dd") > format(Text1.Text,"yyyy-mm-dd") Then MsgBox "OK" Else MsgBox "False" End If另外,最好使用DtPicKer控件来选择日期
同意(mylzw俺是天空里地一片云)的方法。 楼主调用的日期函数(now)返回的是当前日期和时间,而在text1.text中输入的是日期,两者进行对比肯定会报错。 进行对比前最好对当前时间和对比时间进行格式化。如 format(Now,"yyyy-mm-dd") or format(Now,"yyyy年mm月dd日") ‘返回系统日期 format(Text1.Text,"yyyy-mm-dd") or format(Text1.Text,"yyyy年mm月dd日") ’输入的日期。
if isdate(text1) then
if datediff('s',now(),cdate(text1))<0 then msgbox "error"
end if
MsgBox "OK"
Else
MsgBox "False"
End If
报错
else
正确
end if
Private Sub Command1_Click()
'If CDate(Text1.Text) > Now Then MsgBox "err"
If DateDiff("s", Now, CDate(Text1)) > 0 Then MsgBox "err"
End SubPrivate Sub Form_Load()
Text1.Text = Date + 10
'text1.text=date-1
End Sub
MsgBox "OK"
Else
MsgBox "False"
End If呵呵,简单的好,如果text是标准时间的话
按期它的办法,都说DATEDIFF中类型不匹配。
我在TEXT中输入的是2008-1-1,应该没问题吧。
为何还报错呢?
Option ExplicitPrivate Sub Command1_Click()
'If CDate(Text1.Text) > Now Then MsgBox "err"
If DateDiff("s", Now, CDate(Text1)) > 0 Then MsgBox "err"
End SubPrivate Sub Form_Load()
Text1.Text = #1/1/2008#
End Sub
if Isdate(text1) then
If DateDiff("s", Now, Text1) > 0 Then MsgBox "err"
endif
=========================================
注意你使用的那两个减号,不要用中文输入法来输入。想验证输入的格式是否正确,用isdate(trim(text1.text))....另外,上面northwolves(狼行天下)兄给出的代码好像跟楼主的要求刚好相反,试改为:
If DateDiff("s", CDate(Text1),Now) > 0 Then MsgBox "err"
isdate()中的数据应该是什末类型?2008-1-1的格式好像无效吧
你再试一下:Private Sub Command1_Click()
If IsDate(Text1) Then
If DateDiff("s", Now(), CDate(Text1)) < 0 Then
MsgBox "error"
Else
MsgBox "OK"
End If
End If
End Sub
MsgBox IIf(Now < CDate(Text1), "将来", "过去")
MsgBox IIf(DateDiff("s", Now, CDate(Text1)) > 0, "将来", "过去")
End SubPrivate Sub Form_Load()
Text1.Text = "2008-1-1"
End Sub
主要是执行 If IsDate(Text1) Then 出现的就是ELSE的状态。所以后面的语句就根本不执行了
=======================
你先运行一下这个代码看结果显示什么?????
Private Sub Form_Click()
Print IsDate("2008-1-1")
End Sub你不要自己输入代码,原样复制运行试试,我这里是true......
MsgBox "OK"
Else
MsgBox "False"
End If另外,最好使用DtPicKer控件来选择日期
楼主调用的日期函数(now)返回的是当前日期和时间,而在text1.text中输入的是日期,两者进行对比肯定会报错。
进行对比前最好对当前时间和对比时间进行格式化。如
format(Now,"yyyy-mm-dd") or format(Now,"yyyy年mm月dd日") ‘返回系统日期
format(Text1.Text,"yyyy-mm-dd") or format(Text1.Text,"yyyy年mm月dd日") ’输入的日期。