IMPORTAR TXT

ARES 05/01/2011 09:58:36
#361159
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.
XXXANGELSXXX 05/01/2011 10:02:03
#361163
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.
MARCELO.TREZE 05/01/2011 10:11:37
#361168
Resposta escolhida
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))
ARES 05/01/2011 11:01:32
#361187
Amigos,

Obrigado pela resposta.

Marcelo, funcionou perfeitamente.

Muito obrigado a todos
Tópico encerrado , respostas não são mais permitidas