IMPORTAR VARIOS .TXT PARA O MYSQL

ARES 27/04/2011 18:30:47
#372641
Amigos, boa noite!

Estou terminando um projeto de controle de vendas e envio de pedidos online via ftp, entretanto, o programa que irá receber os pedidos e posteriormente emitir as NF[ô]s
é de terceiro, sendo assim, percebí que será necessário fazer um arquivo no meu programa para armazenar os pedidos que estão sendo recebidos.

Em um diretorio especifico (c:\asgard\pedidos\...) será recebido os pedidos de todos os vendedores no seguinte formato (201000001.txt) onde os 3 primeiros números são os dados do vendedor que está passando e os 5 próximos o número do pedido.

Espou tentando desenvolver um código para importar os dados para o Mysql, 1 por vez com base na extenção do arquivo (.txt), más não estou sabendo como colocar um loop para vasculhar a pasta a até que ela esteja vázia. segue o código:





Private Sub vendas()
Dim F As Long, sLine As String
Dim X As Integer
Dim div5 As Currency
Dim RetVal As String


[ô] On Error GoTo trata_erro
[ô]localiza o caminho da arquivo .txt para importar para a tabela

[ô]estou usando um textbox para mostrar aonde esta os arquivos
Me.text2 = dir([Ô]c:\asgard[Ô] & [Ô]\*.txt[Ô])
Me.text1 = [Ô]c:\asgard\[Ô] & Me.text2 & [Ô][Ô]
[ô]inicia a conexão com o banco de dados


mycon.Open [Ô]dsn=asgard_salles[Ô]
[ô]verifica os dados dentro da .txt
F = FreeFile
On Error Resume Next
[ô]abre a .txt e inicia um loop para o número de linhas dentro do arquivo
Open text1.Text For Input As F
[ô]inicia o processo de transferencia dos dados
With mycmd
Set .ActiveConnection = mycon
.CommandType = adCmdText
[ô] On Error Resume Next
[ô]passa os parametros do loop para adicionar os dados na tabela cliente
Do While Not EOF(F)
Line Input #F, sLine
ParseToArray sLine, Matriz()
Me.lblprogress = [Ô]Atualizando vendas: [Ô]
pb.Visible = True
pb.Min = 0
pb.Max = F
pb.Value = 0
For X = pb.Min To pb.Max
pb.Value = X
DoEvents
Next X


Me.txtvvalor = Format(Matriz(6), [Ô]###,##0.00[Ô])
div5 = Me.txtvvalor
div5 = Replace(div5, [Ô].[Ô], vbNullString)
.CommandText = [Ô]insert into vendas [Ô] & [Ô] (linha, codigo_produto, descricao, embalagem, quantidade, valor_total, cliente, data, vendedor) values ([ô][Ô] & Matriz(1) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Matriz(2) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Matriz(3) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Val(Matriz(4)) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Val(Matriz(5)) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Replace(div5, [Ô],[Ô], [Ô].[Ô]) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Val(Matriz(7)) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Format(Matriz(8), [Ô]yyyy/mm/dd[Ô]) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
Val(Matriz(9)) & [Ô][ô])[Ô]
.Execute

Loop
End With
pb.Visible = False
Me.lblprogress = [Ô][Ô]
Set mycmd = Nothing
mycon.Close
Close #F

Kill [Ô]C:\asgard\[Ô] & Me.text1 & [Ô][Ô]

Exit Sub
trata_erro:
[ô]MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description
[ô]
[ô] Else
[ô] MsgBox [Ô]Não existe registro para esse vendedor[Ô]
[ô] Exit Sub
[ô] End If

End Sub


Estou fazendo os testes com somente 6 vendedores e o código funciona somente no primeiro e encerra.

Alguem já passou por esse perrengue?

Att.
Tópico encerrado , respostas não são mais permitidas