IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème de requete SQL sur fichiers xls/csv [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 76
    Par défaut Problème de requete SQL sur fichiers xls/csv
    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

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 76
    Par défaut
    Re-bonjour,

    Pour ceux que ça intéresse, la requete "SELECT INTO" qui permet de directement remplir une table (donc un onglet par exemple) ne fonctionne que si on travaille avec des fichiers Excel, au minimum.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    With connexion_dossier_csv
      .Provider = "Microsoft.Jet.OLEDB.4.0"
      .ConnectionString = "Data Source=" & chemin_dossier_csv & ";" & _
                          "Extended Properties=""Excel 8.0;HDR=Yes;"""
      .Open
    End With
    Donc à oublier si vous travaillez sur un répertoire de fichiers csv, comme je le faisais précédemment.

    Je laisse le choix aux modérateurs de supprimer le message, ou non.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ADO.NET Requete SQL sur fichier Access
    Par doc_tah dans le forum ADO.NET
    Réponses: 4
    Dernier message: 09/08/2010, 09h18
  2. [E-02] Requetes SQL sur fichier .txt delimité par ";"
    Par -={-_-}=- dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 05/11/2008, 15h42
  3. Requete sql sur un fichier excel
    Par lepiou dans le forum VBA Access
    Réponses: 8
    Dernier message: 28/12/2007, 10h34
  4. [MySQL] Problème requete SQL sur plusieurs tables
    Par Tiib_CD dans le forum Langage SQL
    Réponses: 30
    Dernier message: 21/12/2006, 16h52
  5. Generer un fichier xls,csv a partir d'une requete
    Par minette dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 01/08/2006, 15h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo