Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.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 Access_Vba - Fatal编程技术网

Ms access 长数据类型的溢出错误

Ms access 长数据类型的溢出错误,ms-access,vba,Ms Access,Vba,我得到了(1000*60)的溢出错误,但当我将其更改为(60000)时,它工作正常。为什么1000*60和60000不一样?这就是我的工作 Private Declare Function GetTickCount Lib "kernel32" () As Long Dim NowTick As Long Dim SaveTick As Long Public Sub ToolACCLooper() SaveTick = GetTickCount + (1000 * 60) Do N

我得到了
(1000*60)
的溢出错误,但当我将其更改为
(60000)
时,它工作正常。为什么1000*60和60000不一样?这就是我的工作

Private Declare Function GetTickCount Lib "kernel32" () As Long
Dim NowTick As Long
Dim SaveTick As Long

Public Sub ToolACCLooper()
SaveTick = GetTickCount + (1000 * 60)

Do
    NowTick = GetTickCount
    DoEvents
    If SaveTick <= NowTick Then
         ActiveWorkbook.Save
         SaveTick = GetTickCount + (1000 * 60)
    End If
Loop
End Sub
Private声明函数GetTickCount Lib“kernel32”(长度为
长得一样暗
像长的一样暗
公共子工具acclooper()
SaveTick=GetTickCount+(1000*60)
做
NowTick=GetTickCount
多芬特

如果SaveTick则数字
1000
60
都是
整数
,除非您特别说明。将两个
Integer
值相乘会得到
Integer
结果,但是
60000
超过了可存储为
Integer
的最大值,因此会出现溢出错误


您可以通过使至少一个乘法器成为
Long
,例如
1000&*60
,或
CLng(1000)*60
,强制乘法器工作,因为一个
Long
乘以一个
整数
会返回一个
Long
,除非你特别说明,否则数字
1000
60
都是
整数
。将两个
Integer
值相乘会得到
Integer
结果,但是
60000
超过了可存储为
Integer
的最大值,因此会出现溢出错误


您可以通过使至少一个乘法器成为
Long
,例如
1000&*60
,或
CLng(1000)*60
,强制乘法器工作,因为一个
Long
乘以一个
Integer
会返回一个
Long

谢谢你的精彩答案和解决方案。谢谢你的精彩答案和解决方案。