Para conectar db access pela internet é um problema, porque o access não é inteligente como o sql, oracle e outros, por isto voce presisa passar os parametros para um arquivo no provedor que este fara as consultas e vai retornar os valores para voce e ate mesmo um recordset.
É necessario utilizar um arquivo chamado de handler que fica no diretorio do windows e no caso do winnt no provedor, este arquivo contem chaves para chamada de instrucoes sql e voce pode passar parametros para este arquivo e o mesmo fala com o Ms Remote do provedor e executa as instrucoes SQL..
Vou exemplificar o mais facil possivel.
Primeiro crie um db chamado de MeuDb com uma tabela Cliente com colunas Nome, Rg_Numero e Sexo.
Crie uma conexão DSN para ele utilizando drive do access e com nome de ConexaoDb
Procure o arquivo MSDFMAP.INI dentro do diretorio windows ou winnt conforme o caso, edite o mesmo e inclua as seguintes chaves.
[connect MinhaConexao]
Access=ReadWrite
Connect="DSN=ConexaoDb"
[sql Cliente]
Sql="SELECT * FROM Cliente where codigo = ?"
* a linha abaixo é muito versatil para executar linhas de comando sql, porem não funciona para insert e update
[sql Comando]
Sql="?"
* observe que os pontos de interrogacao serao os parametros que voce vai passar.
[sql IncluiCliente]
Sql="Insert into cliente (Nome,Rg_Numero,Sexo) values (?,?,?)"
O incoveniente desta tecnica é que voce precisa passar para o administrador do servidor os parametros do arquivo handler para que ele inclua na maquina onde esta o seu db e criar o famoso DSN para seu db, e todas as vezes que voce precisar alterar as chaves, voce precisa informar o administrador para atualizar tambem.
Depois crie esta sub no projeto boa sorte
Public Sub CarregarOdbcHandler() ' com handler
Dim Rs As New ADODB.Recordset
Rs.CursorLocation = adUseClient
Dim Ssql As String
'*** Comando abaixo funciona para inclusao, note que a chave sql IncluiCliente contem
' varios ? (pontos de interrogacao) correspondente aos nomes dos campos da tabela
' e sao separados por virgula a partir do comando de chamada
' nao se pode passar o comando direto "Insert into cliente (Nome,Sexo) values (Georgenes,Masculino)" ' Nao funcina
Rs.Open "IncluiCliente(" & Ssql & ")", "Handler=MSDFMAP.Handler;" & _
"Provider=MS Remote;Data Source= MinhaConexao;" & _
"Remote Server=http://NomeDoServidor" ‘ previamente configurado pelo PWS
'Ssql = "Insert into cliente (Nome,Sexo) values (geo,Masculino)" ' Nao funcina
' ‘ na linha abaixo tem um exemplo de liberdade de codigo utilizando a chave comando passando o parametro completo de pesquisa para criar uma recordset
Ssql = "select * from cliente where cd_Cliente = 1" ' ok funcina
Rs.Open "Comando(" & Ssql & ")", "Handler=MSDFMAP.Handler;" & _
"Provider=MS Remote;Data Source= MinhaConexao;" & _
"Remote Server=http:// NomeDoServidor "
Rs.Close
Rs.Open "Comando(select * from cliente)", "Handler=MSDFMAP.Handler;" & _
"Provider=MS Remote;Data Source= MinhaConexao;" & _
"Remote Server=http:// NomeDoServidor "
Rs.Close
End Sub
Dica tirada na Web.