none
MySQL VBa Excel RRS feed

  • 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,

    quarta-feira, 9 de maio de 2012 16:08

Respostas

Todas as Respostas

  • Você poderia postar o código que está usando?


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    domingo, 13 de maio de 2012 19:17
    Moderador
  • 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 Sub

    Este 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
    domingo, 13 de maio de 2012 20:43
  • 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

    segunda-feira, 14 de maio de 2012 01:58
    Moderador
  • 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

    quarta-feira, 16 de maio de 2012 13:32
  • 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

    quarta-feira, 16 de maio de 2012 22:09
    Moderador
  • 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.

    quinta-feira, 17 de maio de 2012 09:48