Office中国论坛/Access中国论坛
标题:
[求助]是代码错了吗?
[打印本页]
作者:
wgf2005
时间:
2005-5-10 03:14
标题:
[求助]是代码错了吗?
意图:打开本窗体时首先判断数据表”日期“时间与系统时间作对比,如果日期字段值小于系统日期,则关闭窗体同时弹出一个消息框“试用期已到,如果大于系统时间则正常打开本窗体。
代码过程:在本窗体的加载事件中作出判断
判断1、首先判断数据库中是否有”日期“这个数据表
如果有这个表,再判断这个表中的日期是否小于系统日期
如果小于系统日期,那么弹出消息”试用期已到“并删除这个表,同时关闭这个窗体。否则正常打开窗体。
判断2、如果没有“日期”这个数据表,就弹出消息:试用期已到,同时关闭这个窗体。
这个问题真让我头疼:我将系统日期改为大于日期表中的日期,而系统却没有反映。问题出在哪啦?[attach]10345[/attach]
[此贴子已经被作者于2005-5-9 19:20:44编辑过]
作者:
mhaibo
时间:
2005-5-10 03:58
dim dateA as date
dateA =DLookup("日期", "日期")
if dateA <date then
作者:
青青
时间:
2005-5-11 07:30
这是因为您将“日期”表里的“日期”字段设置为“文本”的类型了。
这样,DLookup("日期", "日期")获得的字串值永远大于日期值的。
使得 DLookup("日期", "日期") < Date 永远为 False
将日期字段改为“日期/时间”的数据类型就可以了。
作者:
青青
时间:
2005-5-11 07:42
代码可简化为:
Private Sub Form_Load()
On Error Resume Next
If Nz(DLookup("日期", "日期")) < Date Then 'Exit Sub '如果日期字段的日期值小于系统日期
MsgBox "测试期已到" '弹出消息:测试期已到
DoCmd.DeleteObject acTable, "日期" '删除“日期”数据表(防止用户修改日期表)
DoCmd.Close '关闭窗体
End If
End Sub
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3