CONEXAO COM MYSQL VIA ODBC
Olá amigos, boa tarde !
Estou desenvolvendo uma rotina para que do meu sistema em banco MDB eu possa estar alimentando um banco MySQL com informações de Produtos!
Baixei exemplos do vbmania e também do macoratti e após vários testes e buscas na net não consegui conectar, está apresentando erro conforme imagem.
Estou com MySQL Workbench versão 5.6.14 instalado e estou abrindo as tabelas normalmente.
Baixei também no site da MySQL instalador do ODBC versão 5.2.6 e instalei.
Estou desenvolvendo uma rotina para que do meu sistema em banco MDB eu possa estar alimentando um banco MySQL com informações de Produtos!
Baixei exemplos do vbmania e também do macoratti e após vários testes e buscas na net não consegui conectar, está apresentando erro conforme imagem.
Estou com MySQL Workbench versão 5.6.14 instalado e estou abrindo as tabelas normalmente.
Baixei também no site da MySQL instalador do ODBC versão 5.2.6 e instalei.
Você pode postar o trecho referente a parte de conexão para ajudar na análise do erro?
Olá..com certeza..segue abaixo
Private Sub cmdAbreConexao_Click()
Dim strConnect As String
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String
Dim usr_id As String [ô] identificacao do usuario para o banco de dados
Dim pass As String [ô] a senha (se tiver) para o banco de dados
Dim mySqlIP As String [ô] o endereco ip da maquina na qual esta o mySql
mySqlIP = [Ô]localhost[Ô] [ô] a localizacao do usuario (localhost)
usr_id = [Ô]usuario[Ô] [ô] identificacao
pass = [Ô]senha[Ô] [ô] senha
[ô] string de conexao
strConnect = [Ô]driver={MySQL};server=[Ô] & mySqlIP & [Ô];uid=[Ô] & usr_id & [Ô];pwd=[Ô] & pass & [Ô];database=nomebanco[Ô]
Set adoDataConn = New ADODB.Connection
adoDataConn.CursorLocation = adUseClient
[ô]erro ocorre aqui
adoDataConn.Open strConnect
lblStringdeConexao.Caption = strConnect
Set rsMySQL = New ADODB.Recordset
[ô]Prepara o recordset
rsMySQL.CursorType = adOpenStatic
rsMySQL.CursorLocation = adUseClient
rsMySQL.LockType = adLockPessimistic
rsMySQL.Source = [Ô]Select * From clientes[Ô] [ô]altere para tabela que desejar
rsMySQL.ActiveConnection = adoDataConn
rsMySQL.Open
cmdAbreConexao.Enabled = False
cmdFechaConexao.Enabled = True
HabilitaNavegacao
cmdInclui.Enabled = True
cmdExclui.Enabled = True
cmdEdita.Enabled = True
lblBOF.Caption = rsMySQL.BOF
lblEOF.Caption = rsMySQL.EOF
End Sub
Private Sub cmdAbreConexao_Click()
Dim strConnect As String
Dim strProvider As String
Dim strDataSource As String
Dim strDataBaseName As String
Dim usr_id As String [ô] identificacao do usuario para o banco de dados
Dim pass As String [ô] a senha (se tiver) para o banco de dados
Dim mySqlIP As String [ô] o endereco ip da maquina na qual esta o mySql
mySqlIP = [Ô]localhost[Ô] [ô] a localizacao do usuario (localhost)
usr_id = [Ô]usuario[Ô] [ô] identificacao
pass = [Ô]senha[Ô] [ô] senha
[ô] string de conexao
strConnect = [Ô]driver={MySQL};server=[Ô] & mySqlIP & [Ô];uid=[Ô] & usr_id & [Ô];pwd=[Ô] & pass & [Ô];database=nomebanco[Ô]
Set adoDataConn = New ADODB.Connection
adoDataConn.CursorLocation = adUseClient
[ô]erro ocorre aqui
adoDataConn.Open strConnect
lblStringdeConexao.Caption = strConnect
Set rsMySQL = New ADODB.Recordset
[ô]Prepara o recordset
rsMySQL.CursorType = adOpenStatic
rsMySQL.CursorLocation = adUseClient
rsMySQL.LockType = adLockPessimistic
rsMySQL.Source = [Ô]Select * From clientes[Ô] [ô]altere para tabela que desejar
rsMySQL.ActiveConnection = adoDataConn
rsMySQL.Open
cmdAbreConexao.Enabled = False
cmdFechaConexao.Enabled = True
HabilitaNavegacao
cmdInclui.Enabled = True
cmdExclui.Enabled = True
cmdEdita.Enabled = True
lblBOF.Caption = rsMySQL.BOF
lblEOF.Caption = rsMySQL.EOF
End Sub
Olá amigos !
Já testei com várias formas de conexão possÃveis e encontradas e todas retornam a mesma mensagem conforme imagem.
Instalei o drive ODBC do link abaixo
http://dev.mysql.com/downloads/connector/odbc/
teria mais alguma coisa a fazer ?
Já testei com várias formas de conexão possÃveis e encontradas e todas retornam a mesma mensagem conforme imagem.
Instalei o drive ODBC do link abaixo
http://dev.mysql.com/downloads/connector/odbc/
teria mais alguma coisa a fazer ?
colega faça o seguinte, mude a string de conexao para:
lógico altere conforme sua conexao (server, database,user,password)
strConnect = [Ô]Driver={MySQL ODBC 5.2 Driver}; Server=myserver;Database=mydb;User=readonly;Password=mypass;Option=3[Ô]
lógico altere conforme sua conexao (server, database,user,password)
Olá
Aqui vai todas as strings já tentadas
[ô] string de conexao
strConnect = [Ô]driver={MySQL};server=[Ô] & mySqlIP & [Ô];uid=[Ô] & usr_id & [Ô];pwd=[Ô] & pass & [Ô];database=banco[Ô]
strConnect = [Ô]{MySQL ODBC 5.2 Driver};Server=127.0.0.1;Database=banco;User=usuario;Password=senha;Option=3[Ô]
strConnect = [Ô]Driver=MySQL ODBC 5.2 Driver;server=127.0.0.1;uid=root;pwd=senha;database=banco;port=3306[Ô]
strConnect = [Ô]Driver={MySQL ODBC 5.2 Driver};Server=127.0.0.1;Database=banco;uid=usuario;pwd=senha[Ô]
strConnect = [Ô]Driver={MySQL ODBC 5.2 Driver}; Server=myserver;Database=mydb;User=readonly;Password=mypass;Option=3[Ô]
Todos o mesmo erro, dá pra entender que ele nem tenta conectar, ele já diz que não acha uma fonte de dados ou seja ele não acha uma DLL uma conexão, sei lá ! Estou usando windows8 32 bits, mais creio que não tem nada a ver, estou com o mysql workbench aberto e o status está ok
Aqui vai todas as strings já tentadas
[ô] string de conexao
strConnect = [Ô]driver={MySQL};server=[Ô] & mySqlIP & [Ô];uid=[Ô] & usr_id & [Ô];pwd=[Ô] & pass & [Ô];database=banco[Ô]
strConnect = [Ô]{MySQL ODBC 5.2 Driver};Server=127.0.0.1;Database=banco;User=usuario;Password=senha;Option=3[Ô]
strConnect = [Ô]Driver=MySQL ODBC 5.2 Driver;server=127.0.0.1;uid=root;pwd=senha;database=banco;port=3306[Ô]
strConnect = [Ô]Driver={MySQL ODBC 5.2 Driver};Server=127.0.0.1;Database=banco;uid=usuario;pwd=senha[Ô]
strConnect = [Ô]Driver={MySQL ODBC 5.2 Driver}; Server=myserver;Database=mydb;User=readonly;Password=mypass;Option=3[Ô]
Todos o mesmo erro, dá pra entender que ele nem tenta conectar, ele já diz que não acha uma fonte de dados ou seja ele não acha uma DLL uma conexão, sei lá ! Estou usando windows8 32 bits, mais creio que não tem nada a ver, estou com o mysql workbench aberto e o status está ok
qual o sistema oprecional que esta usando 32 ou 64 bits
Estou usando windows8 32 bits e baixei a ODBC para 32 bits
faz o seguinte baixe o odbcdriver 5.1 não se preocupe ele funcionara com o mysql use esta string de conexao
SERVER = [Ô]10.1.1.110[Ô]
BD = [Ô]banco[Ô]
PORTA = [Ô]3306[Ô]
USER = [Ô]usuario[Ô]
SENHA = [Ô]senhausuario[Ô]
CON_STR = [Ô]DRIVER={MySQL ODBC 5.1 DRIVER};[Ô] _
& [Ô]Server=[Ô] & SERVER & [Ô];[Ô] _
& [Ô]Port=[Ô] & PORTA & [Ô];[Ô] _
& [Ô]Database=[Ô] & BD & [Ô];[Ô] _
& [Ô]UID=[Ô] & USER & [Ô];[Ô] _
& [Ô]PWD=[Ô] & SENHA & [Ô];[Ô] _
& [Ô]Option=3;[Ô]
SERVER = [Ô]10.1.1.110[Ô]
BD = [Ô]banco[Ô]
PORTA = [Ô]3306[Ô]
USER = [Ô]usuario[Ô]
SENHA = [Ô]senhausuario[Ô]
CON_STR = [Ô]DRIVER={MySQL ODBC 5.1 DRIVER};[Ô] _
& [Ô]Server=[Ô] & SERVER & [Ô];[Ô] _
& [Ô]Port=[Ô] & PORTA & [Ô];[Ô] _
& [Ô]Database=[Ô] & BD & [Ô];[Ô] _
& [Ô]UID=[Ô] & USER & [Ô];[Ô] _
& [Ô]PWD=[Ô] & SENHA & [Ô];[Ô] _
& [Ô]Option=3;[Ô]
Olá Marcelo, grato pela atenção até o momento !
Baixei a ODBC 5.1 e agora aparentemente está conectando pois o comando DBCon.State está retornando 1.
Após dar um SELECT na tabela e pedir para entrar no Loop para que eu possa alimentar um grid aparece a mensagem conforme imagem.
Abaixo segue minhas linha para conexão
Dim DBCon As ADODB.Connection
Dim Cmd As ADODB.Command
Dim Rs As ADODB.Recordset
Dim strName As String
Set DBCon = New ADODB.Connection
DBCon.CursorLocation = adUseClient
DBCon.Open [Ô]Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=karamelo;User=huber.fabio;Password=249631;Option=3;[Ô]
Set Cmd = New ADODB.Command
Cmd.ActiveConnection = DBCon
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]SELECT * FROM yibproduct[Ô]
Set Rs = Cmd.Execute
If DBCon.State = 1 Then
Do While Not Rs.EOF
Rs.MoveNext
Loop
Else
MsgBox [Ô]PROBLEMAS COM A CONEXÃO![Ô], vbCritical
End If
DBCon.Close
Set Rs = Nothing
Set Cmd = Nothing
Set DBCon = Nothing
Baixei a ODBC 5.1 e agora aparentemente está conectando pois o comando DBCon.State está retornando 1.
Após dar um SELECT na tabela e pedir para entrar no Loop para que eu possa alimentar um grid aparece a mensagem conforme imagem.
Abaixo segue minhas linha para conexão
Dim DBCon As ADODB.Connection
Dim Cmd As ADODB.Command
Dim Rs As ADODB.Recordset
Dim strName As String
Set DBCon = New ADODB.Connection
DBCon.CursorLocation = adUseClient
DBCon.Open [Ô]Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=karamelo;User=huber.fabio;Password=249631;Option=3;[Ô]
Set Cmd = New ADODB.Command
Cmd.ActiveConnection = DBCon
Cmd.CommandType = adCmdText
Cmd.CommandText = [Ô]SELECT * FROM yibproduct[Ô]
Set Rs = Cmd.Execute
If DBCon.State = 1 Then
Do While Not Rs.EOF
Rs.MoveNext
Loop
Else
MsgBox [Ô]PROBLEMAS COM A CONEXÃO![Ô], vbCritical
End If
DBCon.Close
Set Rs = Nothing
Set Cmd = Nothing
Set DBCon = Nothing
tenta este módulo de conexão que utilizo
como ja dito colo o codigo acima em um módulo
para fazer a conexao é fácil
no form coloque
Global Conexao As New ADODB.Connection
Public Function Conecta(valor As Boolean)
Dim SERVER As String, BD As String, PORTA As String, USER As String, SENHA As String
Dim CON_STR As String
If Conexao.State = 1 Then
Conexao.Close
Set Conexao = Nothing
valor = True
End If
If valor = True Then
SERVER = [Ô]ipdoserver[Ô]
BD = [Ô]nomebanco[Ô]
PORTA = [Ô]3306[Ô]
USER = [Ô]usuario[Ô]
SENHA = [Ô]senha[Ô]
CON_STR = [Ô]DRIVER={MySQL ODBC 5.1 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
como ja dito colo o codigo acima em um módulo
para fazer a conexao é fácil
no form coloque
Conecta True
[ô]declare o recordset
Dim RS as Recordset
[ô]Faça sua consulta
Set RS = Conexao.Execute([Ô]Select * From Tabela[Ô])
Do While Not RS.EOF
List1.AddItem RS!nome
RS.MoveNext
Loop
[ô] e desconecte
Conecta False
Tópico encerrado , respostas não são mais permitidas