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 :

Jointure ADO avec VBA Sql [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut Jointure ADO avec VBA Sql
    Bonjour,

    Je voudrais savoir si on peut SANS MicrosoftQuery faire des jointures
    entre des feuilles Excel considérées comme des tables.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub testConnection()
    Dim rs As ADODB.Recordset
    Dim cn As ADODB.Connection
    Dim slqstring As String
    test = ActiveWorkbook.Path
    Set cn = connectADO(ActiveWorkbook.Path & "\" & ActiveWorkbook.Name)
     
    Set rs = New ADODB.Recordset
    sqlstring = "select Test1 from [Feuil1$A1:B100] as T1 join [Feuil2$] as T2 on T1.Test1=T2.Test3"
    rs.Open sqlstring, cn, adOpenDynamic, adLockOptimistic
    ActiveSheet.Range("C1").CopyFromRecordset rs
    End Sub
    Mes en-tetes de colonnes sont Test1,Test2 et Test3 pour la feuille 2.

    Pour ce code j'ai : Erreur de syntaxe dans la clause From. Et avec Where ce n'est pas plus concluant.

    Merci de vos idées.

  2. #2
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonjour.

    Juste une précision : le champ Test1 n'existe que dans Feuil1?

    PGZ

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Oui Test1 n'existe que dans Feuil1.
    Est ce que ca marcherait chez toi avec deux, trois datas ?
    Ou peut être que c'est pas possible ...
    Merci de ton retour.

  4. #4
    pgz
    pgz est déconnecté
    Expert confirmé Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Par défaut
    Bonsoir.

    J'ai fait un test avec 2 feuilles comme dans ta question.
    Ceci marche
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = "SELECT Test1 FROM [Feuil1$] as T1 INNER JOIN [Feuil2$] as T2 ON T1.Test1 = T2.Test3"
    ET cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sSQL = "SELECT Test1 FROM [Feuil1$] as T1 JOIN [Feuil2$] as T2 ON T1.Test1 = T2.Test3"
    provoque l'erreur "erreur de syntaxe dans la clause FROM".

    Moralité : il faut préciser le type de jointure "INNER JOIN", alors que je croyais que "INNER" facultatif, comme indiqué par exemple dans ce tuto de Frédéric BROUARD, mais apparemment, le mot clé n'est pas du tout facultatif.

    Cordialement,

    PGZ

  5. #5
    Membre éclairé
    Inscrit en
    Janvier 2003
    Messages
    604
    Détails du profil
    Informations forums :
    Inscription : Janvier 2003
    Messages : 604
    Par défaut
    Merci bien, je vais être équipé pour faire de la requête sur Excel.
    (ca évite d'aller voir les équipes bureautiques pour se faire installer
    Access avec un délai d'une semaine...)
    Cool, j'avance.
    Et bonne année.

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

Discussions similaires

  1. Requête sql multi-source avec jointure en pur VBA dans excel
    Par guidav dans le forum Général VBA
    Réponses: 1
    Dernier message: 21/09/2013, 20h33
  2. Utilisation de template word avec ADO en VBA
    Par 24 faubourg dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 08/12/2005, 19h41
  3. Plantage requete SQL simple sous Delphi7/ADO avec Access
    Par tomy29 dans le forum Bases de données
    Réponses: 2
    Dernier message: 25/08/2005, 11h09
  4. [SQL] jointure externe avec 3 tables, comment faire ....
    Par grumbok dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/08/2005, 16h13
  5. Dois-je choisir ADO avec Delphi 7 et sql serveur ?
    Par Alf! dans le forum Bases de données
    Réponses: 8
    Dernier message: 28/05/2004, 17h10

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