更改查询时MS Access溢出

时间:2011-09-12 14:39:23

标签: ms-access ms-access-2007

好的,我在MS Access 2007中构建了报告,每个报告都运行了几个(40+)个查询。查询是打开表,子查询等,我不认为Access正在关闭它们。我可能错了,但由于某种原因,我认为这会导致溢出。

但无论如何,我试图弄清楚它为什么会突然发生,以及我能做些什么来解决它。当我只有一个模式和一些虚拟数据时,我的报告工作正常,但是当数据库实际填充时,给我们数据的人创建了一些查找表,所以现在使用3个表的典型查询使用5。

您是否认为查找表中的这种增加(因此Access打开了更多对象)是我遇到溢出错误的原因,还是可能是其他原因?另外,我不知道VBA,那么是否有任何简单的解决方案(例如分解报告,这需要一段时间)值得追求?

由于

1 个答案:

答案 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的最大值。

我可能完全不在这里,但我会检查你的复杂报告是否包括排序和分组选项,或许你可以产生总数。如果是这样,您添加的数据是否会推送超出其各自数据类型容量的任何总计的值。

如果您收到包含“溢出”字样的其他错误消息,则可能有助于告诉我们错误消息的确切文本。

相关问题