Vídeo recomendado
https://youtu.be/diWPPPhW-9E

Ajuda com conexao ao banco de dados

Discussões sobre a integração do Excel com o Banco de Dados Access

Moderador: joseA

pedro_mexico
Consultor
Consultor
Mensagens: 285
Registrado em: Qua Dez 09, 2015 5:54 pm

Ajuda com conexao ao banco de dados

Mensagem por pedro_mexico »

Boa tarde amigos do forum,

estou a tentar adaptar/conectar o meu formulario excel vba a uma bade de dados access.
existe alguma ajuda no net e ate aqui no forum, mas como estou a zero nesta materia, as vezes torna-se dificil adaptar os codigos que arranjo, visto o pessoal faz a conexao ao bando de dados de formas diferentes e codigos diferente.

Consegui arranjar uma forma de carregar as combobox do meu formulario com o codigo que envio abaixo:

Código: Selecionar todos

Sub CarregaDados_Manutencoes()

    Dim Conn As ADODB.Connection
    Dim rst, rst1 As ADODB.Recordset
    Dim sql, sql1 As String

    Set Conn = New ADODB.Connection
    With Conn
        .Provider = "Microsoft.ace.OLEDB.12.0"
        .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Base_dados_Mapa_Viaturas.mdb"
        .Open
    End With

sql = "SELECT Estado FROM [Dados]"

    Set rst = New ADODB.Recordset
      With rst
      .ActiveConnection = Conn
      .Open sql, Conn, adOpenDynamic, _
         adLockBatchOptimistic
      End With
    
    Do While Not rst.EOF
      If Not IsNull(rst(0).Value) Then
      UserForm_Menu.ComboBoxEstado.AddItem rst(0).Value
    End If
    rst.MoveNext
Loop
    
        sql1 = "SELECT Matriculas FROM [Dados]"
        
            Set rst1 = New ADODB.Recordset
              With rst1
              .ActiveConnection = Conn
              .Open sql1, Conn, adOpenDynamic, _
                adLockBatchOptimistic
              End With
            
            Do While Not rst1.EOF
              If Not IsNull(rst1(0).Value) Then
              UserForm_Menu.ComboBoxMatriculas.AddItem rst1(0).Value
            End If
            rst1.MoveNext
        Loop
     
    ' Fecha o conjunto de registros.
    Set rst = Nothing
     Set rst1 = Nothing

     
    ' Fecha a conexão.
    Conn.Close

End Sub
com o pouco que percebi, este codigo tem a sua parte inicial

Código: Selecionar todos

  Dim Conn As ADODB.Connection
    Dim rst, rst1 As ADODB.Recordset
    Dim sql, sql1 As String

    Set Conn = New ADODB.Connection
    With Conn
        .Provider = "Microsoft.ace.OLEDB.12.0"
        .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Base_dados_Mapa_Viaturas.mdb"
        .Open
    End With

sql = "SELECT Estado FROM [Dados]"

    Set rst = New ADODB.Recordset
      With rst
      .ActiveConnection = Conn
      .Open sql, Conn, adOpenDynamic, _
         adLockBatchOptimistic
      End With
que é para abrir o Banco de dados e procurar na coluna e tabela desejada, mas cria-me um problema para o resto da adaptaçao, visto nao ter uma conexao ao banco de dados, tenho que estar sempre a escrever parte do codigo para fazer a chamada ao banco de dados, o pior , e aqui entra a minha falta de conhecimentos em excelvba access, é que nao sei adaptar esse bocado ao resto do formulario e codigos.

Alguem do forum conseguia me ajudar a criar uma ligaçao para substituir a ligacao que este codigo tem e ser mais facil depois poder usar esse codigo para chamar a base de dados em outros codigos.

Obrigado


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder