|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour à tous,
J'ai réalisé un état avec un sous-état qui sont basés sur 2 requêtes différentes et qui font appels à une valeur de paramètre identique. Lorsque j'ouvre mon état, je suis obligé de rentrer 2 fois la valeur de paramètre, normal me direz-vous, mais là où ça devient pénible, c'est que dès que je touche à l’ascenseur de mon état j'ai la fenêtre valeur de paramètre qui s'affiche à nouveau... Savez-vous pour quelle raison la valeur de paramètre m'est demandée sans cesse dès lors que je touche à ascenseur de mon état ? Est-il possible de rentrer qu'une seule valeur de paramètre pour un état et sous-état lorsque cette dernière est identique ? D'avance merci |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Bonjour,
Citation:
Citation:
Montre-nous la source (sans doute une requête) de chacun de tes deux états. Dis aussi ce qui déclenche l'ouverture de ton état principal. |
||
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir Claude,
je te joins les "screen shot" de mes deux requêtes. Pour le moment je déclenche l'état principal par le volet de navigation... Merci infiniment. |
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Avec ce que tu montres, on ne voit pas clairement que le paramètre intervient dans les deux sources.
Je suppose que la première requête (celle qui demande Dinul) intervient aussi comme source de la deuxième requête. Tu pourrais procéder comme ceci : - à l'ouverture de l'état principal, tu recueilles la valeur de Dinul avec une InputBox, - ce qui te permet de construire le sql de la source du sous-état et celle de l’état principal. Es-tu à l’aise avec le code ? |
|
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
En effet, le paramètre n'est pas visible dans la requête "Responsabilité" car il figure dans une pré-requête...
Hélas, je ne maitrise pas du tout le "code"... |
|
|
00
|
|
|
#6 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
C'est peut-être l'occasion de commencer.
Je peux t'aider. |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
Pour minimiser le recours au code, procède comme ceci :
- la valeur du paramètre sera logée dans une variable globale ; - alimentée à l’ouverture de l’état principal (InputBox) ; - dans les requêtes où le paramètre intervient, remplace ce dernier par une fonction qui donne la valeur de la globale. As-tu besoin de plus de détail pour mettre en pratique ? |
|
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir Claude,
J'avoue ne pas savoir comment m'y prendre, je vais avoir besoin d'un plus de détails. Mon niveau en access n'est pas encore suffisant ...Mais je m'accroche ! Merci |
|
|
00
|
|
|
#9 | ||||||
![]() ![]() ![]() Claude LELOUPChercheur de loisirs (ayant trouvé !) Inscription : novembre 2006 Messages : 5 242 ![]() |
On y va.
Dans la fenêtre des objets, tu choisis l’onglet Modules, tu cliques sur nouveau => une fenêtre s’ouvre, tu es dans l’éditeur de code. On va définir une variable globale. Cela veut dire un endroit de la mémoire dans lequel on peut stocker de l’info pour la récupérer ensuite. Tu colles ceci, dans le module : J’ai mis « variant » comme type de données parce que j’ignore le type exact (caractère, entier…) dans ta db. Supprime « As Variant » et tape « AS » => Access va te proposer les valeurs possibles, choisis celle qui correspond à ton cas. Nous allons aussi écrire une fonction, pour récupérer la valeur qui s’y trouvera tout à l’heure. Code :
Tu sauves (Ctrl + S) => Access te propose un nom par défaut, tu l’acceptes et tu fermes la fenêtre de ce module. Maintenant nous allons nous occuper de ton état principal. Nous allons dire à Access qu’à l’ouverture de l’état, il faut demander à l’utilisateur la valeur de Dinul et la mémoriser dans gDinul. Nous allons donc associer à l’événement « Sur ouverture » un code pour exécuter cette action. Tu ouvres ton état en mode construction, tu affiches les propriétés, onglet Évènements, tu double-cliques sur la ligne « Sur ouverture » => [Procédure événementielle] s’affiche, clique sur les … à la fin de la ligne => une fenêtre s’ouvre : nous sommes dans le module de l’état. Tu vois ceci : Code :
'demander à l'utilisateur de saisir la valeur de Dinul gDinul = InputBox("Saisissez la valeur de Dinul") la première ligne est du commentaire (commence par une apostrophe) la deuxième ligne en français : afficher une boîte avec le texte indiqué, et mémoriser dans gDinul ce que l’utilisateur aura encodé. Donc finalement tu as ceci : Code :
Tu sauves. Tu dois maintenant modifier les requêtes où intervenait Dinul. Tu remplaces « Dinul ? » par Ça devrait marcher. Reviens si quelque chose t’échappe. Bonne chance pour ton premier programme, il faut un début à tout. |
||||||
|
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Claude .... Un grand merci !!
Un seul paramètre et mon état + sous-état s'affichent correctement ! ![]() Merci infiniment de ta disponibilité et de la lisibilité de tes explications |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com