Problemas de acesso a base de dados Access 2000/2002
Ao tentar se conectar a uma base de dados Access 2000 usando o controle Data Control ou o assistente - Form Wizard - você pode se deparar com uma das seguintes mensagens de erro :
a-) Se você estiver usando ADO com o provedor : Microsoft.Jet.OLEDB.3.5.1.Provider
- Run-time error 3343 - Unrecognized Database Format '..\nome_do_banco_de_dados.mdb
b-) Se você estiver usando DAO com Microsoft DAO 3.51 Object Library
- Run-time error -2147467259 - Unrecognized Database Format '..\nome_do_banco_de_dados.mdb
Por quê ?
Elementar meu caro Watson !!!
- O Data Control usa a versão 3.51 da DAO - Data Access Object - para fazer a conexão com um banco de dados Access , usa portanto o Jet 3.51.
- O assistente - Form Wizard - usa o Jet 3.51 OLE DB Provider para fazer a conexão , e , portanto , também usa o Jet 3.51.
Acontece que a versão 3.51 do Jet engine NÃO CONSEGUE fazer a conexão com o formato de banco de dados do Access 2000 somente com versões anteriores.
O Access 2000 e 2002 usam a versão Jet 4.0 que cria arquivos de banco de dados no formato do Jet 4.0 . O jet 3.51 não reconhece este formato.
Como Resolver o Problema ?
Você pode contornar o problema usando uma das seguintes técnicas :
1- Instale o Visual Studio Service Pack 4 ou superior. Após a instalação a opção - Access 200 - será incluida na propriedade Connect. (se você estiver usando o Data Control , muda a propriedade Connect para Access 2000 .)
2- Para ADO ou para ADo Data Control , use o provedor - Microsoft.Jet.OLEDB.4.0.1.
3- Se você estiver usando um Data Control genérico , você precisa abrir um recordset usando a DAO 3.6 e atribuí-lo a fonte de dados dos controles conforme abaixo :
Option Explicit Private DaoDB36 as DataBase Private rs As Recordset Dim caminho as String Private Sub Form_Load() caminho = "c:\teste\Northwind.mdb" Set daoDB36 = DBEngine(0).OpenDataBase(caminho) Set rs = daoDB36.OpenRecordset("Clientes") Set Data1.Recordset = rs End Sub |
Service Packs - O que são , pra que serverm ?
Os services packs são uma das formas da Microsoft corrigir erros (bugs) e assim manter o produto atualizado e funcionando da melhor forma possível. Eles incluem atualizações , ferramentas , drivers , e componentes adicionais. Os services packs são cumulativos , ou seja, cada novo pacote contém todas as correções e atualizações que já foram disponibilizados em pacotes anteriores ; desta forma você não precisa instalar um versão anterior de um service pack e depois a atual para que tudo esta atualizado. Para o Visual Basic 6.0 o último service pack é o da versão 5.0 9 ( SP5 ).
O Visual Studio Service Pack 5.0 que atualiza o VB 6.0 esta disponível no seguinte endereço :
http://msdn.microsoft.com/vstudio/sp/vs6sp5/default.asp
obs: Para saber qual versão do service pack você tem instalada verifique a informação no menu Help opção About...
até mais ...
José Carlos Macoratti