USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Banco de Dados)

Título da Dica:  Importando um arquivo texto para uma tabela
Postada em 27/9/2003 por Alceste            
Vamos mostrar outra maneira de importar um arquivo texto para uma tabela de um banco de dados access usando o Visual Basic ( Para maiores informações leia : Como tratar Arquivos textos com o Visual Basic ) .

Utilizaremos o bom e velho banco de dados Biblio.mdb ( usaremos uma copia do arquivo no diretório c:\teste) e um arquivo texto chamado texto.txt o qual iremos importar para o banco de dados Biblio.mdb. A tabela será criada em tempo de execução. O nosso arquivo texto tem o seguinte formato.



Vamos fazer de conta que ela é gerada por um Mainframe e que temos que importá-la para o nosso arquivo para um tratamento posterior. É importante frisar que devemos saber o layout do arquivo texto para montar nossa rotina de importação e quais as informações devemos extrair para gerar nossa  tabela.

O arquivo a ser importado chama-se texto.txt e  possui as seguintes informações:

Código do produto  
Descrição do produto  
Quantidade do produto  
Valor do Produto  
Data do pedido
O arquivo possui as informações separadas ( delimitadas) por uma vírgula (,) , e usaremos esta informação para montar a rotina que irá separar os campos.

Nosso trabalho será separar cada informação e compor uma tabela com os campos:

ID - código de identificação do produto
Desc - descrição do produto
Quantidade - quantidade do pedido
Custo - o Valor de custo do produto
DataPedido - A data do Pedido
A estrutura da tabela já criada será a seguinte:



Inicie um novo projeto no VB e no formulário padrão desenhe o layout como a tela abaixo:


Agora insira o seguinte código no evento click do botão de comando.
Private Sub Command1_Click()

Dim F As Long, sLine As String, A(0 To 4) As String
Dim db As Database, rs As Recordset

On Error GoTo trata_erro

F = FreeFile
Open Text1.Text For Input As F
Set db = DBEngine(0).OpenDatabase(Text2.Text)

On Error Resume Next

db.Execute "DROP TABLE ImportaTexto"

db.Execute "CREATE TABLE ImportaTexto (ID LONG, [Desc] TEXT (50), " _
& "Quantidade LONG, Custo CURRENCY, DataPedido DATETIME)"

Set rs = db.OpenRecordset("ImportaTexto", dbOpenTable)

Do While Not EOF(F)
  Line Input #F, sLine
  ParseToArray sLine, A()
  rs.AddNew
   rs(0) = Val(A(0))
   rs(1) = A(1)
   rs(2) = Val(A(2))
   rs(3) = Val(A(3))
   rs(4) = CDate(A(4))
  rs.Update
Loop

MsgBox "Arquivo texto importado com sucesso !! "

rs.Close
db.Close

Close #F
Exit Sub
trata_erro:
MsgBox "Ocorreu o erro ==> " & Err.Description
End Sub


Insira o código a seguir no formulário do seu projeto: Esta função irá separar as informações do arquivo texto.
Sub ParseToArray(sLine As String, A() As String)

Dim P As Long, LastPos As Long, I As Long

P = InStr(sLine, ",")

Do While P
A(I) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
LastPos = P
I = I + 1
P = InStr(LastPos + 1, sLine, ",", vbBinaryCompare)
Loop
A(I) = Mid$(sLine, LastPos + 1)

End Sub

Ao executar o seu projeto e clicar no botão de comando - Importar o arquivo texto selecionado - teremos a seguinte tela:



Se você abrir o banco de dados verá a tabela - Importatexto - criada e o seu conteúdo exibido como na tela a seguir:



Sem mais comentários e até a próxima dica...


--------------------------------------------------------------------------------
Alceste de Oliveira Soares
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página