mettre une variable dans une requête access 2003

  • Auteur de la discussion Aramil33
  • Date de début

Aramil33

Habitué
Bonjour,
J'ai un petit soucis avec une requête sous access 2003
J'aimerai qu'elle récupère a un endroit une variable venant du formulaire qui l'appelle avec un bouton.
j'ai un formulaire, dessus ya un champs de variable et un bouton, quand je clique sur le bouton ça appelle un état par une requete et la systématiquement ma requete me demande le contenue d'un variable qui a déja été remplie dans le formulaire, donc si je pouvais dire a la requete: "regarde c'est tel variable se que tu demande" ça m'arrangerai beaucoup....


Code:
SELECT TOP 1 Traitement.code_t, Traitement.codeSAP, Traitement.numligne, SAP.nom, SAP.code_pc, SAP.code_tc, SAP.code_pf, SAP.code_tf, SAP.code_article, Traitement.Remarques, Produit_Chaud.nom, Traitement_Chaud.libelle, Traitement.epaisseur_couche, Traitement.frequence_pompe, Traitement.course_pompe, Produit_Froid.nom, Traitement_Froid.libelle, Traitement.nb_sup, Traitement.debit_sup, Traitement.regulation_sup, Traitement.nb_inf, Traitement.debit_inf, Traitement.regulation_inf, Traitement.ventilation_sortie, Traitement.vitesse_tapis, Traitement.debit_barbotage, Traitement.debit_dilution
FROM Traitement, SAP, Produit_Chaud, Produit_Froid, Traitement_Chaud, Traitement_Froid
WHERE Traitement.codeSAP=SAP.codeSAP And Produit_Chaud.code_pc=SAP.code_pc And Produit_Froid.code_pf=SAP.code_pf And Traitement_Chaud.code_tc=SAP.code_tc And Traitement_Froid.code_tf=SAP.code_tf And Traitement.codeSAP=[ICI LA VARIABLE VENANT D'UN CHAMP]
ORDER BY Traitement.code_t DESC;

bon voila je pense que j'ai été clair.

[edit] merci pour me l'avoir rappellé, je ne savais plus exactement se que c'étais et où ça se trouvait la balise [ code ] [/edit]
 

Aramil33

Habitué
Bon, personne ne peut m'aidé, j'ai entendu parlé qu'il faudrai utilisé un assistant pour les requêtes en ouvrant le formulaire puis la requête mais après je ne sais pas se qu'il faut faire.
Quelqu'un sait où se trouve l'assistant?
 

Freeman23

Expert
Bonjour Aramil,

C'est pas évident à faire dans le cas d'un état, mais je vais tacher de t'aiguiller. En fait il y a plusieur manière de proceder je vais t'en donner une et tu verras si cela te convient.

Il faut que tu utilises une variable pour transmettre le paramètre car c'est la seule solution qui permet de faire cela "facilement". Donc dans un module tu créés une variable public du genre

Code:
Public message() as variant
c'est une variable tableau car au moins si un jour tu as plusieurs paramètres cela fonctionnera.

Ensuite il faut créer une fonction publique qui permet de récupérer la valeur de message (toujours dans un module)

Code:
Public function getMessage(i as long) as variant 
    'Renvoie la valeur de message à l'indice i
end function
L'avantage des fonctions publiques dans un module c'est que tu peux les appeler à l'intérieur d'une requête.

Donc tu modifie ta requete en remplacant ton critère [ICI LA VARIABLE...] par un getMessage(1).

et dans ton bouton d'exécution tu fais.

Code:
redim message(1) 
message(1) = IDE_form ' la valeur dans le formulaire
docmd.openreport ....
 

Aramil33

Habitué
Oui, c'est ce que j'étais bêtement en train de me dire en regardant ce que tu avais écrit, bref, je sais pas quoi mettre dedans.. moi et le vb on est pas copain du tout...
bref il me faut une variable globale dans la requete je met l'appel d'un fonction
j'ai pas saisie le coté modifié le bouton... pourquoi le modifier?
et enfin la fonction me largue completement... se que je met dedans c'est la récupération de la ligne du formulaire que je veut? s'va être coton pour le petit joueur de vb que je suis....
 

Freeman23

Expert
pour la fonction il faut faire :

Code:
Public function getMessage(i as long) as variant
    'Renvoie la valeur de message à l'indice i
    getMessage = message(i)
end function

Tu créé un module avec la variable et la fonction.

Il faut modifier le bouton pour que celui ci remplisse la valeur de message avant d'ouvrir l'état, sinon ton état plantera car message(1) ne sera pas initialisé.

Comme je te l'ai dit c'est pas forcément très simple pour un novice en VBA mais c'est la seule méthode que je connaisse bien.

En fait si j'essaie de faire un dessin :D

remplit lit la valeur
formulaire ==> message <====== état
 

Aramil33

Habitué
:sarcastic: Oui enfin je suis une brele en VBA c'est un faite, mais quand-même de la a faire un dessin...

Il faut modifier le bouton pour que celui ci remplisse la valeur de message avant d'ouvrir l'état
ça, ça me suffisais largement.

ps: histoire de me mettre la honte totale, je suis en 2eme année de BTS informatique de gestion :lol:
 

Freeman23

Expert
Bah :D au moins je suis sur que tu as compris :p

Tu sais y a de tout sur ce forum donc c'est pas toujours évident de cerner le niveau de qq'un en qq message ;)

Maintenant que je sais cela, je tacherai de m'adapter :ange:
 

Aramil33

Habitué
Mouais, enfin je le dit mais je ferai peut être mieu de rien dire...
Si jamais tu dit un truc plutot simple, que je pige de travers on va en revenir au ptit dessin...
Bref essaye de me parler normalement mais vu que c'est du vba je serai peut-etre pas a la hauteur de tes parole (enfin pour le moment ça va :pt1cable: )
 

Freeman23

Expert
No soucis :D

Bon si tu bloques sur qqch n'hésites pas j'y répondrai dès que possible.
 

Aramil33

Habitué

Bon alors le petit probleme que j'ai c'est le "IDE_form
C'est quoi? et quand je le met dans mon vba au moment de lancer l'appli il me dit nononononon j'en veut pas de ton IDE_truc, c'est une bibliotheque introuvable (en gros je crois qu'il le prend comme une variable non déclaré)
Bref j'ai plein de donnée dans mon formulaire moi... et je doit en prendre un spécifique, je doit mettre son ptit nom?

 

Freeman23

Expert
oui c'est ca il faut mettre le nom de ta zone de saisie, liste ou autre comme tu l'as nommé dans ton formulaire.
 

Aramil33

Habitué
Merci, je l'ai vu 2 minute après avoir posté, j'aurai du tester avant de poster :pfff:
Bref je te remercie ça marche tu m'a oté une grosse épine du pied, ensuite j'ai du faire un choix sur liste assé simple (en gros sur le même bouton j'ai du mettre un if toto=une_valeur else &co
et tout marche bien (oui en plus y avait une contrainte de choix, j'ai décomposé et commencé par le plus dur)

voila, voila, encore mercie on se reverra peut être du coté html/php/postgres car mon prochain projet porte la dessus....
 

Freeman23

Expert
de ce coté là c pas sur que je puisse t'aider, chacun sa spé et moi (la honte...) c'est le VB.
 

Aramil33

Habitué
Pas de honte a ça, le vb est puissant (le vba moins ^^)
Bref si tu a un souchi un jour en html/php/c++ & co... fait appel a moi.
 

Aramil33

Habitué
Euh,si. Pour la simple et bonne raison que le vba ne concerne qu'access (si j'ai bien tout compris)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 098
Messages
6 717 064
Membres
1 586 286
Dernier membre
petitangebleu1977
Partager cette page
Haut