CONSULTA APÓS CONEXÃO MYSQL REMOTO

 Tópico anterior Próximo tópico Novo tópico

CONSULTA APÓS CONEXÃO MYSQL REMOTO

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#456229 - 18/01/2016 01:28:06

LEAO10
BRASILIA
Cadast. em:Agosto/2009


Olá Galera,

Utilizo access a muitos anos e estou passando agora para mysql remoto...

Usei a conexão que o Marcelo Treze indicou (cópia abaixo), e funcionou normal

Citação:

Public Conexao As New ADODB.Connection

Public Function Conecta(ByVal Valor As Boolean)
Dim CON_STR As String
Dim SERVER As String
Dim USER As String
Dim SENHA As String
Dim PORTA As String
Dim BD As String
'verifica se a conexao está aberta e fecha para evitar erros
If Conexao.State = 1 Then
Conexao.Close
Set Conexao = Nothing
Valor = True
End If
If Valor = True Then
SERVER = "201.20.24.80"
BD = "nome_do_banco"
PORTA = "3306"
USER = "nome_de_usuário"
SENHA = "senha"
CON_STR = "DRIVER={MySQL ODBC 3.51 DRIVER};" _
& "Server=" & SERVER & ";" _
& "Port=" & PORTA & ";" _
& "Database=" & BD & ";" _
& "UID=" & USER & ";" _
& "PWD=" & SENHA & ";" _
& "Option=3;"
With Conexao
.CursorLocation = adUseClient
.ConnectionString = CON_STR
.Open CON_STR
End With
Else
Conexao.Close
Set Conexao = Nothing
End If
End Function


Quando coloco conexao (true) ele não dá erro, tá ok.

O problema é que acho que estou pensando localmente, e não sei como "traduzir" o código abaixo que sempre uso:


    Dim WsUm As Workspace
    Dim arquivo As Database
    Dim Sql As String
    Dim RsTemp As Recordset
    
    Set WsUm = Workspaces(0)

    Set arquivo = WsUm.OpenDatabase(("C:\Users\Adm\Desktop\Temp\banco.mdb"), False, False, ";pwd=senha")

    Sql = "Select * from Cliente"
    
    Set RsTemp = arquivo.OpenRecordset(Sql)
    
    MsgBox RsTemp!Nome
    MsgBox RsTemp!Endereco



Quero usar a mesma instrução acima, porém, no mysql remoto

Todos respiramos o mesmo ar, portanto devemos ter todos a mesma chance (Ayrton Senna)

#456233 - 18/01/2016 08:13:28

KURTGU
SAO PAULO
Cadast. em:Dezembro/2010


Última edição em 18/01/2016 08:13:45 por KURTGU

SERVER = "O PROVEDOR IRA TE FORNECER"
BD = "nome_do_banco"
PORTA = "3306"
USER = "O PROVEDOR IRA TE FORNECER"




#456244 - 18/01/2016 13:31:37

LEAO10
BRASILIA
Cadast. em:Agosto/2009


Obrigado Kurtgu, mas a conexão eu já tenho ... Criei o banco, o usuário, adicionei o usuário ao banco ... coloquei o código do Marcelo Treze num módulo, preenchi com os dados de ip, banco, usuário, senha

No código abaixo:

    Conecta (True) 'faz a conexão com o banco de dados
    Dim Rs As Recordset
    Set Rs = Conexao.Execute("SELECT * FROM tabela")


dá o seguinte resultado

       [MySQL][ODBC 3.51 Driver][mysql-5.5.40-36.1]Table 'dominio_banco.tabela' doesn´t exist

até aí tudo bem, porque não existe a tabela com o nome "tabela", mas coloco * FROM Cliente retorna


          
          Rum-time error '13'

          type mismatch






Todos respiramos o mesmo ar, portanto devemos ter todos a mesma chance (Ayrton Senna)

#456245 - 18/01/2016 13:42:44

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Última edição em 18/01/2016 13:45:32 por FABRICIOWEB

Utilizo assim a muito tempo e com banco na web
Coloque em um modulo

Public CON As ADODB.Connection
Public rs As ADODB.Recordset


Sub Connect()
On Error GoTo tratado
Set CON = CreateObject("ADODB.Connection")
Set rs = CreateObject("ADODB.Recordset")
    Dim sConn As String
        sConn = "DRIVER={MySQL ODBC 3.51 Driver};"
        sConn = sConn & "SERVER="ip do servidor;"
        sConn = sConn & "USER=user;"
        sConn = sConn & "PWD=123;"
        sConn = sConn & "database=base de dados"
        CON.Open sConn    'Abre o Banco de Dados
        rs.CursorLocation = adUseClient
tratado:
End Sub

Sub Disconnect()
On Error GoTo TrataErro10
rs.Close
CON.Close


TrataErro10:

If Err.Number = 3265 Then
   MsgBox "Erro de dados"
End If


Set rs = Nothing
Set CON = Nothing


End Sub


No evento clique

Connect

rs.Open "SELECT * FROM tabela", CON, adOpenStatic, adLockOptimistic

disconnect




#456251 - 18/01/2016 22:58:36

LEAO10
BRASILIA
Cadast. em:Agosto/2009


Obrigado pela atenção FabricioWeb

Coloquei mas agora a conexão não funciona... Vi que o código também não possui a porta

Todos respiramos o mesmo ar, portanto devemos ter todos a mesma chance (Ayrton Senna)

#456253 - 18/01/2016 23:45:01

LEAO10
BRASILIA
Cadast. em:Agosto/2009


Amém, consegui... após usar a conexão do Marcelo Treze, usei o código abaixo para consultar:

    Conecta (True)
    
    Dim RsRemoto As ADODB.Recordset
    Set RsRemoto = New ADODB.Recordset
    
    RsRemoto.Open "SELECT * FROM Cliente", Conexao, adOpenStatic, adLockOptimistic
    
    MsgBox RsRemoto!cep

    Conecta (False)


O problema é que demorou 29 segundos para retornar ... será que estou fazendo algo errado ???


Todos respiramos o mesmo ar, portanto devemos ter todos a mesma chance (Ayrton Senna)

 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por LEAO10 em 19/01/2016 00:28:10