Problème avec valeur négative dans un RECORDSET
Bonjour à tous,
J'ai une base de données sous Firebird que je consulte avec Excel 2010 via ODBC.
Lorsque je renvoi les données de mes table dans une feuille, aucun problème.
Par contre quand je veux les exporter dans un fichier .CVS, j'ai un problème avec les valeurs négative que je n'arrive pas à solutionner.
Exemple: -600 devient -1.8446744073709E15 etc...
Le type de champ utilisé pour QTEDISPO de la table STOCK est NUMERIC(15,5)
la propriété "CHARACTER SET" est WIN1252
Ca, je ne peut pas le modifier!
Je cherche depuis deux jours et je ne trouve pas d'explication à mon problème alors je joint le code utilisé, que j'ai trouvé en fouinant par ci par là sur les forums et un peu modifié pour mes besoins.
Merci de votre aide car là je sèche.......
Thierry.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
Public Sub SaveRecordsetToCSVyyyy()
Dim CSVData As String
sSQL = "SELECT stoNOARTICLE, stoNODEPOT, stoQTEDISPO FROM STOCK"
Set Rst_Temp = Nothing
Rst_Temp.Open sSQL, Connection_Bdd01, adOpenKeyset, adLockOptimistic
If Dir("B:\Temp\Stock.csv") <> "" Then Kill "B:\Temp\Stock.csv"
Open "B:\Temp\Stock.csv" For Binary Access Write As #1
If Rst_Temp.RecordCount <> 0 Then
Do While Not Rst_Temp.EOF
CSVData = CSVData & """" & Rst_Temp.Fields(0).Value & """" & ";"
CSVData = CSVData & """" & Rst_Temp.Fields(1).Value & """" & ";"
CSVData = CSVData & """" & Format(Rst_Temp.Fields(2).Value, "# ##0.00000") & """" & ";" & vbNewLine
Rst_Temp.MoveNext
Loop
Else
MsgBox "No data"
End If
Put #1, , CSVData
Close #1 '
Rst_Temp.Close
Set Rst_Temp = Nothing
End Sub |