好的,我在MS Access 2007中构建了报告,每个报告都运行了几个(40+)个查询。查询是打开表,子查询等,我不认为Access正在关闭它们。我可能错了,但由于某种原因,我认为这会导致溢出。
但无论如何,我试图弄清楚它为什么会突然发生,以及我能做些什么来解决它。当我只有一个模式和一些虚拟数据时,我的报告工作正常,但是当数据库实际填充时,给我们数据的人创建了一些查找表,所以现在使用3个表的典型查询使用5。
您是否认为查找表中的这种增加(因此Access打开了更多对象)是我遇到溢出错误的原因,还是可能是其他原因?另外,我不知道VBA,那么是否有任何简单的解决方案(例如分解报告,这需要一段时间)值得追求?
由于
答案 0 :(得分:1)
确保您真正理解“溢出”状况。此代码在立即窗口中显示“错误6(溢出)”,不带引号。
Dim i As Integer
Dim strMsg As String
On Error GoTo ErrorHandler
i = 32767
i = i + 1
ExitHere:
On Error GoTo 0
Exit Sub
ErrorHandler:
strMsg = "Error " & Err.Number & " (" & Err.description _
& ")"
Debug.Print strMsg
GoTo ExitHere
该错误的解释是32,767是VBA Integer可以接受的最大值。因此,尝试添加一个将给出32,768,这比一个整数可以容纳...所以溢出。
其他数字数据类型也有限制。例如,2147483647是可以存储为VBA Long的最大值。
我可能完全不在这里,但我会检查你的复杂报告是否包括排序和分组选项,或许你可以产生总数。如果是这样,您添加的数据是否会推送超出其各自数据类型容量的任何总计的值。
如果您收到包含“溢出”字样的其他错误消息,则可能有助于告诉我们错误消息的确切文本。