|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité de passage
![]() Inscription : mai 2011 Messages : 9 ![]() |
Bonjour,
J'essaie désespérément de récupérer le résultat d'une requête lancée depuis VB pour ensuite éditer automatiquement un état de cette requête (et l'imprimer aussi). Mais comment faire pour que le résultat de ma requête s'affiche dans une table (comme cela le fait lorsque on lance une requête en mode classique). Si-dessous une partie du code (strChamps est une variable définie par des sélections dans une liste box) Code :
|
||
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Bonjour.
Apparemment ce dont tu as besoin c'est d'une requête au sens des objets ACCESS. C'est une QueryDef. Tu crées une Querydef, tu lui donnes comme SQL la chaîne que tu as écrites, et tu ouvres ta QeryDef comme une table. Cordialement, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : mai 2011 Messages : 9 ![]() |
Bonjour et merci de ta réponse,
J'ai déjà essayé de faire avec une query mais ne faut -t-il pas que la requête soit crée dans le dur et nommée pour cela. ici je ne peux pas car les critères de ma requête change en fonction des sélections préalables de l'utilisateur dans la liste box (d’où la variable strChamps). Donc j'essaie avec une query mais message d'erreur (erreur 3265, élément non trouvé dans cette sélection). le code ci-dessous : Code :
Par hasard, ne faudrait-il pas que je créé une table qui se remplisse en fonction du recordset (méthode bidouille mais je préfèrerais éviter ) ? |
||
|
|
00
|
|
|
#4 |
|
Membre confirmé
![]() Développeur amateur Inscription : mars 2009 Messages : 176 ![]() |
Bonjour,
je crois qu'il faut utiliser la methode "createquerydef" cordialement |
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() Pierre GONZALEZDéveloppeur Office VBA Inscription : août 2005 Messages : 3 412 ![]() |
Re,
Dans le principe c'est très simple. Oui il faut créer un objet QueryDef et le nommer, mais non la requête associée n'est pas figée : tu la modifies par code. Si tu ne vois pas comment faire, je te donne une routine que tu pourras adapter. Cdlt, PGZ
__________________
pluritas non est ponenda sine necessitate - Le rasoir d'Okham Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon |
|
|
00
|
|
|
#6 | ||
|
Invité de passage
![]() Inscription : mai 2011 Messages : 9 ![]() |
Bonjour,
Merci encore pour ton aide. Je pense que la routine que tu me propose pourrait être grandement utile. Suite à tes conseils j'ai créé un createquery en lui donnant un nom ect... cependant, cela ne m'affiche pas le résultat attendu (une table avec le résultat de ma requête comme lorsque je passe par SQL et exécuter). En fait je voudrais pouvoir éditer un état depuis le résultat de cette requête (j'ai programmé une macro qui devrait éditer l'état depuis cette nouvelle table en faisant un DoCmd.RunMacro). je mets le code du createquery ci-dessous : Code :
Merci, |
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : mai 2011 Messages : 9 ![]() |
Re bonjour à tous,
j'apporte enfin la réponse à ma question. Messieurs, j'ai apprécié vos réponses mais il ne s'agit pas d'un createquery ou que sais-je. il fallait simplement lancer un runSQL (que j'avais déjà tester mais bon. Dans la requête SQL il faut spécifier un INTO pour la création de la nouvelle table. il vaut mieux taper le code du SQL plutot que de la nommer précedemment. Le code ci-dessous : Code :
rrrrrrrrrrrrrrrrrrrrrrrrrrrr merci à tous en tout les cas. Bonne journée. |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com