Jump to content
Fórum Script Brasil
  • 0

Importação para EXCEL de uma tabela do ACCESS, via código VBA


Domingos Oliveira

Question

4 answers to this question

Recommended Posts

  • 0

Eu tentei no meu computador em casa mais o office atualizou e nem eu sei usar na versão mais recente. kkkk
Segue o comando que tenho para fazer conexão com banco de dados do access:

'Criado por Alyson Ronnan Martins
'Data: 2021/11/12
'Utilizar a referência: Microsoft ActiveX Data Objects 6.1 Library
Public db As ADODB.Connection
Public rs As ADODB.Recordset
Public Const DB_PATH As String = "C:\DB\"
Public Const DB_NAME As String = "database.accdb"


Public Sub cConnectOpen()
On Error Resume Next
Set db = New ADODB.Connection
Dim Caminho As String
Caminho = DB_PATH & DB_NAME

If Dir(Caminho) = "" Then
    MsgBox "Não foi encontrador o banco de dados!" & Chr(13) & _
            "Solicitar o suporte da verificar o caminho abaixo:" & Chr(13) & _
            DB_PATH & DB_NAME, vbCritical, _
            "Erro crítico!"
    Application.Quit
End If
With db
    .ConnectionString = "Driver={Microsoft Access Driver (*.mdb, *.accdb)};" & _
                        "ReadOnly=0;" & _
                        "DBQ=" & Caminho & ";" & _
                        "DefaultDir=" & DB_PATH '& _
                        "Uid=Admin;Pwd=;"
                        
    .Open
End With

'Exemplo de fazer consulta
'Set rs = db.Execute("SELECT * FROM TABELA")
'rs.Close: Set rs = Nothing

End Sub

Public Sub cConnectClose()
On Error Resume Next
db.Close
Set db = Nothing
End Sub

 

Agora para consultar os dados você cria um procedimento para executar uma consulta:
 

sSQL = "SELECT * " & _
       "FROM [nome tabela] " & _
       
Set rs = New ADODB.Recordset
rs.Open sSQL, db, adOpenDynamic, adLockReadOnly

retornoSQL = rs.EOF
If retornoSQL = False Then
	Do Until rs.EOF
            Sheets("Planilha1").Cells(x + 1, 1).Value = rs.Fields("")
            Sheets("Planilha1").Cells(x + 1, 2).Value = rs.Fields("")
            Sheets("Planilha1").Cells(x + 1, 3).Value = rs.Fields("")
            Sheets("Planilha1").Cells(x + 1, 4).Value = rs.Fields("")
            Sheets("Planilha1").Cells(x + 1, 5).Value = rs.Fields("")
            rs.MoveNext
            x = x + 1
        Loop
end if

 

@Domingos Oliveira Avalia se consegue entender e utilizar.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.1k
    • Total Posts
      651.8k
×
×
  • Create New...