VB - Conexão remota com Microsoft Access ???
Muitas pessoas perguntam se é possível realizar uma conexão remota com um banco de dados Microsoft Access.
A boa notícia é que é possível sim se conectar remotamente ao Microsoft Access.
A má notícia é que isso não é uma tarefa trivial.
Você precisa ter o IIS - Internet Information Service - em execução no servidor além de realizar algumas configurações definidas para a biblioteca ADO no servidor.
Para mais detalhes sobre a configuração do IIS verifique este link: http://support.microsoft.com/kb/253580
Mas vou ser sincero, não confie muito no MSAccess em uma conexão remota, principalmente via desktop. Ele não foi feito para isso.
Mesmo se você estiver usando o MSAccess no servidor em uma aplicação web, a migração para um banco de dados 'de verdade' como o SQL Server, MySQL, Oracle vai ser uma questão de tempo.
Portanto se você esta construindo qualquer projeto que envolva o MSAccess e se existe a previsão no projeto de que ele tende a crescer, não comece errado; fuja do MSAccess.
Você não precisa acreditar cegamente no que eu estou dizendo veja esses links: KB #154869, KB #299973, KB #299974, KB #222135 , KB #225048, KB #240317 que apontam limitações do MSAccess.
E para não ficar só nisso veja também os links com os problemas relacionados:
80040e07 - Data type mismatch in
criteria expression.
Article #2289, KB #136059, KB #175258, KB #184948, KB #208425, KB #210244, KB #246570
80040e10 - Too few parameters. Expected <x>.
Article #2128, KB #162980, KB #171850, KB #172898, KB #178070, KB #181209, KB #181832, KB #184233, KB #191619, KB #205972, KB #207586, KB #216425, KB #237994
80040e14 / 80040e37 - The Microsoft Jet Database engine cannot
find the table or query 'tablename'. Make sure it exists and that
its name is spelled correctly.
Article #2164, KB #184572
80040e14 - Syntax error in <statement or clause>.
Article #2086, KB #181489
80040e4d - Too many client tasks.
KB #154869
80004005 - *
Article #2009
IIS 6.0 hangs when using Access:
KB #838306
A seguir um trecho de código que utiliza a tecnologia ADO para fazer uma conexão remota com um banco de dados MSAccess:
Option Explicit Dim adoConn As ADODB.Connection Dim adoRst As ADODB.Recordset Private Sub Command1_Click() Dim strConString As String Dim strSQL As String 'define a string de conexão strConString = "Provider=MS Remote;" & _ "Remote Server=http://192.168.1.1;" & _ "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=SeuBancoAccessRemoto;Persist Security Info=False" 'inicializa a conexão Set adoConn = New ADODB.Connection 'abre a conexão adoConn.Open strConString, "admin", "" strSQL = "Select * from Orders" 'inicializa variável recordset Set adoRst = New ADODB.Recordset With adoRst .Open strSQL, adoConn, , , adCmdText If Not .EOF Then Do While Not .EOF 'le cada registro '... .MoveNext Loop .Close End If End With 'destroi o objeto recordset se necessário Set adoRst = Nothing 'destroi o connection recordset se necessário Set adoConn = Nothing End Sub |
O que importa no código acima é a string de conexão que segue o seguinte padrão:
"Provider=MS Remote; Remote Server=http://IP_do_servidor;Remote Provider=Microsoft.Jet.OLEDB.4.0; Data Source=c:\Banco_Access.mdb"
Se o banco de dados estiver em uma rede compartilhada uma outra alternativa seria:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\nome_servidor\caminho\banco_dados_access.mdb"
Se você obter uma mensagem de erro ao tentar o código acima verifique problemas com permissões NTFS e Firewalls.
Se o erro obtido for:
Error Type: Microsoft ADO/RDS (0x800A20FF) Internet Server Error. |
Então veja esses links: KB #251122 e KB #184606.
Se tiver problemas de permissão verifique : KB #253580
Se você estiver usando a autenticação do Windows veja : KB #197964
Se o banco de dados estiver em uma rede Novel veja : KB #178045.
Esteja atento ao limite de conexões remotas e a versão do seu Sistema Operacional ( XP, Vista, Win7 ) e havendo problemas com isso veja : KB #207671 e KB #189408
Eu espero sinceramente que essas dicas te ajudem a resolver o seu problema com o MSAccess.
Veja os Destaques e novidades do SUPER CD VB 2012 (sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Veja mais sistemas completos para a plataforma .NET no Super CD .NET e no Super DVD .NET , confira...
Quer aprender C# ??
Chegou o Super DVD C# 2012 com exclusivo material de suporte e vídeo aulas com curso básico sobre C#.
Rom 12:20
Antes, se o teu inimigo tiver fome, dá-lhe de comer; se tiver sede, dá-lhe de beber; porque, fazendo isto amontoarás brasas de fogo sobre a sua cabeça.Referências: