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

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  à l'aide : requete SQL : "FROM" variable ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

à l'aide : requete SQL : "FROM" variable ?

n°1202030
Colegram
Posté le 19-09-2005 à 00:30:13  profilanswer
 

Voila mon problème : j'ai un classeur Excel (monclasseur) et une base de données (mabase) dans le même dossier.
Ils sont tous les deux dans : C:\mondossier.
Du classeur Excel, je fais une requête (marequete) sur une table de ma base (matable) par du code VBA.
(marequete est également dans C:\mondossier)
Comme je transporte mon dossier avec ma clé USB, je veux pouvoir faire ma requete egalement sur F:\mondossier, ou sur G:\mondossier.
J'ai donc un variable sur mon code VBA :
 
Set recup = Sheets("Import" )
chemin = ThisWorkbook.Path
        With recup.QueryTables.Add(Connection:= _
        "FINDER;" & chemin & "\marequete.dqy", Destination:=Range("A1" ))
etc...........
 
mais le code SQL de marequete, lui , n'a pas de variable dans le FROM :
 
SELECT matable.Société, matable.Prixtotal,  
FROM `C:\mondossier\mabase`.matable
 
Comment faire trouver à la requete la bonne lettre racine ?
par exemple : FROM `F:\mondossier\mabase`.matable.
 
Pour l'instant je n'ai trouvé que la solution de créer plusieurs requetes identiques (C_requete, F_requete, etc...) en changeant à chaque fois le FROM C:\ en FROM F:\ ou FROM G:\, etc.
 
De plus, si je place mon dossier dans un autre dossier, ca ne marche plus, evidemment.
merci d'avance pour vos réponses  :) (je précise que je ne suis pas très doué en SQL)   :o


Message édité par Colegram le 19-09-2005 à 01:06:26
mood
Publicité
Posté le 19-09-2005 à 00:30:13  profilanswer
 

n°1202051
betsamee
Asterisk Zeperyl
Posté le 19-09-2005 à 08:37:13  profilanswer
 

salut
ton probleme releve plus du VBA que du SQL
premierement il me semble que la syntaxe de la requete est plutot :
SELECT teschamps FROM Tatable in 'chemin\tabase' (je pars sur le principe que tu utilises Access hein?)
 
ensuite tu pourrais par exemple avant ta requete tester la connexion/non connexion de ta cle USB (je ne sais pas comment mais ca doit pouvoir se faire faut chercher un peu) et ainsi generer dynamiquement ton chemin d'acces a la base
 
bonne chance

n°1202068
Colegram
Posté le 19-09-2005 à 09:22:06  profilanswer
 

Je te remercie pour ta réponse, Betsamee.
J'utilise access effectivement.
Pour ce qui est du libellé du code de marequete, j'ai changé les noms mais la forme est bonne puisque j'ai crée la requete a partir du menu d'Excel (Données > Données externes > Créer une requête) et j'ai arrangé le code ensuite, et ça marche tant que ma base et mon classeur excel ont le même chemin d'accès que celui defini par ma requête à l'origine.
J'ai vu qu'effectivement on pouvait recréer la requête à chaque fois à partir du code VBA, mais là ça depasse mes compétences.
En fait, une de mes questions est : est-ce qu'on peut introduire une variable de chemin d'accès dans un SELECT/FROM de requête ? et comment ?
Par exemple, est-ce que je peux ecrire ma requête comme tu l'as fait :
SELECT teschamps FROM Tatable in 'chemin\tabase'  
quel serait le libellé de "chemin" ? (du style : ThisWorkbook.Path en équivalent VBA)


Message édité par Colegram le 19-09-2005 à 09:50:18
n°1202642
Colegram
Posté le 19-09-2005 à 17:19:45  profilanswer
 

J'ai essayé (sans changer la lettre racine) de libeller le FROM de la façon que tu m'as indiquée, et ça me dit "La requête SQL ne peut pas être representée graphiquement".
Voilà le libellé tel qu'il est après la création "assistée" de la requête :
FROM `C:\mondossier\mabase`.matable matable
C'est le libellé exact (avec le point et la repetition de 2 fois matable à la fin)
Voilà ce qu'il me refuse :
FROM matable IN `C:\mondossier\mabase`
J'ai essayé avec et sans des guillemets, des apostrophes, des "accents graves", avec un point après mabase, rien n'y fait....
A propos, cette requête est créee avec Microsoft Query, est-ce une limitation de cette application ?

n°1203345
Mams
Posté le 20-09-2005 à 14:13:40  profilanswer
 

Salut.
 
Je n'y connais absolument rien ni en VBA ni en Acces mais il me semblerait plutôt logique que tu puisses utiliser comme chemin, le répertoire courant !
FROM matable IN `.\mabase` en considérant que tous tes fichiers sont dans le même répertoire bien sur.
 
C'est juste une idée comme ça pour faire avancer le 'schmilblick'


---------------
Je me lève de bonne humeur
n°1203602
Colegram
Posté le 20-09-2005 à 16:50:11  profilanswer
 

Ben, oui, moi aussi je le pensais !
J'ai pris soin justement de mettre tous mes fichiers dans le même repertoire pour lui faire retrouver le chemin à partir de celui de la requete.
Mais de toute façon il refuse obstinément la forme  : FROM....IN....


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  à l'aide : requete SQL : "FROM" variable ?

 

Sujets relatifs
Variable dans sql? lien dynamiques?[MySQL] Besoin d'aide - Optimisation d'une requête très lourde
tester si une variable est nul[réglé]Besoin d'aide avec SQL d'Oracle
Probleme de requete et de texte en php [Résolu, euh en fait non]Bloc PL/SQL pour traduire note scolaire us en note fr
(résolu) [C] interfacer SQL avec du CPHP et MS SQL
Plus de sujets relatifs à : à l'aide : requete SQL : "FROM" variable ?


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