当此行运行时,我在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
,如果这有帮助的话。
答案 0 :(得分:4)
我的猜测是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)