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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager