Bonjour,

Je suis actuellement en train de réaliser une macro pour récupérer des données provenant de plusieurs fichiers csv, et les mettre dans un fichier résultat xls.
Mon principale soucis, c'est que je n'arrive pas à faire la moindre requete un peu complexe :
- pas moyen de demander plusieurs champs
- pas moyen d'utiliser ORDER BY

Par contre, certaines requetes "simples" fonctionnent bien.
Le INTO fonctionne, le WHERE aussi, le CONCAT aucune idée, etc.

Je viens donc vous demander de l'aide pour faire fonctionner la requete suivante, voir si vous voyez si ma requête est mal formulée, ou si mes options de connexion ne sont pas bonnes, etc.

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
 
Dim connexion_dossier_csv As New ADODB.Connection
 
With connexion_dossier_csv
  .Provider = "Microsoft.Jet.OLEDB.4.0"
  .ConnectionString = "Data Source=" & chemin_dossier_csv & ";" & _
                      "Extended Properties=""Text;HDR=No;"""
  .Open
End With
 
for i = 0 to nb_choix
  nom_feuille = "Choix" & i
  str_requete = "SELECT" & _
                " A.[COL_1]," & _
                " B.[COL_1]," & _
                " CONCAT(A.[COL_1],B.COL_1])," & _
                " B.[COL_2]," & _
                " B.[COL_3]," & _
                " A.[COL_2]," & _
                " A.[COL_3]," & _
                " A.[COL_4]" & _
                " INTO [Excel 8.0;Database=" & chemin_fichier_sortie_xls & "].[" & nom_feuille & "]" & _
                " FROM [" & chemin_fichier_csv_1 & "] A, [" & chemin_fichier_csv_2 & "] B " & _
                " WHERE A.[COL_3] = B.[COL_4]" & _
                " AND A.[COL_4] = '" & nom_feuille & "'"
  connexion_dossier_csv.Execute str_requete
  'connexion_dossier_csv.Execute str_requete, nb_enr
next i
 
connexion_dossier_csv.Close
Set connexion_dossier_csv = Nothing
Notez que pour le moment, je fait bien cette requete, mais sans le INTO et le CONCAT. Tous les autres traitements sont fait sur un RecordSet, sauf que c'est atrocement long.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
  str_requete = "SELECT" & _
                " A.[*]," & _
                " B.[*]," & _
                " FROM ..."
J'suis preneur de toute idée ou tout commentaire.
Merci d'avance.

Cyborg