Access 2013 32-битных сбоев в Windows 7, но не Server 2012 R2
Я преобразовал базу данных 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 ответ
Звук как будто это может быть проблема с кешем, которую не может обработать windows 7.
Я нашел руководство, которое объясняет, как очистить кэш доступа при закрытии.
- Нажмите Файл> Параметры> Текущая база данных.
- Перейдите к таблице "Кэширование веб-служб и общих точек".
- Установите флажок "Использовать формат кэша, совместимый с Microsoft Access 2010 и более поздними версиями"
- Установите флажок "Очистить кэш при закрытии"
- Нажмите "ОК"
- Перезапустите Access, чтобы изменения вступили в силу.
Это должно предотвратить сбой доступа при его открытии или повторном открытии.