Переполнение MS Access при изменении запросов - PullRequest
0 голосов
/ 12 сентября 2011

Хорошо, я создал отчеты в MS Access 2007, и каждый отчет состоит из нескольких (более 40) запросов.Запросы открывают таблицы, подзапросы и т. Д., И я не думаю, что Access закрывает их.Я могу ошибаться, но по какой-то причине я думаю, что это вызывает переполнение.

Но в любом случае я пытаюсь выяснить, почему это происходит внезапно, и что я могу сделать, чтобы устранить его.У меня были отчеты, работающие нормально, когда у меня была только схема и некоторые фиктивные данные, но когда база данных была фактически заполнена, люди, которые предоставили нам данные, создали еще несколько справочных таблиц, так что теперь типичный запрос с использованием 3 таблиц теперьиспользуя 5.

Как вы думаете, это увеличение поисковых таблиц (и, следовательно, больше объектов, открываемых Access), является причиной того, что я получаю ошибки переполнения, или это может быть что-то еще?Кроме того, я не знаю VBA, поэтому есть ли какие-то простые решения (например, разбивка отчетов, что займет некоторое время), которые стоило бы продолжить?

Спасибо

1 Ответ

1 голос
/ 12 сентября 2011

Убедитесь, что вы действительно понимаете свое состояние «переполнения». Этот код отображает «Ошибка 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. Таким образом, попытка добавить один даст 32 768, что больше, чем может удержать целое число ... так что переполнение.

Другие числовые типы данных также имеют ограничения. Например, 2147483647 - это максимальное значение, которое можно сохранить как длинный VBA.

Я мог бы быть совершенно неосновным здесь, но я бы проверил, включает ли ваш сложный отчет параметры сортировки и группировки, где, возможно, вы производите итоги. И если так, то будут ли добавленные вами данные увеличивать значения для любого из этих итогов за пределы возможностей соответствующих типов данных.

Если вы получаете другое сообщение об ошибке, которое включает слово «переполнение», это может помочь сообщить нам точный текст сообщения об ошибке.

...