[excel,vba,ado] faire une jointure de tables
clembl76
Messages postés
3
Date d'inscription
Statut
Membre
Dernière intervention
-
clembl76 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
clembl76 Messages postés 3 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je voudrais joindre deux tables qui sont dans deux fichiers excel distincts en utilisant ADO sous VBA. Voila mon code qui marche pour importer des donnees sur une table simple:
J'ai besoin de cette jointure à plusieurs reprises pour extraire des informations d'une base de données sur des pays. Par exemple, j'ai dans un premier fichier la table:
ENTETE_PAYS, NOM_PAYS, DIRECTION
identifiant du pays, nom du pays, direction a gauche ou a droite
et dans un deuxieme fichier la 2e table:
ENTETE_REGION, ENTETE_PAYS
identifiant de la region geographique, identifiant du pays
et je souhaite avoir une table resultat
ENTETE_REGION, ENTETE_PAYS, DIRECTION
pour selectionner tous les pays qui ont la direction a droite dans la region Europe, et ensuite utiliser cette liste de pays pour afficher et comparer des informations économiques.
J'ai beaucoup de fichiers avec des tables assez grosses et donc je ne peux pas les regrouper dans un seul fichier Excel.
C'est essentiellement un probleme de syntaxe je suppose, car dans les exemples que je lis sur le net, il y a toujours une syntaxe du type [nomBase$].nomColonne d'utilisée pour les requetes sur des tables Access, que je n'arrive pas à transposer dans mon code pour tables excel qui lui est de type:
Code:
"Select * FROM [nomBase$] where nomColonne = 'L'"
Voila, message un peu long parce que je bloque dessus depuis un moment. Merci à ceux qui pourront m'aider!
je voudrais joindre deux tables qui sont dans deux fichiers excel distincts en utilisant ADO sous VBA. Voila mon code qui marche pour importer des donnees sur une table simple:
On Error Resume Next Const adopenstatic = 3 Const adlockoptimistic = 3 Const adcmdtext = &H1 Dim query As String Dim i As Long Dim j As Integer Set objConnection = CreateObject("ADODB.Connection") Set objRecordset = CreateObject("ADODB.Recordset") objConnection.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _ "Data Source=" & source & ";" & _ "Extended Properties=""Excel 8.0;HDR=Yes;"";" query = "Select * FROM [" & feuille & "$] where ENTETE_PAYS= 'FRANCE'" objRecordset.Open query, objConnection, adopenstatic, adlockoptimistic, adcmdtext
J'ai besoin de cette jointure à plusieurs reprises pour extraire des informations d'une base de données sur des pays. Par exemple, j'ai dans un premier fichier la table:
ENTETE_PAYS, NOM_PAYS, DIRECTION
identifiant du pays, nom du pays, direction a gauche ou a droite
et dans un deuxieme fichier la 2e table:
ENTETE_REGION, ENTETE_PAYS
identifiant de la region geographique, identifiant du pays
et je souhaite avoir une table resultat
ENTETE_REGION, ENTETE_PAYS, DIRECTION
pour selectionner tous les pays qui ont la direction a droite dans la region Europe, et ensuite utiliser cette liste de pays pour afficher et comparer des informations économiques.
J'ai beaucoup de fichiers avec des tables assez grosses et donc je ne peux pas les regrouper dans un seul fichier Excel.
C'est essentiellement un probleme de syntaxe je suppose, car dans les exemples que je lis sur le net, il y a toujours une syntaxe du type [nomBase$].nomColonne d'utilisée pour les requetes sur des tables Access, que je n'arrive pas à transposer dans mon code pour tables excel qui lui est de type:
Code:
"Select * FROM [nomBase$] where nomColonne = 'L'"
Voila, message un peu long parce que je bloque dessus depuis un moment. Merci à ceux qui pourront m'aider!
A voir également:
- Jointure excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel moyenne - Guide
2 réponses
Bonjour,
aussi strange que ça paraisse, avez vous essayé :
query = "Select * FROM [" & feuille & "$] where ENTETE_PAYS= " & """" & "FRANCE" & """"
Lupin
aussi strange que ça paraisse, avez vous essayé :
query = "Select * FROM [" & feuille & "$] where ENTETE_PAYS= " & """" & "FRANCE" & """"
Lupin
--------------------------------------------------------------------------------
Après beaucoup de recherches et des réponses qui vont toutes dans le sens de "je ne suis pas sur, mais ca ne me semble pas possible", j'ai decidé d'importer mes tables dans mon fichier courant pour faire mes requetes. Ca marche, mais le mystere reste entier...
Merci a tous.
Après beaucoup de recherches et des réponses qui vont toutes dans le sens de "je ne suis pas sur, mais ca ne me semble pas possible", j'ai decidé d'importer mes tables dans mon fichier courant pour faire mes requetes. Ca marche, mais le mystere reste entier...
Merci a tous.