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

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Access / VB] Noob : comment lancer une requette parametree depuis VB?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Access / VB] Noob : comment lancer une requette parametree depuis VB?

n°585698
Guigui
Posté le 08-12-2003 à 15:58:51  profilanswer
 

Hello,
 
question tellement basique que je trouve pas la reponse ici, ni dans les 2-3 sites visites. Rigolez pas  :o
 
J'ai une requette qui a besoin d'un parametre, et je veux l'appeler depuis du code vb en precisant ce parametre : comment je fais ?
 
Merci
 
Vous pouvez rigoler maintenant  :whistle:

mood
Publicité
Posté le 08-12-2003 à 15:58:51  profilanswer
 

n°585742
drasche
Posté le 08-12-2003 à 16:31:48  profilanswer
 

ben tu fais ta requête dans une string, tu y insères ton paramètre au passage, puis tu lances ta requête.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°586220
Guigui
Posté le 09-12-2003 à 07:33:20  profilanswer
 

:jap: voui j'avais trouve ca aussi. Mais du coup si je veux modifier la requette, il faut le faire aussi dans le code. J'ai plusieurs cas comme ca, qui vont apparaitre plusieurs fois dans le code aussi, donc je cherchais une solution plus "propre" [:mr marron derriere]
J'ai du mal a croire que ca soit impossible :heink:


Message édité par Guigui le 09-12-2003 à 07:33:43

---------------
Viendez faire du VTT en montagne
n°586279
drasche
Posté le 09-12-2003 à 09:49:48  profilanswer
 

pourquoi ce serait pas propre? c'est une simple requête :heink:
 
et non ce n'est pas possible autrement :o
 
A moins que:
1) tu sois en Access, tu fais un objet Query et tu y accèdes dans ton code via l'objet Command fourni par la librairie ADO
2) tu es dans un SGBD convenable et tu fais une vue. Mais faire une vue pour la moindre requête, c'est complètement idiot. Les vues sont là pour "simuler" une table faite de toutes pièces à partir d'une requête complexe (et donc accélérer/faciliter un peu les choses).
 
Franchement, il n'y a absolument rien de mal à avoir une requête dans le code [:spamafote]


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°586286
Guigui
Posté le 09-12-2003 à 09:58:47  profilanswer
 

drasche a écrit :

pourquoi ce serait pas propre? c'est une simple requête :heink:

Bha oui mais je doit aussi y acceder manuellement, donc elle existe deja en tant qu'objet requette dans ma base access, et je peux etre ammene a la modifier. Dans ce cas, je devrais modifier la requette, et le code.

Citation :


et non ce n'est pas possible autrement :o

:sweat:

Citation :


A moins que:
1) tu sois en Access, tu fais un objet Query et tu y accèdes dans ton code via l'objet Command fourni par la librairie ADO

Ca y ressemble : je suis sous access et j'ai ma requette faite. Dans le code, j'utilise docmd pour la lancer mais impossible de lui passer le parametre :??:

Citation :


Franchement, il n'y a absolument rien de mal à avoir une requête dans le code [:spamafote]

Au pire je finirai comme ca, certe, mais dans mon cas je prefererai eviter  [:mr marron derriere]


Message édité par Guigui le 09-12-2003 à 09:59:40

---------------
Viendez faire du VTT en montagne
n°586317
drasche
Posté le 09-12-2003 à 10:42:05  profilanswer
 

DoCmd et Command n'ont rien à voir. Command est un objet de la librairie ADO auquel on peut passer des paramètres, mais il faut que ton objet requête les accepte (donc quand tu lances ta requête à la main, il te demande aussi ces paramètres).
 
Tu utilises quelle version d'Access?


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°586323
Guigui
Posté le 09-12-2003 à 10:45:56  profilanswer
 

drasche a écrit :

DoCmd et Command n'ont rien à voir. Command est un objet de la librairie ADO auquel on peut passer des paramètres, mais il faut que ton objet requête les accepte (donc quand tu lances ta requête à la main, il te demande aussi ces paramètres).

OK, ca s'utilise comment ca ?

Citation :


Tu utilises quelle version d'Access?

2002 SP2
 
en tout cas, merci pour tes reponses :jap:


---------------
Viendez faire du VTT en montagne
n°586338
drasche
Posté le 09-12-2003 à 11:11:37  profilanswer
 

en admettant que la variable strQryName contienne le nom de ton objet query, cela ressemble à ceci en DAO (la vieille API utilisée par Access, je ne sais pas si elle est encore en vigueur sous Access XP)
 

Code :
  1. MaDatabase.QueryDefs(strQryName).Parameters!langue = iLangue
  2. Set rs = MaDatabase.QueryDefs(strQryName).OpenRecordset


 
La première ligne fournit le paramètre à la query (autant de lignes que de paramètres bien sûr)
La seconde ouvre le recordset.


Message édité par drasche le 09-12-2003 à 11:11:50

---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°586348
drasche
Posté le 09-12-2003 à 11:29:20  profilanswer
 

En ADO (selon mes souvenirs, je ne garantis pas que ça marche du premier coup [:joce])
 

Code :
  1. ' Soit strCommandName = le nom de l'objet requête dans la DB Access
  2. ' Soi ConnectionCourante = un objet ADODB.Connection ouvert
  3. Dim objCmd As ADODB.Command ' La commande pour ouvrir la requête
  4. Dim objParameter As ADODB.Parameter ' Paramètre à passer à la commande
  5. Dim rst As ADODB.Recordset ' Le résultat
  6. Set objCmd = New ADODB.Command ' Création de la commande
  7. Set objCmd.ActiveConnection = ConnectionCourante ' Association avec la DB
  8. objCmd.CommandText = strCommandName ' Assignation de la requête voulue
  9. objCmd.CommandType = adCmdStoredProc ' type par défaut pour un objet requête Access
  10. ' Ajout d'un paramètre:
  11. '   strParameter = le nom du paramètre,
  12. '   adInteger est le type,
  13. '   vValue est la valeur à passer pour ce paramètre
  14. Set objParameter = objCmd.CreateParameter(strParameter, adInteger, , , vValue)
  15. Call objCmd.Parameters.Append(objParameter)
  16. ' [...] répéter ces deux lignes autant de fois qu'il y a de paramètres
  17. ' Exécution de la requête et récupération du résultat
  18. Set rst = objCmd.Execute()


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°586353
Guigui
Posté le 09-12-2003 à 11:34:57  profilanswer
 

:jap: merci ! Je vais essayer en ADO cet apres-midi : ca m'a l'air d'etre exactement ce que je cherchais !
 
Je te dis si ca a marche tout a l'heure :hello:


---------------
Viendez faire du VTT en montagne
mood
Publicité
Posté le 09-12-2003 à 11:34:57  profilanswer
 

n°586659
Guigui
Posté le 09-12-2003 à 15:58:15  profilanswer
 

drasche a écrit :


Code :
  1. Set objCmd.ActiveConnection = ConnectionCourante ' Association avec la DB




Je bloque ici : comment je connecte a ma database ?
 
je suis vraiment noob  :heink:


---------------
Viendez faire du VTT en montagne
n°586675
drasche
Posté le 09-12-2003 à 16:11:25  profilanswer
 

je t'avoue que je ne sais pas :/
 
En DAO, ta DB est référencée par la variable CurrentDB. Je te suggère donc d'essayer ma première solution avec les QueryDefs.


---------------
Whichever format the fan may want to listen is fine with us – vinyl, wax cylinders, shellac, 8-track, iPod, cloud storage, cranial implants – just as long as it’s loud and rockin' (Billy Gibbons, ZZ Top)
n°586686
Guigui
Posté le 09-12-2003 à 16:26:04  profilanswer
 

drasche a écrit :

je t'avoue que je ne sais pas :/
 
En DAO, ta DB est référencée par la variable CurrentDB. Je te suggère donc d'essayer ma première solution avec les QueryDefs.

J'ai essaye, mais je bloque aussi. Bon je reessaye les deux demain matin.
 
Merci :jap:


---------------
Viendez faire du VTT en montagne
n°587425
Guigui
Posté le 10-12-2003 à 15:11:55  profilanswer
 

bon, hayest j'ai reussi en DAO, mais au prix d'un contournement barbare : impossible de recuperer la querydef a partir du nom : querydefs(strName) ou querydefs(itemNumber), rien ne passe :heink: Du coup je fais un :


Dim qdfTemp As QueryDef
 
With CurrentDb
    For Each qdfTemp In .QueryDefs
        If qdfTemp.Name = strName Then
            qdfTemp.Parameters!strParameter = DateParamValue
            qdfTemp.Execute
        End If
    Next qdfTemp
end With


 [:ddr555]  [:totoz] Mais bon ca passe...
 
Merci :jap: j'ai bien progresse la  [:evil-raphiscorn]


---------------
Viendez faire du VTT en montagne
n°587452
Guigui
Posté le 10-12-2003 à 15:21:33  profilanswer
 

Hayest c'est bon, j'avais juste oublie le Set :whistle:
 
Patapay je viens du basic sous ZX Spectrum + hein :lol:


---------------
Viendez faire du VTT en montagne

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

  [Access / VB] Noob : comment lancer une requette parametree depuis VB?

 

Sujets relatifs
afficher le contenu d'un requette SQL dans 1 DataGrid ou autre ?ACCESS : nom de fichier en dynamique dans Macro TransférerFeuilleCalc
Comment lancer une aplli DOS en la cachant ?Retrouver la requete sur laquelle est basée un formulaire ACCESS ???
lancer un batch avec les options "cmd /V:ON" automatiquement ?Problème de connexion entre SQL Server et une base mixte Access/SQL
Flexgrid ou dbgrid avec Access 97Capacité Nbre Records Access
Connection Access sur table externe[noob][mysql] ou trouver les info pour peupler ma base
Plus de sujets relatifs à : [Access / VB] Noob : comment lancer une requette parametree depuis VB?


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