MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    Vincular tabelas em SQL para o access

    Compartilhe

    GCONTABIL
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 17/12/2011

    Vincular tabelas em SQL para o access

    Mensagem  GCONTABIL em Sex 12 Set 2014, 20:13

    Bom tarde,

    Estou migrando as tabelas do access para o SQL Server, gostaria de saber se alguém tem algum exemplo de vinculação das tabelas por formulário do access para se faz com o Montar Ribbons do Avelino no access.

    Procurei na net e encontre o modulo em MySQL para não sei como adaptar para vincular através de um formulário do access e vincular as tabelas que estão em SQL?

    Segue o código que encontrei:

    '===================================================================
    '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: [Você precisa estar registrado e conectado para ver este link.]
    ' Website: [Você precisa estar registrado e conectado para ver este link.]
    '===================================================================

    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


    Desde já agradeço a todos

    gilberlanio
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 597
    Registrado : 30/08/2010

    Re: Vincular tabelas em SQL para o access

    Mensagem  gilberlanio em Sex 12 Set 2014, 23:50

    Veja se ajuda:
    [Você precisa estar registrado e conectado para ver este link.]



    .................................................................................
    VIDEO CURSO DE ACCESS - Criando um sistema de vendas

    [Você precisa estar registrado e conectado para ver este link.]

    Loja virtual - Gilberlânio Rocha

    GCONTABIL
    Intermediário
    Intermediário

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 138
    Registrado : 17/12/2011

    Re: Vincular tabelas em SQL para o access

    Mensagem  GCONTABIL em Sab 13 Set 2014, 01:10

    Boa noite gilberlanio,

    Este tutorial é muito bom mais esta conecção já sei implementar.

    O que realmente gostaria de fazer é criar um formulario no access para que possa conectar o banco de dados SQL Server.

    Com este formulário escolhei onde estar o banco de dados, seja local ou rede pegando o nome ou o IP do computador.

    Se alguém souber agradeço.

    Avelino João
    Avançado
    Avançado

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Angola
    Mensagens : 257
    Registrado : 10/03/2012

    Re: Vincular tabelas em SQL para o access

    Mensagem  Avelino João em Sab 13 Set 2014, 12:02

    Bom Dia GCONTABIL veja nesse link tem o procura!!


    Outro
    Aqui

    Arquivo


    .................................................................................
    Proaccess - Angola

      Data/hora atual: Dom 04 Dez 2016, 01:56