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


3 participantes

    [Resolvido]Vincular fonte de dados mysql front em access

    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagonsilvaa 12/11/2018, 19:54

    Boa tarde a todos !

    Bom, vejo muitos códigos no fórum a respeito de conectar o access ao banco de dados mysql.
    Me surgiu uma dúvida e venho através do fórum pedir ajuda para tentar sanar a mesma.

    Há alguma maneira de eu vincular a base de dados mysql no access, através de algum método ?

    A ideia é, já com o banco de dados pronto no mysql, ao abrir o access fazer o vínculo automaticamente, isso é possível ?

    Grato.
    good guy
    good guy
    Developer
    Developer


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 1304
    Registrado : 05/02/2010

    [Resolvido]Vincular fonte de dados mysql front em access Empty Vincular fonte de dados mysql front em access

    Mensagem  good guy 12/11/2018, 21:28

    Olá Thiago,

    Assista este video:

    https://www.youtube.com/watch?v=PIIi61EfsOQ
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagonsilvaa 12/11/2018, 23:50

    Boa noite meu caro !
    Primeiramente obrigado pela resposta.

    Eu assisti o vídeo, a conexão com o banco de dados é feita manualmente, correto ? Através do conector.
    Como disse na mensagem inicial, a ideia era fazer automático, andei dando uma olhada no método "docmd.transferdatabase", mas não sei se ele se encaixa nessa questão.

    O que você acha?
    Caso ele se encaixe, a ideia era colocar num formulário inicial uma chamada pra fazer o vínculo direto com as opções já configuradas no vba.

    Gratidão !
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagonsilvaa 13/11/2018, 00:29

    Boa noite meu caro !

    Consegui através desse código vincular apenas uma tabela, funcionou perfeitamente.

    Porém, se eu quiser vincular todas as tabelas do banco de dados vou ter que mencionar todas ?
    Será que é possível o código "varrer" todas as tabelas daquele DB ?

    Segue o mesmo:
    Código:
    DoCmd.TransferDatabase acLink, "ODBC Database", _
    "ODBC;DSN=projeto;UID=root;PWD=;LANGUAGE=us_english;" _
    & "DATABASE=movedb", acTable, "tblcliente", "tblcliente"

    Abraços.
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagomcosta 13/11/2018, 13:57

    Não sei a solução para o seu problema, mas com certeza tem alguma maneira de buscar algum objeto com todas as tabelas do banco e/ou varrer com um foreach.
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagonsilvaa 13/11/2018, 14:25

    Bom dia meu caro !
    Então, eu pensei nisso, mas não sei se esse método aceita.

    Estou precisando de ajuda, caso saiba alguma maneira, mencione, por favor.

    Gratidão !
    Abraços.
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagomcosta 13/11/2018, 14:44

    Não tem como eu testar agora, mas uma solução seria abrir um recordset do banco em MySQL usando o seguinte comando SQL (que eu achei numa googlada e esqueci de anotar onde):
    Código:
    SELECT * FROM information_schema.tables WHERE table_schema = 'nome-do-banco';
    Para abrir um recordset de um banco de dados MySQL você vai achar diversos exemplos aqui mesmo no fórum.

    A tablea information_schema.tables tem informações sobre as tabelas do banco. Deve ter um campo Name ou algo assim.
    Varre os registros do recordset e para cada um deles executa o comando para linkar as tabelas.

    Código:
    Do While Not rs.EOF
        DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DSN=projeto;UID=root;PWD=;LANGUAGE=us_english;" & "DATABASE=movedb", acTable, rs!Name, rs!Name
        rs.MoveNext
    Loop

    Não é a solução direta para o seu problema, mas tenta ir meio que por este caminho que logo você resolve.
    avatar
    thiagonsilvaa
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 384
    Registrado : 12/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagonsilvaa 13/11/2018, 20:10

    Boa noite a todos !

    Fica aqui minha imensa gratidão ao meus amigos pela ajuda.

    Adaptei um código do site usandoaccess juntamente ao que o amigo Thiagomcosta expôs na mensagem anterior e funcionou perfeitamente !

    Segue o mesmo:
    Código:
    DoCmd.Hourglass True 'Habilita a Ampulheta

    Dim strConnect As String 'String de conexão com o Servidor
    Dim strProvider As String 'String que recebe o nome do provedor
    Dim strDataSource As String 'String que guarda o nome da fonte de dados
    Dim strDataBaseName As String 'String que recebe o nome do banco de dados
    Dim usr_id As String  'Identifica do usuário para o banco de dados
    Dim pass As String  'Recebe a senha do banco de dados
    Dim mySqlIP As String 'Rota do banco de dados, na web

    mySqlIP = "127.0.0.1"
    strDataBaseName = "movedb"
    usr_id = "root"
    pass = ""
    strConnect = "driver={MySQL ODBC 8.0 Unicode Driver};server=" & mySqlIP & ";uid=" _
    & usr_id & ";pwd=" & pass & ";database=" & strDataBaseName
    'Cria o objeto de conexão
    Set adoDataConn = New ADODB.Connection
    'Usamos um cursor do lado do cliente, pois os dados
    'serão acessados na maquina do cliente e não de um servidor
    adoDataConn.CursorLocation = adUseClient

    'Abre a conexão
    adoDataConn.Open strConnect
    'Prepara o recordset
    Set rsmysql = New ADODB.Recordset
    'Este é o único tipo de cursor a ser usado
    'com um cursor localizado no lado do cliente
    rsmysql.CursorType = adOpenStatic
       
    'Estamos usando o cursor no cliente
    rsmysql.CursorLocation = adUseClient

    'Isto garante, que o registro que está sendo editado, pode ser salvo
    rsmysql.LockType = adLockPessimistic

    'Fonte de registro – Sua tabela no servidor ou consulta
    rsmysql.Source = "SELECT * FROM information_schema.tables WHERE table_schema = 'movedb';"

    'O recordset precisa saber qual a conexão em uso
    rsmysql.ActiveConnection = adoDataConn

    'Abre o recordset e com isto o evento Move Complete será disparado
    rsmysql.Open
       
    Set Me.Recordset = rsmysql

    'Carrega a origem para todos os controles
    Do While Not rsmysql.EOF
        DoCmd.TransferDatabase acLink, "ODBC Database", "ODBC;DSN=hotel;UID=root;PWD=;LANGUAGE=us_english;" & "DATABASE=movedb", acTable, rsmysql!table_Name, rsmysql!table_Name
        rsmysql.MoveNext
    Loop

    MsgBox "Conexão concluída...", vbExclamation, NomeAplicativo

    DoCmd.Hourglass False  'Desabilita a Ampulheta

    Um abraço a todos !!!
    thiagomcosta
    thiagomcosta
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 377
    Registrado : 23/01/2017

    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  thiagomcosta 13/11/2018, 20:46

    Só uma sugestão, é uma boa prática fechar as conexões:

    Código:
    rsmysql.close
    set rsmysql = nothing
    adoDataConn.close
    set adoDataConn = nothing

    Conteúdo patrocinado


    [Resolvido]Vincular fonte de dados mysql front em access Empty Re: [Resolvido]Vincular fonte de dados mysql front em access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 6/5/2024, 21:39