sábado, 7 de março de 2009

Importação de arquivos CSV via ADO

Depois que aprendi a trabalhar com o ADO(Active Data Objects), vi que trata-se de um recurso muito flexível e principalmente, fácil de utilizar.
Postarei em breve vários exemplos de utilização do ADO no VBA.
Esta é a dica para importar arquivos texto com os campos separados por vírgula (CSV - Comma Separated Values). Basta copiar o código e ajustar o caminho/nome do arquivo csv:


Option Explicit

Private Sub importa()

Dim cnn As New ADODB.Connection
Dim rst As New ADODB.Recordset
Dim adcomm As New ADODB.Command
Dim caminho As String
Dim linha As Integer
Dim coluna As Integer

caminho = "D:\paulo\Projetos VB\ADO Arquivo Texto\"

'Conexão para arquivo texto sem cabeçalho:
'connCSV.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
'& caminho & ";Extended Properties='text;HDR=NO;FMT=Delimited'"

'Conexão para arquivo texto com cabeçalho e colunas
cnn.Open "Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" _
& caminho & ";Extensions=asc,csv,tab,txt;HDR=NO;Persist Security Info=False"

rst.Open "Select * From TesteDeDados.txt", cnn, adOpenStatic, adLockReadOnly, adCmdText

linha = 1
coluna = 1
Do While Not rst.EOF
Cells(linha, coluna).Value = rst(0)
Cells(linha, coluna + 1).Value = rst(1)
rst.MoveNext
linha = linha + 1
Loop

cnn.Close
Set cnn = Nothing


End Sub

3 comentários:

Unknown disse...

Boa Noite, Kazu.
Estou tentando importar um arquivo texto para uma tabela access. Neste caso, devo criar um botão livre de script e acrescentar este código no modo macro ou código, seria isto ?

obrigado.

Massaiti

Kazu disse...

Boa noite!

Em linhas gerais sim, mas tem vários ajustes que precisam ser feitos, este é um exemplo bem simplificado.
Sua importação necessita ser via código?
O assistente de importação do Access não atende?
Entre em contato no meu e-mail para que eu possa ajudá-lo:
paulo.kazumiti@hotmail.com

abs!

Anônimo disse...

He intención de publicar algo como esto en mi página web y me dio una idea. Saludos.

Pesquisar este blog

Arquivo do blog

Quem sou eu

Minha foto
Administrador de Empresas/Técnico em Processamento de Dados. Microsoft Office User Specialist - Excel Proficient. Pós-graduado em Business Intelligence.