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]conexao com bd access

    avatar
    rafaelDev
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 24/02/2014

    [Resolvido]conexao com bd access Empty [Resolvido]conexao com bd access

    Mensagem  rafaelDev 8/8/2018, 03:22

    Olá pessoal, estou quebrando a cabeça com umas linha de código aqui. Poderiam me dizer o que está errado nesse código?
    Criei um módulo que que guarda duas funções de conexão. chamo estas no clique do botão quando adiciono o texto SQL desejado. Porem dá erro e nem sei se irá realizar conexão com BD desvinculado, pois dividi o bd e quero usa-lo separado. Não sei se é ADODB ou ADO. Segue o cód:

    Módulo modFncSalario
    Código:
    'Variáveis
    Private strConexao As String
    Private conexao As ADODB.Connection
    Private comando As ADODB.Command

    'Função abrir conexao
    Public Function GetConexao() As ADODB.Connection
    strConexao = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & CurrentProject.Path & "\sysColab_be.accdb;"

        Set conexao = New ADODB.Connection
        conexao.Open strConexao

        Set GetConexao = conexao
    End Function

    'Função ativar conexao
    Public Function GetComando(conexao As DAO.Connection) As ADODB.Command
        comando.ActiveConnection = conexao

        Set GetComando = comando
    End Function
    Clique do botão
    Código:
    'Variáveis
    Private conexao As ADODB.Connection
    Private comando As ADODB.Command

    Private Sub btnAdicionar_Click()
    conexao = modFncSalario.GetConexao
    comando = modFncSalario.GetComando(conexao) 'ERRO AQUI - E CHAMO COM Call dá erro no return da função "GetConexao"
            comando.CommandText = "INSERT INTO tbl_Salario(valor)VALUES(?);"
            comando.CommandType = adCmdText
            comando.Parameters.Append .CreateParameter("2,200")
            comando.Execute
    End Sub

    Desde já muito 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

    [Resolvido]conexao com bd access Empty Re: [Resolvido]conexao com bd access

    Mensagem  José Machado 8/8/2018, 12:13

    Bom dia Amigo

    Use esta conexão em ADOBD:

    Crie um módulo de classe com o nome de cls_conexao, e faça as referências ao ADODB em Ferramentas->Referências-> Microsoft ActiveX Data Objects 2.8 Library e Microsoft ActiveX Data Objects Recorset 2.8 Library 

    Código:
    Dim conexao As ADODB.Connection

    Dim conexao_string As String

    Public record_set As ADODB.Recordset
       
    Sub Initialize()
       
        Dim database_provider As String
        Dim database_local As String
        Dim database_nome As String
        Dim database_senha As String
       
        database_provider = "Microsoft.ACE.OLEDB.12.0"
        database_local = ""
        database_nome = ""
        database_senha = ""
       
        conexao_string = "Provider = " & database_provider & _
        ";Data Source = " & database_local + database_nome & _
        ";USER ID = " & _
        ";PASSWORD = " & database_senha & ";"
       
        Set conexao = New ADODB.Connection
       
        conexao.CursorLocation = adUseClient
       
    End Sub

    Public Sub conexao_abrir()
        Initialize
        conexao.Open conexao_string
    End Sub

    Public Sub conexao_fechar()
        conexao.Close
        Set conexao = Nothing
    End Sub

    Public Sub executar_nonquery(query As String)
        conexao_abrir
        conexao.Execute (query)
        conexao_fechar
    End Sub

    Public Sub executar_recordset(query As String)
        Set record_set = New ADODB.Recordset
            record_set.Open query, conexao, adOpenStatic, adLockReadOnly
    End Sub

    Depois você instancia o objeto da conexão nos formulários e nos módulos, ex:
    Código:
    Dim conexao As New cls_conexao
    'Método salvar
    Sub salvar()
        Dim query As String
       
        query = "INSERT INTO sua_tabela(campo_da_tabela,campo_da_tabela)" & _
        "VALUES(" & campo_de_texto_do_formulario & "," & campo_de_texto_do_formulario & ");"
       
    On Error GoTo Msg_Erro   
        conexao.executar_nonquery (query)
        MsgBox "Salvo com sucesso "
    Exit Sub         
    Msg_Erro:
        MsgBox "Erro ao salvar"
    End Sub

    'Evento do botão chama o método salvar
    Private Sub btn_salvar_Click()
      salvar
    End Sub


    Att
    José Machado
    avatar
    rafaelDev
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 48
    Registrado : 24/02/2014

    [Resolvido]conexao com bd access Empty Re: [Resolvido]conexao com bd access

    Mensagem  rafaelDev 9/8/2018, 19:09

    Amigo, muito obrigado. Deus certo aqui pra mim.
    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

    [Resolvido]conexao com bd access Empty Re: [Resolvido]conexao com bd access

    Mensagem  José Machado 9/8/2018, 20:17

    De nada Amigo


    Qualquer coisa, só perguntar..

    Att
    José Machado.

    Conteúdo patrocinado


    [Resolvido]conexao com bd access Empty Re: [Resolvido]conexao com bd access

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 17:59