2

此行运行时,我在 Access 中收到溢出错误

intAT = Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)

如果我Debug.Print Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)在该行之前添加,它会很好地打印 ID 号,但在下一行的分配过程中仍然会出错。

我还可以通过向查询添加一个标准来使其工作,该标准将所有结果限制为在特定日期和时间之前发生的结果。它仅适用于将查询限制在该特定时间之前,而不是在更早的时间之后。如果包含该时间之后的任何记录,它会再次溢出。我查看了在那之后输入的数据,一切似乎都很好,但我不确定我到底应该寻找什么。at_ID与导致它失败的第一条记录相关联的是32838,如果这有帮助的话。

4

1 回答 1

5

我的猜测是intAT被声明为整数类型。但是 32,838 对于整数来说太大了。(整数可以容纳从 –32,768 到 32,767 的数字)因此它会触发错误 #6,“溢出”

请改用长整数。

Dim lngAT As Long
lngAT = Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)
于 2013-09-30T16:43:45.293 回答