Bonjour,

J'ai un code VB qui permet de compiler en un seul fichier des fichiers csv contenus dans un répertoire local. Les fichiers csv sources possèdent un séparateur de champs de type ";" et un délimiteur de texte de type doubles quotes. Lorsque j'exécute le script, seul les valeurs du premier champs sont récupérées. Cela vient peut-être du délimiteur de texte ("") dans le code source qui n'est pas déclaré, ne sachant pas comment l'intégré ( Print #1, Rc.GetString(, , ";", vbCrLf, "");

Une bonne âme pourrait-elle m'aider à résoudre ce petit problème ? merci par avance.

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
Sub CompilationFichiersTexte_ADO() 
' 
'Nécessite d'activer la référence 
'"Microsoft ActiveX Data Objects 2.x Library" 
' 
Dim Rc As ADODB.Recordset 
Dim cn As String, Chemin As String, Fichier As String, x As String 
Dim i As Long 
 
'répertoire contenant les fichiers texte 
Chemin = "c:\fichiers\list" 
 
'Ouvre un nouveau fichier Texte pour compiler les données 
'! attention à ne pas le placer dans le meme repertoire que les autres fichiers... 
Open "c:\fichiers\compilation\list.csv" For Output As #1 
 
'--- Création d'un entête: adaptez cette ligne en fonction du nombre 
'de colonnes dans les fichiers (10 colonnes dans cet exemple): 
Print #1, "champs1;champs2;champs3;champs4;champs5;champs6;champs7;champs8;champs9;champs10" & vbCrLf; 
'------------ 
 
'boucle sur l'ensemble des fichiers txt 
Fichier = Dir(Chemin & "\list_*.csv") 
Do While Fichier <> "" 
 
'----- requète pour récupérer le contenu du fichier txt 
cn = "Driver={Microsoft Text Driver (*.txt; *.csv)};" & _ 
"Dbq=" & Chemin & ";Extensions=asc,csv,tab,txt" 
 
Set Rc = New ADODB.Recordset 
Rc.Open Source:="SELECT * FROM [" & Fichier & "]", ActiveConnection:=cn 
 
If Not Rc.EOF Then 
 
Print #1, Rc.GetString(, , ";", vbCrLf, ""); 
End If 
 
Rc.Close 
x = "" 
'------------------------- 
Fichier = Dir 
Loop 
 
'Fermeture du fichier Compilation 
Close #1 
 
MsgBox "Opération terminée" 
End Sub