Ms-Query lire une table externe stockée dans un répertoire variable

rcan7412

XLDnaute Occasionnel
Bonjour,

Je cherche à résoudre le problème suivant.

Je réalise une importation dans un excel d'un fichier de données (de type dbf) dans une feuille xl.
Pour cela, j'utilise le ms-query qui me donne satisfaction dans la facilité.

Je voudrais savoir s'il était possible de rendre variable le chemin de connection du fichier ?

La requête :

Chaîne de connexion :
DSN=dBASE Files;DBQ=C:\EVOLUTION\VDVSCS;DefaultDir=C:\EVOLUTION\VDVSCS;Driver={C:\WINDOWS\SYSTEM\odbcjt32.dll};DriverId=533;FIL=dBase III;MaxBufferSize=512;PageTimeout=5;

Texte de la commande SQL :
SELECT Balance.COMPTES, Balance.INTITULE, Balance.SOLDE
FROM `C:\evolution\SOCIETE1`\Balance.dbf Balance


Je voudrais rendre variable "SOCIETE1".

Par exemple pour la société 2, la commande est la suivante :

SELECT Balance.COMPTES, Balance.INTITULE, Balance.SOLDE
FROM `C:\evolution\SOCIETE2`\Balance.dbf Balance

Je voudrais dans la mesure du possible que la variable du chemin soit stockée dans une cellule de la feuille xl d'importation par exemple.

J'espère être assez clair.

En fait, je voudrais importer des données de fichiers de même nom mais stockés dans des répertoires différents du disque dur et cela sans devoir changer la requête manuellement ou créer autant de requêtes que de fichiers à importer.

Merci pour vos lumières.

Rodolphe
 

rcan7412

XLDnaute Occasionnel
Merci Bebere pour ta réponse.

Deux remarques :
1 - N'est-ce pas du code vba avec une boucle ?
La commande sql d'importation se trouve dans les propriétés de connexion. Je ne sais pas si on peut insérer un code vba à cet endroit ?

2 - Pour l'exemple, j'avais mis société1, société2... Mais en réalité il s'agit de nom différent sans chiffre (société1 = "tartenpion", société2 = "mapetiteentreprise"). Le système de compteur ne pourra pas fonctionner alors.
 

Bebere

XLDnaute Barbatruc
Re : Ms-Query lire une table externe stockée dans un répertoire variable

bonjour Racan
une requête peut se faire par vba(dao)
met un fichier exemple sans données confidentielles
ce que tu veux extraire et renseignements utiles
et j'essaye de te faire un code
à bientôt
 

rcan7412

XLDnaute Occasionnel
Merci bebere,

En annexe, j'ai joint 3 fichiers :
- une image écran qui situe mon problème
- le fichier xl qui contient la requête à effectuer
- le fichier qui contient les données (il est zippé mais c'est un fichier de type dbf)

Je restitue le problème :

Le fichier à importer porte toujours le même nom, soit : balance.dbf

Par contre le dossier ou répertoire où se situe le fichier est différent :

c:\evolution\répertoireA\balance.dbf
c:\evolution\répertoireB\balance.dbf
c:\evolution\répertoireC\balance.dbf
....

Au moment d'actualiser l'importation dans le fichier xl, je souhaiterais pouvoir choisir mon répertoire d'importation.

A noter que je n'ai pas ce problème avec des fichiers de données de type texte (TXT) car dans les propriétés de la plage de données externes, il est possible d'activer l'option "Demander le nom du fichier à l'actualisation" (dans Contrôle de l'actualisation).

Merci d'avance pour l'aide.

Rodolphe
 

Pièces jointes

  • importbalance.xlsx
    15.8 KB · Affichages: 120
  • Sans titre.jpg
    Sans titre.jpg
    101.1 KB · Affichages: 155
  • importbalance.xlsx
    15.8 KB · Affichages: 121
  • Sans titre.jpg
    Sans titre.jpg
    101.1 KB · Affichages: 155
  • importbalance.xlsx
    15.8 KB · Affichages: 116
  • Sans titre.jpg
    Sans titre.jpg
    101.1 KB · Affichages: 123
  • blance.ZIP
    4 KB · Affichages: 34

Bebere

XLDnaute Barbatruc
Re : Re: Ms-Query lire une table externe stockée dans un répertoire variable

bonjour rcan
un premier code module2 requete'début
simplement enregistrer une macro et arranger
(DefaultDir=E:\forumjuin2010) peut etre à adapter
en module1 une procédure pour mettre les sous dossiers dans un tableau
le résultat va dans la feuille balance a,b,c d,e,f g,h,i etc...
ton souhait, vouloir choisir le dossier où sont les sous dossier avec les fichiers .dbf
tu confirmes
à bientôt
 

Pièces jointes

  • importbalance.xlsx
    15.8 KB · Affichages: 51
  • importbalance.xlsx
    15.8 KB · Affichages: 53
  • importbalance.xlsx
    15.8 KB · Affichages: 54

rcan7412

XLDnaute Occasionnel
Re: Re : Re: Ms-Query lire une table externe stockée dans un répertoire variable

bonjour rcan
un premier code module2 requete'début
simplement enregistrer une macro et arranger
(DefaultDir=E:\forumjuin2010) peut etre à adapter
en module1 une procédure pour mettre les sous dossiers dans un tableau
le résultat va dans la feuille balance a,b,c d,e,f g,h,i etc...
ton souhait, vouloir choisir le dossier où sont les sous dossier avec les fichiers .dbf
tu confirmes
à bientôt

Je ne suis pas trop tes explications ?
Je n'ai pas le code dans le fichier que tu as mis en attachment ?
 

rcan7412

XLDnaute Occasionnel
Je comprends bien les 2 procédures mais la première sensée donner la liste des sous-dossiers de c:\evolution ne donne rien.
Ou alors quelque chose m'échappe.

Pour
(DefaultDir=E:\forumjuin2010) peut etre à adapter

Quel répertoire dois-je indiquer ?

a+
 

Bebere

XLDnaute Barbatruc
Re : Re: Ms-Query lire une table externe stockée dans un répertoire variable

Rcan
pour moi l'essentiel c'est de savoir si tu as un résultat dans la feuille balance
lister(module1) est lancé par requete(module2)
tu peux l'exécuter seule
active la fenêtre variables locales et
exécute le code pas à pas touche F8
tu verras que cela donne un résultat
et si tu ne sais pas comment faire lire l'aide(touche F1)
si il faut changer met le dossier où ton fichier est
je suis comme toi j'apprend à faire une requête par vba
à bientôt
 
Dernière édition:

rcan7412

XLDnaute Occasionnel
Merci Bebere pour tes explications.
Tout d'abord, je pensais pouvoir obtenir ce que je voulais facilement avec ms-query.
Puis, on est parti sur du VBA....
Pour obtenir ce que je voulais, j'ai finalement repris du code d'un autre fichier xl en utilisant un userform qui fait défiler les fichiers à sélectioner.
Je te remercie néanmoins pour le temps que tu as consacré et reste disponible pour expliquer ce qui a été mis en place pour ceux que ça intéresse.

Je souhaiterais maintenant établir une requête sql sur deux tables externes en fichier dbf et là je sèche un peu mais je faire un nouveau post pour demander de l'aide.

Merci encore.

Rodolphe
 

rcan7412

XLDnaute Occasionnel
Bonjour Bebere,

Franchement je suis prêt à aller sur tes pistes pour ne pas négliger tes réponses si tu le souhaites.
J'ai pourtant essayé d'explorer ton code et jamais je n'ai eu de liste des répertoires ou dossier prévu par le module 1 ?
Pourtant c'est sûrement intéressant.

En tout cas encore merci.
 

Discussions similaires

Statistiques des forums

Discussions
312 211
Messages
2 086 291
Membres
103 171
dernier inscrit
clemm