IMPORTAR TXT
Amigos bom dia,
Estou importanto arquivos .txt para o access e os dados (moeda) estão retornando sempre valores redondos (10,00) ao invés de (10,01).
o campo para os valores é o rs(5) = Val(A(5))
segue o código:
Private Sub importa_vendas()
Dim F As Long, sLine As String, A(0 To 9) As String
Dim db As Database, rs As Recordset
Dim i As Integer
On Error GoTo trata_erro
i = 1
Set db = OpenDatabase(App.Path & [Ô]\db001\BC001.mdb[Ô])
Me.text1 = [Ô]c:\ASGARD\export\vendas.txt[Ô]
Me.text2 = [Ô]c:\ASGARD\db001\bc001.mdb[Ô]
F = FreeFile
Open text1.Text For Input As F
Set db = DBEngine(0).OpenDatabase(text2.Text)
On Error Resume Next
Set rs = db.OpenRecordset([Ô]vendas[Ô], dbOpenTable)
Do While Not EOF(F)
Line Input #F, sLine
ParseToArray sLine, A()
rs.AddNew
rs(0) = A(0)
rs(1) = A(1)
rs(2) = A(2)
rs(3) = Val(A(3))
rs(4) = Val(A(4))
rs(5) = Val(A(5))
rs(6) = A(6)
rs(7) = CDate(A(7))
rs(8) = Val(A(8))
rs.Update
Loop
MsgBox [Ô]Arquivo texto importado com sucesso !! [Ô]
rs.Close
db.Close
Close #F
Kill [Ô]c:\asgard\export\vendas.txt[Ô]
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description
End Sub
++++++++++++++++++++
Saberiam me dizer onde estou errando?
Desde já agradeço.
Estou importanto arquivos .txt para o access e os dados (moeda) estão retornando sempre valores redondos (10,00) ao invés de (10,01).
o campo para os valores é o rs(5) = Val(A(5))
segue o código:
Private Sub importa_vendas()
Dim F As Long, sLine As String, A(0 To 9) As String
Dim db As Database, rs As Recordset
Dim i As Integer
On Error GoTo trata_erro
i = 1
Set db = OpenDatabase(App.Path & [Ô]\db001\BC001.mdb[Ô])
Me.text1 = [Ô]c:\ASGARD\export\vendas.txt[Ô]
Me.text2 = [Ô]c:\ASGARD\db001\bc001.mdb[Ô]
F = FreeFile
Open text1.Text For Input As F
Set db = DBEngine(0).OpenDatabase(text2.Text)
On Error Resume Next
Set rs = db.OpenRecordset([Ô]vendas[Ô], dbOpenTable)
Do While Not EOF(F)
Line Input #F, sLine
ParseToArray sLine, A()
rs.AddNew
rs(0) = A(0)
rs(1) = A(1)
rs(2) = A(2)
rs(3) = Val(A(3))
rs(4) = Val(A(4))
rs(5) = Val(A(5))
rs(6) = A(6)
rs(7) = CDate(A(7))
rs(8) = Val(A(8))
rs.Update
Loop
MsgBox [Ô]Arquivo texto importado com sucesso !! [Ô]
rs.Close
db.Close
Close #F
Kill [Ô]c:\asgard\export\vendas.txt[Ô]
Exit Sub
trata_erro:
MsgBox [Ô]Ocorreu o erro ==> [Ô] & Err.Description
End Sub
++++++++++++++++++++
Saberiam me dizer onde estou errando?
Desde já agradeço.
Qual tipo de campo vc esta usando no banco de dados para importar o campo de moeda? se nao me engano no acess e double.
onde existe o campo para valores, não use o val, use CDbl ou CCur
CDbl = converte para double
CCur = converte para currency
assim
rs(5) = CCur(A(5))
ou
rs(5) = CDbl(A(5))
CDbl = converte para double
CCur = converte para currency
assim
rs(5) = CCur(A(5))
ou
rs(5) = CDbl(A(5))
Amigos,
Obrigado pela resposta.
Marcelo, funcionou perfeitamente.
Muito obrigado a todos
Obrigado pela resposta.
Marcelo, funcionou perfeitamente.
Muito obrigado a todos
Tópico encerrado , respostas não são mais permitidas