De tempos em tempos, nossos clientes nos perguntam quais são suas opções quando sua tentativa de usar um banco de dados do Access como back-end de seu aplicativo falha com:
[Microsoft][ODBC Driver Manager]The specified DSN contains an architecture mismatch between the Driver and Application
A causa do problema é que a arquitetura do driver usado para se conectar ao Access é diferente daquela de seu aplicativo, ou seja, eles estão tentando usar um driver Access de 64 bits com um aplicativo de 32 bits. Eles acabam nessa situação porque as versões recentes do Access usam o formato ACCDB para seus arquivos de banco de dados e o driver do Access para arquivos ACCDB é apenas de 64 bits.
(O driver em questão é um driver ODBC para Access. ODBC é uma tecnologia de acesso a dados que permite que aplicativos se conectem a qualquer banco de dados para o qual um driver ODBC esteja disponível.)
Dada essa situação, as seguintes soluções alternativas estão disponíveis:
- Use um banco de dados do Access no formato MDB, que, no Microsoft Access, é rotulado como Bancos de dados do Microsoft Access (formato 2002-2003) na caixa de diálogo Arquivo Novo Banco de Dados.
O Windows inclui um driver ODBC do Access de 32 bits, que é compatível com arquivos MDB (mas não com arquivos ACCDB). Você precisará configurar uma fonte de dados do Access na versão de ODBC Administrator de 32 bits para usar esse driver. Para executar a versão de 32 bits do Administrador ODBC, na caixa de diálogo Executar do Windows, digite:
%windir%\syswow64\odbcad32.exe
No entanto, você precisa verificar se precisa de algum dos recursos adicionais do Access que os arquivos ACCDB fornecem antes de se comprometer com esta solução alternativa.
- Instale o AccessDatabaseEngine da Microsoft. Isso fornece um driver ODBC Access de 32 bits que oferece suporte a arquivos de banco de dados no formato ACCDB. No entanto, o Windows 8 e superior não estão listados como sistemas operacionais com suporte para o AccessDatabaseEngine.
- Use o Easysoft ODBC-ODBC Bridge, que permite que um aplicativo de 32 bits use um driver ODBC de 64 bits (e vice-versa).