MaximoAccess

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

Obrigado

Administração do MaximoAccess

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

    [Resolvido]conexao com bd access

    Compartilhe

    rafaelDev
    Novato
    Novato

    Respeito às Regras 100%

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

    [Resolvido]conexao com bd access

    Mensagem  rafaelDev em Ter 07 Ago 2018, 23: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.
    avatar
    José Machado
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]conexao com bd access

    Mensagem  José Machado em Qua 08 Ago 2018, 08: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

    rafaelDev
    Novato
    Novato

    Respeito às Regras 100%

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

    Re: [Resolvido]conexao com bd access

    Mensagem  rafaelDev em Qui 09 Ago 2018, 15:09

    Amigo, muito obrigado. Deus certo aqui pra mim.
    avatar
    José Machado
    Intermediário
    Intermediário

    Respeito às Regras 100%

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

    Re: [Resolvido]conexao com bd access

    Mensagem  José Machado em Qui 09 Ago 2018, 16:17

    De nada Amigo


    Qualquer coisa, só perguntar..

    Att
    José Machado.

      Data/hora atual: Dom 21 Out 2018, 19:50