Access 2013 32-битных сбоев в Windows 7, но не Server 2012 R2

473
King of Microsoft

Я конвертировал базу данных 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 
3

1 ответ на вопрос

1
zingwing

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

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

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

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