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
谢谢你的精彩答案和解决方案。谢谢你的精彩答案和解决方案。