我需要每隔24小时在午夜运行一次。如果是12:00:00或12:00:03,只要它在午夜左右就没关系。
我是否需要一个定时器控件来检查它每分钟的时间,或者是否有更复杂/更简单的方法来执行此操作?
检查当前是否是午夜的if语句是什么?
答案 0 :(得分:2)
您是否需要始终保持数据库处于打开状态?
如果没有,请考虑使用Windows计划程序创建一个任务,以便在午夜打开您的数据库。使用autoexec宏,在数据库打开时启动您的进程。
如果您不希望每次数据库打开时都运行该进程,请将该宏命名为autoexec以外的其他名称。然后在Windows计划程序中创建任务时,使用Access' / exec 命令选项和宏名称。
更新:在回答“ if if语句以检查当前是否为午夜”时,您可以使用以下表达式:
If TimeValue(Now()) = #12:00:00 AM# Then
然而,我怀疑这会对你有多大帮助,因为那只会在午夜正常。您希望您的进程在上午12:01运行(如果尚未运行)。所以我认为你需要的是一个带有日期/时间字段,run_date和该字段上唯一索引的CompletedJobs表。然后你可以使用DCount和Date函数来查看今天的日期是否存在于CompletedJobs中。
DCount("run_date", "CompletedJobs", "run_date = #" & Date() & "#")
如果DCount<> 0,您的流程今天已经运行。如果DCount = 0,请运行您的流程,然后将今天的日期插入CompletedJobs。
INSERT INTO CompletedJobs (run_date)
VALUES (Date());
答案 1 :(得分:0)
您是否可以使用任务计划程序来运行可以使用ActiveX在您的数据库中运行所需代码的vbs文件