VBA récuperer données requête [Access] - VB/VBA/VBS - Programmation
Marsh Posté le 20-07-2006 à 17:32:49
"select * from larequete"
bon, ok, y'a mieu
mais t'as dit que ton truc est urgent... donc tu chercheras mieu après
Marsh Posté le 20-07-2006 à 22:49:28
Arjuna a écrit : "select * from larequete" |
C'est du SQL ça non ? Mais moi j'ai une requête SQL enregistrée dans Access, et je veux utiliser celle-ci sans la copier-coller en fait (elle prend une valeur d'un formulaire et je pense pas que ça va fonctionner depuis VBA, en tout cas sans me donner encore du travail).
Bon si jamais il n'y a que cette solution quel serait le code qui entoure la requête SQL ? Càd connection à la base définition des variables etc ??
Marsh Posté le 21-07-2006 à 09:40:38
marequete, c'est ta requête ACCESS.
toi au lieu de l'appeller directement, tu fait un SELECT à partir d'elle.
ca revient RIGOUREUSEMENT AU MEME
Marsh Posté le 21-07-2006 à 10:23:00
J'ai essayé de faire comme tu dis. Alors ça marche avec une requête simple mais pas avec la requête qui m'intéresse.
Code :
|
Ma requête est basée sur d'autre requêtes et elle recoit un variable comme condition. C'est ça qui pose problème ?
Marsh Posté le 21-07-2006 à 10:51:45
normal.
là tu mets pas la valeur de ton champs, mais son nom...
"... = " & "'" & Replace([Forms]![CPS_ProductSearch_5GroupProd]![PRODUCT_DESCRIPTION_form], "'", "''" ) & "'" & "..."
Marsh Posté le 21-07-2006 à 10:58:48
soit dit en passant tu peux tres bien generer un excel a partir d une requete (deja enregistree dans tes requetes) depuis le VBA access avec la fonction
DoCmd.TransferSpreadsheet acExport, , "nomrequete", "cheminfichierexcel.xls", False, ""
Marsh Posté le 21-07-2006 à 11:36:48
Arjuna a écrit : normal. |
Excuses-moi mais j'ai pas compris ta remarque je crois..
![PRODUCT_DESCRIPTION_form] c'est une variable que je récupère dans mon formulaire, seulement je ne crois pas que VBA récupère celle-ci automatiquement comme le fait access..
betsamee a écrit : soit dit en passant tu peux tres bien generer un excel a partir d une requete (deja enregistree dans tes requetes) depuis le VBA access avec la fonction |
Non je peux pas faire ça, je dois faire une présentation assez complexe.
Marsh Posté le 21-07-2006 à 11:39:06
tu mets un nom de variable VB (le champs) dans une chaîne de caractère (requête SQL). normal que ça ne marche pas. il faut mettre la valeur à la place.
Marsh Posté le 21-07-2006 à 11:55:18
Arjuna a écrit : t pas drôle |
je sais
Big-Foot a écrit : |
tu as un moyen de mettre un modele de document excel quelque part je me rappelle plus exactement mais je sais que je le faisais
Marsh Posté le 21-07-2006 à 13:29:38
Arjuna a écrit : tu mets un nom de variable VB (le champs) dans une chaîne de caractère (requête SQL). normal que ça ne marche pas. il faut mettre la valeur à la place. |
Ok mais pour récupérer cette variable du formulaire je fais comment sous vba ?
betsamee a écrit : je sais |
Ah? Ca c'est intéressant, tu peux m'en dire plus ?
Ce que j'ai fait moi, c'est que j'édite un document "template" avec ma méthode.
Marsh Posté le 21-07-2006 à 13:53:33
Big-Foot a écrit : Ok mais pour récupérer cette variable du formulaire je fais comment sous vba ? |
je te repond dimanche je serais devant le code que j avais pondu
Marsh Posté le 25-07-2006 à 20:15:02
Pour utiliser ta requete directement enregistré, si y'a une valeur qui vient d'un formulaire, il faut utiliser des requetes paramétrées.
ex:
set rp = currentdb.querydefs("nomrequete" )
rp![[forms]![nomform]![nomchamp]]=[forms]![nomform]![nomchamp]
set req=rp.openrecordset
Marsh Posté le 28-07-2006 à 12:53:02
aenor a écrit : Pour utiliser ta requete directement enregistré, si y'a une valeur qui vient d'un formulaire, il faut utiliser des requetes paramétrées. |
En fait en attendant j'ai un peu contourné le problème: j'ai transformer ma requête de selection,en une requête de création de table. Après je tape une requête de selection dans mon script et voilà.
Le seul problème c'est que j'ai des messages qui me signalent que je crée une table etc...
Mais bon ça passe, et les gens qui m'ont demandé ça n'y voit pas d'inconvenient.
Mais merci pour la réponse! Ca va sûrement me servir une fois, et puis ça va probablement aussi dépanner des gens à la recherche de cette infos.
Marsh Posté le 02-08-2006 à 18:46:05
Bonsoir,
une adrese pour les messages:
http://faq.vb.free.fr/index.php?question=78
Cordialement
Marsh Posté le 07-08-2006 à 18:44:19
Big-Foot a écrit : En fait en attendant j'ai un peu contourné le problème: j'ai transformer ma requête de selection,en une requête de création de table. Après je tape une requête de selection dans mon script et voilà. |
pour enlever les messages : docmd.setwarnings false
Marsh Posté le 20-07-2006 à 17:27:28
Bonjour
Je dois générer un document Excel à partir d'une DB Access. J'y arrive presque, il me manque une chose: récupérer les données fournies par une requête enregistrée. (Je dois procéder ainsi)
J'ai trouvé ce code:
Cela fonctionne, mais uniquement pour les données d'une table. Lorsque je remplace le nom de la table par celui de la requête qui m'intéresse ça plante.
Je ne connais pas très bien VBA, si vous pouviez m'aider à adapter ce petit bout de code à mes besoins ça serait vraiment sympa. Merci.
PS: j'ai fait pas mal de recherches sur google sans pour autant trouver de solution...
Message édité par Big-Foot le 28-07-2006 à 12:53:25