IMPORTAR .TXT PARA MYSQL
Amigos boa noite,
Vocês sabem uma rotina para importar dados tipo txt para o mysql.
Desde já agradeço,
PS: Bom carnaval para todos.
Vocês sabem uma rotina para importar dados tipo txt para o mysql.
Desde já agradeço,
PS: Bom carnaval para todos.
qualquer front-end conectado ao mysql tem ferramentas de importação e converção.
basta apenas selecionar o aquivo, definir colunas e importar...
basta apenas selecionar o aquivo, definir colunas e importar...
maxcim, boa tarde!
Obrigado pela resposta.
estava usando o seguinte código para a importação para o access:
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
End Sub
Private Sub cliente()
Dim F As Long, sLine As String, A(0 To 7) As String
Dim x As Integer
[ô]On Error GoTo trata_erro
[ô]localiza o caminho da arquivo .txt para importar para a tabela
Me.text1 = [Ô]C:\ASGARD\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
[ô]inicia a conexão com o banco de dados
mycon.Open [Ô]dsn=est1112[Ô]
[ô] mycon.ConnectionString = [Ô]provider=microsoft.jet.oledb.4.0;[Ô] & [Ô] data source=[Ô] & App.Path & [Ô]\db001\bc001.mdb[Ô]
[ô] mycon.Open
[ô]verifica os dados dentro da .txt
F = FreeFile
[ô]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
[ô]limpa os dados da tabela
[ô] .CommandText = [Ô]drop table cliente[Ô]
[ô] 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, A()
Me.lblprogress = [Ô]Atualizando clientes[Ô]
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
[ô]insere os dados do array na tabela clientes
.CommandText = [Ô]insert into cliente_asgard [Ô] & [Ô] (codigo, nome, endereco, bairro, cidade, uf, cep, fone) values ([ô][Ô] & Val(A(0)) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(1) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(2) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(3) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(4) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(5) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(6) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(7) & [Ô][ô])[Ô]
.Execute
[ô]finaliza o loop
Loop
Me.pb.Visible = False
Me.lblprogress = [Ô][Ô]
End With
MsgBox [Ô]Arquivo texto importado com sucesso !! [Ô]
Set mycmd = Nothing
mycon.Close
Close #F
[ô]exclui o arquivo .txt da pasta
[ô]Kill [Ô]C:\asgard\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description
End Sub
Entretanto, esta ocorrendo um erro nessa linha:
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
justamente na hora de pegar os dados e as colunas.
Att
Obrigado pela resposta.
estava usando o seguinte código para a importação para o access:
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
End Sub
Private Sub cliente()
Dim F As Long, sLine As String, A(0 To 7) As String
Dim x As Integer
[ô]On Error GoTo trata_erro
[ô]localiza o caminho da arquivo .txt para importar para a tabela
Me.text1 = [Ô]C:\ASGARD\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
[ô]inicia a conexão com o banco de dados
mycon.Open [Ô]dsn=est1112[Ô]
[ô] mycon.ConnectionString = [Ô]provider=microsoft.jet.oledb.4.0;[Ô] & [Ô] data source=[Ô] & App.Path & [Ô]\db001\bc001.mdb[Ô]
[ô] mycon.Open
[ô]verifica os dados dentro da .txt
F = FreeFile
[ô]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
[ô]limpa os dados da tabela
[ô] .CommandText = [Ô]drop table cliente[Ô]
[ô] 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, A()
Me.lblprogress = [Ô]Atualizando clientes[Ô]
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
[ô]insere os dados do array na tabela clientes
.CommandText = [Ô]insert into cliente_asgard [Ô] & [Ô] (codigo, nome, endereco, bairro, cidade, uf, cep, fone) values ([ô][Ô] & Val(A(0)) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(1) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(2) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(3) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(4) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(5) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(6) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(7) & [Ô][ô])[Ô]
.Execute
[ô]finaliza o loop
Loop
Me.pb.Visible = False
Me.lblprogress = [Ô][Ô]
End With
MsgBox [Ô]Arquivo texto importado com sucesso !! [Ô]
Set mycmd = Nothing
mycon.Close
Close #F
[ô]exclui o arquivo .txt da pasta
[ô]Kill [Ô]C:\asgard\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description
End Sub
Entretanto, esta ocorrendo um erro nessa linha:
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
justamente na hora de pegar os dados e as colunas.
Att
Qual o erro ?
Hidden, obrigado pela resposta!
O erro está ocorrendo exatamente aki A(i), com a seguinte mensagem: Subscript out of range
Desde já agradeço
O erro está ocorrendo exatamente aki A(i), com a seguinte mensagem: Subscript out of range
Desde já agradeço
alguem.
Amigo eu acho que o erro é pq vc não definiuo range da Array A tenta assim:
---------------------------
Sub ParseToArray(sLine As String, A() As String)
Dim P As Long, LastPos As Long, i As Long
P = InStr(sLine, [Ô];[Ô])
Do While P
If i= 1 or i=0 Then ReDim A(1) Else ReDim Preserve A(i)
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
LastPos = P
i = i + 1
P = InStr(LastPos + 1, sLine, [Ô];[Ô], vbBinaryCompare)
Loop
End Sub
Private Sub cliente()
Dim F As Long, sLine As String, A(0 To 7) As String
Dim x As Integer
[ô]On Error GoTo trata_erro
[ô]localiza o caminho da arquivo .txt para importar para a tabela
Me.text1 = [Ô]C:\ASGARD\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
[ô]inicia a conexão com o banco de dados
mycon.Open [Ô]dsn=est1112[Ô]
[ô] mycon.ConnectionString = [Ô]provider=microsoft.jet.oledb.4.0;[Ô] & [Ô] data source=[Ô] & App.Path & [Ô]\db001\bc001.mdb[Ô]
[ô] mycon.Open
[ô]verifica os dados dentro da .txt
F = FreeFile
[ô]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
[ô]limpa os dados da tabela
[ô] .CommandText = [Ô]drop table cliente[Ô]
[ô] 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, A()
Me.lblprogress = [Ô]Atualizando clientes[Ô]
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
[ô]insere os dados do array na tabela clientes
.CommandText = [Ô]insert into cliente_asgard [Ô] & [Ô] (codigo, nome, endereco, bairro, cidade, uf, cep, fone) values ([ô][Ô] & Val(A(0)) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(1) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(2) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(3) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(4) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(5) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(6) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(7) & [Ô][ô])[Ô]
.Execute
[ô]finaliza o loop
Loop
Me.pb.Visible = False
Me.lblprogress = [Ô][Ô]
End With
MsgBox [Ô]Arquivo texto importado com sucesso !! [Ô]
Set mycmd = Nothing
mycon.Close
Close #F
[ô]exclui o arquivo .txt da pasta
[ô]Kill [Ô]C:\asgard\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description
End Sub
---------------------------
Sub ParseToArray(sLine As String, A() As String)
Dim P As Long, LastPos As Long, i As Long
P = InStr(sLine, [Ô];[Ô])
Do While P
If i= 1 or i=0 Then ReDim A(1) Else ReDim Preserve A(i)
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
LastPos = P
i = i + 1
P = InStr(LastPos + 1, sLine, [Ô];[Ô], vbBinaryCompare)
Loop
End Sub
Private Sub cliente()
Dim F As Long, sLine As String, A(0 To 7) As String
Dim x As Integer
[ô]On Error GoTo trata_erro
[ô]localiza o caminho da arquivo .txt para importar para a tabela
Me.text1 = [Ô]C:\ASGARD\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
[ô]inicia a conexão com o banco de dados
mycon.Open [Ô]dsn=est1112[Ô]
[ô] mycon.ConnectionString = [Ô]provider=microsoft.jet.oledb.4.0;[Ô] & [Ô] data source=[Ô] & App.Path & [Ô]\db001\bc001.mdb[Ô]
[ô] mycon.Open
[ô]verifica os dados dentro da .txt
F = FreeFile
[ô]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
[ô]limpa os dados da tabela
[ô] .CommandText = [Ô]drop table cliente[Ô]
[ô] 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, A()
Me.lblprogress = [Ô]Atualizando clientes[Ô]
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
[ô]insere os dados do array na tabela clientes
.CommandText = [Ô]insert into cliente_asgard [Ô] & [Ô] (codigo, nome, endereco, bairro, cidade, uf, cep, fone) values ([ô][Ô] & Val(A(0)) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(1) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(2) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(3) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(4) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(5) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(6) & [Ô][ô],[Ô] & [Ô][ô][Ô] & _
A(7) & [Ô][ô])[Ô]
.Execute
[ô]finaliza o loop
Loop
Me.pb.Visible = False
Me.lblprogress = [Ô][Ô]
End With
MsgBox [Ô]Arquivo texto importado com sucesso !! [Ô]
Set mycmd = Nothing
mycon.Close
Close #F
[ô]exclui o arquivo .txt da pasta
[ô]Kill [Ô]C:\asgard\export\[Ô] & frminicial.StatusBar1.Panels(2).Text & [Ô]\clientes.txt[Ô]
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description
End Sub
amigo troque essa parte
--------------------------------
Do While P
If i= 1 or i=0 Then ReDim A(1) Else ReDim Preserve A(i)
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
LastPos = P
i = i + 1
P = InStr(LastPos + 1, sLine, [Ô];[Ô], vbBinaryCompare)
Loop
----------------------
por está
Do While P
if i=0 then i=1
If i= 1 Then ReDim A(1) Else ReDim Preserve A(i)
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
LastPos = P
i = i + 1
P = InStr(LastPos + 1, sLine, [Ô];[Ô], vbBinaryCompare)
Loop
--------------------------------
Do While P
If i= 1 or i=0 Then ReDim A(1) Else ReDim Preserve A(i)
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
LastPos = P
i = i + 1
P = InStr(LastPos + 1, sLine, [Ô];[Ô], vbBinaryCompare)
Loop
----------------------
por está
Do While P
if i=0 then i=1
If i= 1 Then ReDim A(1) Else ReDim Preserve A(i)
A(i) = Mid$(sLine, LastPos + 1, P - LastPos - 1)
LastPos = P
i = i + 1
P = InStr(LastPos + 1, sLine, [Ô];[Ô], vbBinaryCompare)
Loop
Luizcomino, obrigado pela resposta!
Entretanto, esta me retornando o seguinte erro:
Essa matriz é fixa ou está temporariamente bloqueada.
nesse ponto do código: If i = 1 Then [txt-color=#e80000]ReDim A(1[/txt-color]) Else ReDim Preserve A(i)
Att
Entretanto, esta me retornando o seguinte erro:
Essa matriz é fixa ou está temporariamente bloqueada.
nesse ponto do código: If i = 1 Then [txt-color=#e80000]ReDim A(1[/txt-color]) Else ReDim Preserve A(i)
Att
mude para
If i = 1 Then ReDim A(1 to 1) Else ReDim Preserve A(1 to i)
If i = 1 Then ReDim A(1 to 1) Else ReDim Preserve A(1 to i)
Tópico encerrado , respostas não são mais permitidas