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

    Conexão com Banco de Dados Access Externo

    avatar
    jsouzasites
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 30/08/2013

    Conexão com Banco de Dados Access Externo Empty Conexão com Banco de Dados Access Externo

    Mensagem  jsouzasites 9/3/2018, 12:50

    Estou criando uma aplicação no access em que vou precisar que a conexão com o banco, também em access, seja feita por vba. Isso porque quero separar o banco dos formulários e o caminho vai variar e vai funcionar em rede, ou seja, preciso que funcione usando ThisWorkbook.Path para encontrar o Banco.

    Queria saber como faço para criar essa conexão por VBA, que ao abrir a aplicação, toda ela funcione, usando esse banco externo, da mesma forma que funciona quando separemos o banco usando a ferramenta do access.

    Obrigado.
    José Machado
    José Machado
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/09/2016

    Conexão com Banco de Dados Access Externo Empty Re: Conexão com Banco de Dados Access Externo

    Mensagem  José Machado 12/3/2018, 14:04

    Bom dia Amigo

    Crie um Modulo de Classe com nome Cls_Conexao e cole o código abaixo nele, Importa a biblioteca Microsoft Activex Data Objects 2.8 Library

    Dim CONEXAO As ADODB.Connection

    Dim CONEXAO_STRING As String

    Public DATA_READER As ADODB.Recordset

        
    Sub Initialize()
        
        Dim DATA_BASE_PROVIDER As String
        Dim DATA_BASE_LOCAL As String
        Dim DATA_BASE_NOME As String
        Dim DATA_BASE_USUARIO As String
        Dim DATA_BASE_SENHA As String
        
        DATA_BASE_PROVIDER = "Microsoft.ACE.OLEDB.12.0"
        
        DATA_BASE_LOCAL = " C:\" 
        
        DATA_BASE_NOME = " Nome do Arquivo mais a extensão .accdb" 
          
        DATA_BASE_USUARIO = ""
        
        DATA_BASE_SENHA = ""
        
        CONEXAO_STRING = "Provider = " & DATA_BASE_PROVIDER & _
        ";DATA SOURCE = " & DATA_BASE_LOCAL + DATA_BASE_NOME & _
        ";USER ID = " & DATA_BASE_USUARIO & _
        ";PASSWORD = " & DATA_BASE_SENHA & ";"
        
        Set CONEXAO = New ADODB.CONEXAO
        
        CONEXAO.CursorLocation = adUseClient
        
    End Sub

    Public Sub Abrir_Conexao()
        Initialize
        CONEXAO.Open CONEXAO_STRING
    End Sub

    Public Sub Fechar_Conexao()
        CONEXAO.Close
        Set CONEXAO = Nothing
    End Sub

    Public Sub Executar_Query(query As String)
        Abrir_Conexao
        CONEXAO.Execute (query)
        Fechar_Conexao
    End Sub

    Public Sub Executar_DATA_READER(query As String)
        Set DATA_READER = New ADODB.Recordset
            DATA_READER.Open query, CONEXAO, adOpenStatic, adLockReadOnly
    End Sub
    Public Sub Fechar_DATA_READER()
        DATA_READER.Close
        Set DATA_READER = Nothing
        Fechar_Conexao
    End Sub
    avatar
    jsouzasites
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 10
    Registrado : 30/08/2013

    Conexão com Banco de Dados Access Externo Empty Re: Conexão com Banco de Dados Access Externo

    Mensagem  jsouzasites 14/3/2018, 12:13

    Vlw. Só fiquei confuso de como usar. Estou tentando aqui mas...

    Vou precisar alterar todo o código do projeto para executar as query? É possível fazer a conexão ao abrir a aplicação e continuar com os códigos atuais por exemplo:

    Me.cbTurma.RowSource
    ou
    CurrentDb.Execute

    Obrigado.
    José Machado
    José Machado
    Intermediário
    Intermediário


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 108
    Registrado : 13/09/2016

    Conexão com Banco de Dados Access Externo Empty Re: Conexão com Banco de Dados Access Externo

    Mensagem  José Machado 14/3/2018, 18:17

    Boa tarde Amigo...

    Ex: Para preencher caixa de listagem, crie o método separado dos eventos:
    * No topo de cada Arquivo VBA que for usar a Classe de Conexão, Declare essa Linha: Dim CONEXAO As New Cls_Conexao

    Sub Preencher_lista()
    Dim query As String

    query = "SELECT * FROM sua tabela"
        
        CONEXAO.Abrir_Conexao
        CONEXAO.Executar_DATA_READER (query)

        Set sua_lista.Recordset = Nothing
        Set sua_lista.Recordset = CONEXAO.DATA_READER
        
        CONEXAO.Fechar_DATA_READER

    End Sub

    *Para Executar INSERT INTO, UPDATE, DELETE, Crie o método separado do evento:
    * No topo de cada Arquivo VBA que for usar a Classe de Conexão, Declare essa Linha: Dim CONEXAO As New Cls_Conexao
    Ex:

    Sub Salvar_Cliente()
        Dim query As String

        query = "INSERT INTO sua tabela()VALUES()"
        
        CONEXAO.Executar_Query (query)

    End Sub

    Conteúdo patrocinado


    Conexão com Banco de Dados Access Externo Empty Re: Conexão com Banco de Dados Access Externo

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 21/11/2024, 17:07