如何安排流程?

时间:2010-06-22 15:58:28

标签: ms-access access-vba

我需要每隔24小时在午夜运行一次。如果是12:00:00或12:00:03,只要它在午夜左右就没关系。

我是否需要一个定时器控件来检查它每分钟的时间,或者是否有更复杂/更简单的方法来执行此操作?

检查当前是否是午夜的if语句是什么?

2 个答案:

答案 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文件