Converti um banco de dados 97 Access para Access 2013 de 32 bits. O banco de dados agora falha no Windows 7, mas funciona bem no Windows 2012 R2.
Se eu copiar o banco de dados para o PC, na primeira vez que o banco de dados for aberto, ele não travará, mas travará sempre depois.
Esta consulta sempre travará o Access no Windows 7, mas não no 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;
Não consigo descobrir como fazer esse banco de dados funcionar no Windows 7. Tentei executar o Access no modo de compatibilidade e ele não travará inicialmente, mas ocorrerá após 1-2 aberturas.
O acesso de 32 bits deve ser usado devido ao código vba de 32 bits que está sendo usado.
Recebo uma mensagem de erro:
APP NAME: MSACCESS.EXE
FAULT MODULE: OLEAUT32.DLL
FAULT MODULE VERSION: 6.1.7601.18679
EXCEPTION CODE: C0000005
Responder1
Parece que pode ser um problema de cache que o Windows 7 não consegue resolver.
Eu encontrei um guiaaquiisso explica como limpar o cache de acesso ao fechar.
- Clique em Arquivo > Opções > Banco de Dados Atual
- Role até a "tabela de cache de serviços da Web e Sharepoints"
- Marque "Usar o formato de cache compatível com o Microsoft Access 2010 e posterior"
- Marque "Limpar cache ao fechar"
- Clique OK"
- Reinicie o Access para que as alterações tenham efeito.
Isso deve evitar que o Access trave ao abrir ou reabrir.