MS 访问溢出错误

phi*_*ool 2 ms-access vba

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

intAT = Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)
Run Code Online (Sandbox Code Playgroud)

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

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

Han*_*sUp 5

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

改用长整数。

Dim lngAT As Long
lngAT = Nz(DLookup("at_ID", "qryAT", "at_sc_ID=" & Me.sc_ID & " AND at_OT=0"), 0)
Run Code Online (Sandbox Code Playgroud)