[excel,vba,ado] faire une jointure de tables

Fermé
clembl76 Messages postés 3 Date d'inscription jeudi 21 septembre 2006 Statut Membre Dernière intervention 25 septembre 2006 - 21 sept. 2006 à 11:55
clembl76 Messages postés 3 Date d'inscription jeudi 21 septembre 2006 Statut Membre Dernière intervention 25 septembre 2006 - 25 sept. 2006 à 17:55
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:

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:

2 réponses

Utilisateur anonyme
23 sept. 2006 à 14:18
Bonjour,

aussi strange que ça paraisse, avez vous essayé :

query = "Select * FROM [" & feuille & "$] where ENTETE_PAYS= " & """" & "FRANCE" & """"

Lupin
0
clembl76 Messages postés 3 Date d'inscription jeudi 21 septembre 2006 Statut Membre Dernière intervention 25 septembre 2006
25 sept. 2006 à 17:55
--------------------------------------------------------------------------------

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.
0