MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Chamar função para conexão com mysql

    avatar
    ricardoball
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 20/09/2011

    [Resolvido]Chamar função para conexão com mysql Empty [Resolvido]Chamar função para conexão com mysql

    Mensagem  ricardoball 3/8/2014, 12:36

    Boa tarde senhores, estou tentando utilizar o código de conexão que o Plinio Mabesi desenvolveu, porém não sei como chamar as funções.
    Alguém poderia me ajudar?

    Obrigado à todos
    Segue o código:

    '===================================================================
    'Módulo ControleVinculo - Conexão com Mysql
    '
    'Métodos:
    '1-Checar o vínculo do FrontEnd atual com um BackEnd no servidor MySql;
    '2-Atualizar o vínculo do FrontEnd atual com um BackEnd no servidor MySql;
    '3-Criar uma conexão com um banco de dados em um servidor MySql;
    '4-Executar atualizações e consultas utilizando a conexão MySql.
    '
    ' Autor: Plínio Mabesi
    ' Contato: pliniomabesi@gmail.com
    ' Website: www.mabesi.com
    '===================================================================

    Option Compare Database
    Option Explicit

    'Cria uma conexão ADO
    Private mySqlCon As New ADODB.Connection

    'Cria um recordset ADO
    Private rstCon As New ADODB.Recordset

    Sub conectarMySql(argUsuario As String, argSenha As String, argIp As String, _
                         argBd As String)
    'Esta função abre a conexão com o MySql e a deixa ativa, e pode também
    'abrir um recordset para testar a conexão.
       
       Dim strConnect As String
       
       strConnect = "driver={MySql ODBC 5.1 driver};server=" & argIp & ";uid=" & _
                    argUsuario & ";pwd=" & argSenha & ";database=" & argBd
       
       mySqlCon.Open strConnect

    End Sub

    Function atualizaMySql(codigoSql As String) As Boolean
    On Error GoTo Err_atualizaBanco
    'Atualiza dados no Banco utilizando o código Sql passado à função,
    'retornando verdadeiro caso a operação ocorra com sucesso
    'ou falso caso ocorra algum problema
       
       rstCon.Open codigoSql, mySqlCon, 3, 3
       atualizaMySql = True

    Exit_atualizaBanco:
       Exit Function
       
    Err_atualizaBanco:
       atualizaMySql = False
       MsgBox Err.Description
       Resume Exit_atualizaBanco

    End Function

    Function consultaMySql(codigoSql As String) As ADODB.Recordset
    On Error GoTo Err_consultaBanco
    'Consulta os dados no Banco utilizando o código Sql passado à função,
    'retornando um recordset com o resultado da consulta
       
       rstCon.Open codigoSql, mySqlCon, 3, 3
       Set consultaMySql = rstCon

    Exit_consultaBanco:
       Exit Function
       
    Err_consultaBanco:
       Set consultaMySql = Nothing
       MsgBox Err.Description
       Resume Exit_consultaBanco

    End Function

    Function ChecaVinculoMysql(strNomeTab As String, strCampo As String) As Boolean
    On Error GoTo ChecaVinculo_Err
    ' Função que checa o vínculo da tabela strNomeTab.
    ' Retorna True ou False, dependendo do vínculo
    ' estar correto, ou não.
       
       Dim db As Database, fld As Field, prp As Property
       Dim strValor As String
       Dim rstCon As Recordset
       
       Set db = DBEngine(0)(0)
       ChecaVinculoMysql = False 'Inicializa a função.
       
       'Tenta obter um campo da tabela vinculada strNomeTab.
       'Se der erro, é preciso revincular as tabelas.
       Set rstCon = db.OpenRecordset(strNomeTab)
       strValor = rstCon(strCampo)
       
       'Se chegou aqui é porque o vínculo é válido.
       ChecaVinculoMysql = True


    ChecaVinculo_Sai:
       Set db = Nothing 'libera memória.
       Set fld = Nothing: Set prp = Nothing
       Exit Function

    Tenta_Vincular:
       ChecaVinculoMysql = False
       GoTo ChecaVinculo_Sai
       
    ChecaVinculo_Err:
       If Err.Number = 3219 Then
           'Erro - Não conseguiu realizar a conexão.
           GoTo Tenta_Vincular
       Else
           Resume ChecaVinculo_Sai
       End If

    End Function

    Function atualizaVinculoMysql(argUsuario As String, argSenha As String, _
                        argIp As String, argBd As String) As Boolean
    On Error GoTo Err_Atualiza
    ' Atualiza vínculos ao banco de dados informado.
    ' Retorna True se bem sucedida.
    ' varPwd (opcional) recebe a senha do arquivo mdb.
       
       Dim bdAtual As Database, defTabela As TableDef
       Dim Contador As Integer
       Dim StatusTexto As String
       Dim strConnect As String
       Dim tabela As String
       
       atualizaVinculoMysql = False ' Valor inicial da função.
       
       Screen.MousePointer = 11 ' Muda cursor para ampulheta
       
       Set bdAtual = DBEngine(0)(0)
       Contador = 1 ' Ajusta contador de tabelas = 1
       
       ' Inicia a barra de progresso do Access.
       StatusTexto = "Atualizando vínculos com " & argBd & "..."
       SysCmd acSysCmdInitMeter, StatusTexto, bdAtual.TableDefs.Count
       
       ' Define a string da propriedade Connect.
       strConnect = "ODBC;driver={MySql ODBC 5.1 driver};server=" & argIp & _
                   ";uid=" & argUsuario & ";pwd=" & argSenha & _
                   ";database=" & argBd
       
       ' Loop pelas tabelas do front-end.
       For Each defTabela In bdAtual.TableDefs
           
           SysCmd acSysCmdUpdateMeter, Contador 'Atualiza o progresso.
           Contador = Contador + 1
           
           ' Toda tabela vinculada possui a propriedade
           ' Connect preenchida.
           If Len(defTabela.Connect) > 0 Then
               defTabela.Connect = strConnect & ";table=" & defTabela.Name
               defTabela.RefreshLink  ' Atualiza vínculos.
           End If
       
       Next defTabela
       
       atualizaVinculoMysql = True  ' Revinculação completa.
       
    Sai:
       SysCmd acSysCmdRemoveMeter
       Set defTabela = Nothing       'libera memória
       Set bdAtual = Nothing
       Screen.MousePointer = 0
       Exit Function
       
    Err_Atualiza:
       MsgBox Err.Description
       MsgBox "Houve um problema na Atualização de vínculos..." & vbCrLf & _
               vbLf & _
               "Erro: " & Err.Description
       Resume Sai
       
    End Function
    avatar
    halmeida
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 90
    Registrado : 07/08/2011

    [Resolvido]Chamar função para conexão com mysql Empty Re: [Resolvido]Chamar função para conexão com mysql

    Mensagem  halmeida 15/8/2014, 03:13

    Para chamar qualquer função use o comando "call".
    No caso da função que você postou fica:
    call conectarMySql("Usuario", "Senha", "Ip","Bd")

    Os termos entre parênteses devem conter o nome do usuário, senha, IP, e banco de dados.
    avatar
    ricardoball
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 20
    Registrado : 20/09/2011

    [Resolvido]Chamar função para conexão com mysql Empty Re: [Resolvido]Chamar função para conexão com mysql

    Mensagem  ricardoball 15/8/2014, 04:43

    Ok...Compreendi...testei e deu certo
    Ficou assim:

    Call conectarMySql("usuario", "senhabanco", "endereçoservidor", "nomebanco")

    Obrigado pela resposta

    Conteúdo patrocinado


    [Resolvido]Chamar função para conexão com mysql Empty Re: [Resolvido]Chamar função para conexão com mysql

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 18:02