Ir para conteúdo
Fórum Script Brasil
  • 0

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


Domingos Oliveira

Pergunta

4 respostass a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...