3

Я конвертировал базу данных 97 Access в Access 2013 32bit. База данных теперь падает в Windows 7, но отлично работает в Windows 2012 R2.

Если я скопирую базу данных на ПК, то при первом открытии база данных не будет аварийно завершена, но будет аварийно завершаться каждый раз после.

Этот запрос всегда приводит к сбою Access в Windows 7, но не в Windows Server 2012:

UPDATE BatchHdr SET BatchHdr.RecCount = Val(Nz(DCount("[EntryID]","BatchDtl","[BatchID] = " & [BatchID]),0)), BatchHdr.Errors = Val(Nz(DCount("[EntryID]","BatchDtl","[Er] is not null and [BatchID]=" & [BatchID]),0)), BatchHdr.Warnings = Val(Nz(DCount("[EntryID]","BatchDtl","[Warning] is not null and [BatchID]=" & [BatchID]),0)), BatchHdr.NeedsChecked = IIf(DCount("[BatchID]","BatchDtl","[Checked] = false and [BatchID] = " & [BatchID])>0,True,False) WHERE (((BatchHdr.Status)<>"Exported" And (BatchHdr.Status)=[Forms]![BatchHeader]![MyStatus])) WITH OWNERACCESS OPTION;

Я не могу понять, как заставить эту базу данных работать в Windows 7. Я попытался запустить Access в режиме совместимости, и он не будет падать изначально, но будет после 1-2 открытий.

Доступ должен быть 32-битным, так как используется 32-битный код VBA.

Я получаю сообщение об ошибке:

APP NAME: MSACCESS.EXE
FAULT MODULE: OLEAUT32.DLL
FAULT MODULE VERSION: 6.1.7601.18679
EXCEPTION CODE: C0000005

1 ответ1

1

Звук как будто это может быть проблема с кешем, которую не может обработать windows 7.

Я нашел руководство здесь , что объясняет , как очистить кэш доступа при закрытии.

  1. Нажмите Файл> Параметры> Текущая база данных.
  2. Перейдите к «Таблице кэширования веб-сервисов и общих ресурсов».
  3. Установите флажок «Использовать формат кэша, совместимый с Microsoft Access 2010 и более поздними версиями»
  4. Установите флажок "Очистить кэш при закрытии"
  5. Нажмите "ОК"
  6. Перезапустите Access, чтобы изменения вступили в силу.

Это должно предотвратить сбой доступа при его открытии или повторном открытии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .