Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access 在VBA中创建计划动作_Ms Access_Vba - Fatal编程技术网

Ms access 在VBA中创建计划动作

Ms access 在VBA中创建计划动作,ms-access,vba,Ms Access,Vba,我正在写一些东西,它将根据用户输入对计划的延迟执行操作。我想我已经很接近了,但它的表现并不像我预期的那样。我总是得到一个消极的结果。这就是我到目前为止所做的: If SchedMsgBox = vbNo Then Exit Sub Else Delay = "Y" CurTime = Now() DeployDt = Format(Me.cmbSchedDT.Value, "mm/dd/yyyy") ' MsgBo

我正在写一些东西,它将根据用户输入对计划的延迟执行操作。我想我已经很接近了,但它的表现并不像我预期的那样。我总是得到一个消极的结果。这就是我到目前为止所做的:

    If SchedMsgBox = vbNo Then
        Exit Sub
    Else
      Delay = "Y"
      CurTime = Now()
      DeployDt = Format(Me.cmbSchedDT.Value, "mm/dd/yyyy")
     '   MsgBox ("DeployDate: " & DeployDt)
      DeployTime = Format(Me.lstSchedTime.Value, "hh:mm AMPM")
     '   MsgBox ("DeployTime: " & DeployTime)
      DeployDateTime = DeployDt & " " & DeployTime
     '   MsgBox ("DeployDateTime: " & DeployDateTime)
     '   DelayTimeMin = DateDiff("n", CurTime, DeployDateTime)
      DelayTime = DateDiff("s", CurTime, DeployDateTime)
     '   MsgBox ("DelayTimeInSec: " & DelayTime)

    End If
你知道我做错了什么吗

*延迟时间是程序将延迟的秒数的最终乘积。
部署时间和部署日期来自用户输入

如果问题是您从此行获得的
DelayTime
值为负值

DelayTime=DateDiff(“s”、CurTime、DeployDateTime)
。。。如果
DeployDateTime
早于
CurTime
,这将是合理的

下面是一个即时窗口示例

CurTime=Now()
? 短时间
2013年12月16日上午11:57:06
DeployDateTime=“2013-12-16 11:30”
? DateDiff(“s”,CurTime,DeployDateTime)
-1626 
尽管在我的示例和您的代码中,
DeployDateTime
是文本而不是日期/时间数据类型,
DateDiff
在计算差异时通过将其转换为日期/时间来进行协作。我不认为这种类型的差异会在这里造成什么问题

也许您只需要交换2次参数的顺序

?DateDiff(“s”,DeployDateTime,CurTime)
1626

Hans-我想你是对的,我把订单倒过来了。但我的另一个问题是,结果似乎仍然不正确。我将DeployDateTime(Datediff函数中的第一个)设置为比CurrTime早1分钟,结果是34800。请确认您正在提供所需的值。这个表达式返回60:
DateDiff(“s”,“2013-12-16 11:29”,“2013-12-16 11:30”)
我做了一个更改,去掉了CurTime=Now()并在DateDiff部分使用了Now()。不知道为什么,但很高兴它起作用了。。。。谢谢你的帮助,非常感谢!