Usuário com melhor resposta
MySQL VBa Excel

Pergunta
-
Olá pessoal,
Estou com este problema já à mais de uma semana...
Introduzindo: tenho o mysql num servidor como base de dados e consigo aceder com aos dados através do ODBC que instalei... com isto consigo ver o que está no servidor...numa folha de excel.
A minha questão é a seguinte: consigo fazer tudo bem no servidor, quanto nos restantes computadores que estão ligados a ele através do ODBC apenas consigo ver no excel.
Problemática: Não nos restantes computadores não consigo fazer consultas SQL através do VBa ligado a macros.
Alguém tem alguma ideia do que pode estar a acontecer?
Não sei mais o que tentar para resolver este problema... :(
Desde já agradeço muito qualquer dica... será muito bem vinda.
Cumprimentos,
Respostas
-
Problema resolvido. Não estava a utilizar o "ODBC" correcto. Tinha no computador instalado o driver 5.1 e no código como pode ver acima estava a utilizar o 3.51. Erro de inexperiente.
Desde já muito obrigado pela sua disponibilidade.
Muito obrigado.
- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 21:36
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 21:36
Todas as Respostas
-
-
Sub DeleteMySQLDatabase()
Dim Database_Name As String
Dim User_ID As String
Dim Password As String
Dim Cn As ADODB.Connection
Dim Server_Name As String
Dim SQLStr As String
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Server_Name = Sheets(3).Range("B24").Value ' IP number or servername
Database_Name = Sheets(3).Range("B21").Value ' Name of database
User_ID = Sheets(3).Range("B25").Value ' ID user or username
Password = Sheets(3).Range("B23").Value ' Password
Tabellen = Sheets(3).Range("B22").Value ' Name of table to write to
auxilia = Sheets(1).Range("L16").Value
ID = Sheets(1).Cells(auxilia, "A").Value
SQLStr = "DELETE FROM " & Tabellen & " WHERE ID = '" & ID & "';"
Set Cn = New ADODB.Connection
Cn.Open "Driver={MySQL ODBC 3.51 Driver};Server=" & Server_Name & ";Database=" & Database_Name & _
";Uid=" & User_ID & ";Pwd=" & Password & ";"
Cn.Execute SQLStr
Set rs = Nothing
Cn.Close
Set Cn = Nothing
End SubEste código está a funcionar na perfeição... localmente...
Apenas não consigo trabalhar com ele depois quando estou num outro computador...
Claro que o IP em cima é o IP da máquina que é o "servidor"...
Eu gostava de saber que existe a possibilidade de fazer isso mas num computador remoto... na rede "doméstica"... "lan".
Não percebo nada de VBa mas depois de muitas semanas a estudar lá consegui fazer com que o código em cima funcionasse na perfeição.
Se alguém poder ajudar dando alguma sugestão... seria muito gratificante... ficaria muito grato...
- Editado MisterDen domingo, 13 de maio de 2012 20:49
-
Não tenho experiência com queries em servidores remotos. Você obtém um erro? Se sim, em qual linha? Ou o código roda sem problemas, mas não é feita a operação na base de dados?
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Viva,
O código acima não roda.
O erro que me aparece está nas duas linhas abaixo.
Run-time error '-2147467259':
[Microsoft][Gestor de controladores de ODBC] O nome da origem de dados não foi encontrado e não foi especificado nenhum controlador predefinido.
Sinto que estou a perder a esperança...
Muito obrigado
-
Eu obtenho esse erro quando tento utilizar esse objeto sem salvar minha Pasta de Trabalho ou quando abro ela por e-mail. Já tentou salvar essa Pasta de Trabalho em algum lugar local do seu computador e rodar o código?
Felipe Costa Gualberto - http://www.ambienteoffice.com.br
-
Problema resolvido. Não estava a utilizar o "ODBC" correcto. Tinha no computador instalado o driver 5.1 e no código como pode ver acima estava a utilizar o 3.51. Erro de inexperiente.
Desde já muito obrigado pela sua disponibilidade.
Muito obrigado.
- Sugerido como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 21:36
- Marcado como Resposta Felipe Costa GualbertoMVP, Moderator sábado, 7 de junho de 2014 21:36