我有一个名为Crit的表,其中包含Store列和TimeToRun列。
我创建了一个Form,其间隔在触发时将当前时间与我表中TimeToRun列中的时间进行比较,并触发另一个名为SendCC()的函数,并将Store字符串作为参数传递。这是我的代码:
Private Sub Form_Timer()
Dim storecode As String
If Time = DLookup("TimeToRun", "Crit") Then
storecode = DLookup("[Store]", "Crit", "[TimeToRun] = " & Time)
SendCC (storecode)
End If
End Sub
我将列设置为日期/时间数据格式,因此不应存在不匹配。但是,正如我F8通过我的代码,即使我的一个时间设置为当前时间,它也永远不会进入循环。
请帮忙!谢谢。
答案 0 :(得分:1)
你需要一个三角洲。弄清楚你的上下摆动室两次是什么等于'。那是你的三角洲。将其编入您的查询。
p代码:
storecode = DLookup(" [Store]"," Crit"," abs([TimeToRun] - Time)<"& delta)
答案 1 :(得分:0)
我认为您的问题出在DLookup
来电:
If Time = DLookup("TimeToRun", "Crit") Then
从问题的上下文中可以清楚地看出Crit
有多条记录。但此次调用将始终返回第一个记录的TimeToRun
,因为没有条件。
所以你只会检查第一个条目。
答案 2 :(得分:0)
你需要这样的东西:
Private Sub Form_Timer()
Dim storecode As String
Dim Moment As Date
Moment = Time
If DateDiff("s", Moment, DLookup("TimeToRun", "Crit")) = 0 Then
storecode = DLookup("[Store]", "Crit", "DateDiff('s', [TimeToRun], #" & Format(Moment, "hh\:nn\:ss") & "#) = 0)")
SendCC storecode
End If
End Sub
但是,如前所述,第一个 DLookup 将始终找到相同的 TimeToRun 。