Bom dia a todos, venho recorrer a vocês pois já estou quebrando a cabeça tem um tempo e não consigo resolver.
Tenho um código vba para conexão ao banco mysql que consegui aqui no forum, fiz uma adaptação incluindo a porta do mysql o que permite tambem a conexão externa ao banco de dados, seja em nuvem ou fisico e que funciona 100%. para executar o código utilizo uma macro autoexec, não sei se colocando uma condição se, para verificar a variável que não identifico resolveria.
Os problemas que tenho e não estou conseguindo resolver é.
1-Verificar se a conexão com o banco esta ok, estando faz o processo normal, não estando informar que o banco não foi encontrado, pois se o banco não esta ativo o sistema mostra a tela da conexão odbc para cada tabela o que demora muito para o fechamento do sistema. Sei que isso posso fazer com o if porem não consigo identificar a variavel ou instrução para essa verificação)
2-O código não apaga tabelas que já não estão mencionadas no código.
abaixo segue o código que utilizo já com a adaptação da porta.
Desde já agradeço a todos.
Tenho um código vba para conexão ao banco mysql que consegui aqui no forum, fiz uma adaptação incluindo a porta do mysql o que permite tambem a conexão externa ao banco de dados, seja em nuvem ou fisico e que funciona 100%. para executar o código utilizo uma macro autoexec, não sei se colocando uma condição se, para verificar a variável que não identifico resolveria.
Os problemas que tenho e não estou conseguindo resolver é.
1-Verificar se a conexão com o banco esta ok, estando faz o processo normal, não estando informar que o banco não foi encontrado, pois se o banco não esta ativo o sistema mostra a tela da conexão odbc para cada tabela o que demora muito para o fechamento do sistema. Sei que isso posso fazer com o if porem não consigo identificar a variavel ou instrução para essa verificação)
2-O código não apaga tabelas que já não estão mencionadas no código.
abaixo segue o código que utilizo já com a adaptação da porta.
- Código:
On Error GoTo AttachDSNLessTable_Err
Dim td As TableDef
Dim stConnect As String
' deletar as tabelas se ja existirem
For Each td In CurrentDb.TableDefs
If td.Name = stLocalTableName Then
CurrentDb.TableDefs.Delete stLocalTableName
End If
Next
If Len(stUserName) = 0 Then
'/ / Use autenticação confiável se stUsername não é fornecido.
' stConnect = "ODBC; DRIVER ={SQL SERVER};SERVER=" & stServer & ";DATABASE=" & stDatabase & ";Trusted_Connection=Yes"
stConnect = "ODBC; DRIVER ={MySQL ODBC 5.3 ANSI Driver};SERVER=" & stServer & ";DATABASE=" & stDatabase & ";PORT=" & strPort & ";Trusted_Connection=Yes"
Else
'/ / AVISO: Isto irá poupar o nome de usuário e a senha com as informações da tabela vinculada.
stConnect = "ODBC;DRIVER={MySQL ODBC 5.3 ANSI Driver};SERVER=" & stServer & ";DATABASE=" & stDatabase & ";UID=" & stUserName & ";PWD=" & stPassword & ";PORT=" & strPort & ";Option=3;"
End If
Set td = CurrentDb.CreateTableDef(stLocalTableName, dbAttachSavePWD, stRemoteTableName, stConnect)
CurrentDb.TableDefs.Append td
AttachDSNLessTable = True
Exit Function
AttachDSNLessTable_Err:
AttachDSNLessTable = False
MsgBox "AttachDSNLessTable encontrou um erro inesperado: " & Err.Description
End Function
Function CreateConnection()
Dim strPasswd As String
Dim strServer As String
Dim strUser As String
Dim strDB As String
Dim strPort As String
strPasswd = "jo092926" ' Senha do servidor
strUser = "root" ' Usuario do servidor
strServer = "127.0.0.1" 'IP do servidor
strDB = "altasystem" 'Banco de Dado
strPort = "3306" 'Porta do servidor
Rem error
On Error Resume Next 'Tratamento de erro
'Essa tabela devem ser ligados
'AttachDSNLessTable("NOME DESTINO", "NOME ORIGEM", strServer, strDB, strUser, strPasswd,strPort)
Set dummy = AttachDSNLessTable("sy01empresa", "sy01empresa", strServer, strDB, strUser, strPasswd, strPort)
End Function
Desde já agradeço a todos.