Este é mais um artigo que mostra como abrir um arquivo texto delimitado usando ADO e o Provedor Microsoft Jet Text IIsam driver. Vamos também criar uma tabela usando a ADOX ( Microsoft ActiveX Data Objects Extensions for Data Definition Language and Security) e inserir o conteúdo do arquivo texto na tabela criada.
Você pode usar qualquer arquivo texto delimitado ou criar o um arquivo para usar como teste. Um arquivo válido que você pode criar em qualquer editor de textos e salvar com a extensão TXT pode possuir o seguinte conteúdo:
Arquivo: ArqTexto.txt
"C1","C2","C3" "um", "dois", "três" "1a","2b", "3c" 1,2,3 |
Feito isto vamos ao projeto:
1-) Inicie um novo projeto VB
2-) Faça uma referência no seu projeto a - Microsoft Active Data Objects - e a - Microsoft ADO Ext.2.x for DDL and Security.
3-) Inclua dois botões de comando e dois botões de opção no seu formulário
4-) Inclua o seguinte código na seção General Declarations do formulário:
Dim cn As New ADODB.Connection Dim rs As New ADODB.Recordset Dim PathtoTextFile As String Dim PathtoMDB As String Dim myarray() As Variant |
5-) Inclua o seguinte Código no evento Load do formulário: Nosso arquivo texto estará no diretório c:\teste , e no mesmo local o arquivo Biblio.mdb para o qual vamos importar o conteúdo do arquivo texto
Private Sub Form_Load() PathtoTextFile = "C:\teste\" PathtoMDB = "C:\teste\" cmdabrir.Caption = "Abrir arquivo Texto" cmdinserir.Caption = "Incluir Dados do Texto no arquivo MDB" End Sub |
6-) Agora inclua o código abaixo no evento Click do botão de comando - CmdAbrir : Aqui abrimos o arquivo texto - Arqtexto.txt usando dois métodos distintos , conforme a sua seleção:
Private Sub CmdAbrir_Click() '============================metodo 1================================= If Option1.Value = True Then cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & PathtoTextFile & ";" & _ "Extended Properties=""text;HDR=YES;FMT=Delimited""" rs.Open "select * from Arqteste.txt", cn, adOpenStatic, adLockReadOnly, adCmdText End If If Option2.Value = True Then '============================metodo 2================================= cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & PathtoMDB & "Biblio.mdb" rs.Open "SELECT * FROM [Text;Database=" & PathtoTextFile & ";" & "HDR=YES;FMT=Delimited].[ArqTeste.txt]", _ cn, adOpenStatic, adLockReadOnly, adCmdText End If MsgBox rs(0), vbInformation, "Acessando arquivo textos " rs.Close cn.Close End Sub |
7-) Inclua o código a seguir no evento click do botão - cmdInserir : Criamos a tabela - tabela1 - com os três campos e inserimos o conteúdo do arquivo texto na tabela.
Private Sub CmdInserir_Click() Set Cat = New ADOX.Catalog Set objTable = New ADOX.Table cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & PathtoMDB & "Biblio.mdb" 'Abre o catalogo Set Cat.ActiveConnection = cn 'se a tabela ja existir - exclui On Error Resume Next Cat.Tables.Delete "tabela1" 'cria a tabela - tabela1 objTable.Name = "Tabela1" 'Cria e anexa novos campos a tabela objTable.Columns.Append "F1", adWChar objTable.Columns.Append "F2", adWChar objTable.Columns.Append "F3", adWChar Cat.Tables.Append objTable 'Inclui na tabela o conteudo do arquivo texto cn.Execute "INSERT INTO Tabela1 SELECT * FROM " & "[Text;Database=" & PathtoTextFile & ";HDR=YES].[ArqTexto.txt]" cn.Close MsgBox " Os dados do arquivo texto foram incluidos na tabela com sucesso ! ", vbInformation End Sub |
O layout do projeto:
Agora é so rodar e estudar...
José Carlos Macoratti