Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.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 MS访问溢出错误_Ms Access_Vba - Fatal编程技术网

Ms access MS访问溢出错误

Ms access MS访问溢出错误,ms-access,vba,Ms Access,Vba,此行运行时,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&”和at_OT=0”),0),它会很好地打印ID号,但在下一行的赋值过程中仍然会出错 我还可以通过向查询中添加一个条件来实现它,该条件将所

此行运行时,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&”和at_OT=0”),0)
,它会很好地打印ID号,但在下一行的赋值过程中仍然会出错


我还可以通过向查询中添加一个条件来实现它,该条件将所有结果限制为在某一天和某一时间之前出现的结果。它只会将查询限制在特定时间之前,而不是更早的时间之后。如果包含该时间之后的任何记录,它将再次溢出。我已经看过了在那之后输入的数据,看起来一切都很好,但我不确定我到底应该寻找什么。与导致其失败的第一条记录相关联的
at_ID
32838
,如果这有帮助的话。

我猜
intAT
被声明为整数类型。但是32838对于整数来说太大了。(整数可以保存–32768到32767之间的数字),因此它会触发错误#6,“溢出”

改为使用长整数

Dim lngAT尽可能长
lngAT=Nz(DLookup(“at_ID”,“qryAT”,“at_sc_ID=“&Me.sc_ID&”和at_OT=0”),0)

convert
intAT
转换为double。我相信,根据Access 2007,int被隐式地标注为long。这似乎可以做到。但是,为了避免将来出现这个问题,您知道为什么它可以处理32837以下的数字吗?32837明显大于32767。您是说
DLookup
返回的
at_ID
值介于32768和32837之间,并且这些值存储在
intAT
中没有错误吗?如果
intAT
被声明为整数,我认为这是不可能的。啊,不。我的错误,它实际上并没有赋值。谢谢你的帮助。