Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2456 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-Excel] Joindre 2 tables

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VBA-Excel] Joindre 2 tables

n°1445735
cann
Posté le 21-09-2006 à 13:29:42  profilanswer
 


 
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!  

mood
Publicité
Posté le 21-09-2006 à 13:29:42  profilanswer
 

n°1445891
tegu
Posté le 21-09-2006 à 16:44:50  profilanswer
 

Tu utilises 2 fichiers, donc tu as besoin de 2 « canaux de connexion » ADO/ODBC (je ne connais pas de moyen de faire autrement) et il n'est pas possible de faire une jointure entre des tables qui ne sont pas dispo dans le même « canal ».

n°1445928
MagicBuzz
Posté le 21-09-2006 à 17:27:46  profilanswer
 

je te conseille de passer par access, là tu peux lier plusieurs fichiers excel en tant que table et faire des requêtes dedans

n°1446142
cann
Posté le 22-09-2006 à 10:55:16  profilanswer
 

Merci à vous.
Je vais surement me pencher pour ta solution tegu, si je ne trouve rien d'autre.  
MagicBuzz, je sais que je peux passer par Access, mais malheureusement je ne peux travailler que sur Excel (contrainte technique disons).  
 
Personne n'a d'autre solution?
 
Merci.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VBA-Excel] Joindre 2 tables

 

Sujets relatifs
Lire le contenu d'une page web dans une macro ExcelVBA : actualisation tableau croisé dynamique
[ACCESS] + [VBA] selectionner toutes les lignesSoucis extraction BDD vers Excel (Résolu)
Object ExcelPb de raptriement dans excel d'un nombre saisi dans 1 textbox
WORD - VBA - Sous macro[vba]excel, programmation
Récupérer le Full Name d'un utilisateur réseau en VBA [Résolu][Access][VBA] Construction d'un lien HTML fonction de plusieurs champs
Plus de sujets relatifs à : [VBA-Excel] Joindre 2 tables


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR