[ACCESS] Boîte dialogue alimentée pr variable
Résolu
GUYSYS
Messages postés
27
Date d'inscription
Statut
Membre
Dernière intervention
-
GUYSYS Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
GUYSYS Messages postés 27 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Afin d'obtenir des résultats mensuels, 3 requêtes permettent d'obtenir ces résultats . Les critères de ces requêtes sont basés sur le mois concerné ou le mois suivant.
Le problème est que pour que le tout fonctionne il faut entrer plusieurs fois au clavier les critères " mois concerné" .
Comment peut-on remplacer ces saisies répétitives par une seule? L'idée est de stocker la valeur de la première dans une variable et la réintégrer dans les boites de dialogues suivantes par programmation;.
Pouvez-vous m'aider pour traduire l'idée en code ?
Merci d'avance .
Afin d'obtenir des résultats mensuels, 3 requêtes permettent d'obtenir ces résultats . Les critères de ces requêtes sont basés sur le mois concerné ou le mois suivant.
Le problème est que pour que le tout fonctionne il faut entrer plusieurs fois au clavier les critères " mois concerné" .
Comment peut-on remplacer ces saisies répétitives par une seule? L'idée est de stocker la valeur de la première dans une variable et la réintégrer dans les boites de dialogues suivantes par programmation;.
Pouvez-vous m'aider pour traduire l'idée en code ?
Merci d'avance .
A voir également:
- [ACCESS] Boîte dialogue alimentée pr variable
- Boite gmail saturée - Guide
- Dialogue boost - Accueil - Guide streaming
- Boite gmail bloquée - Guide
- Se connecter à ma boite hotmail - Guide
- Boite a couleur - Télécharger - Divers Photo & Graphisme
9 réponses
bonjour ,
Euréka , j'ai trouvé.
Pour ceux que ça intéresse ,je mets le code ci-dessous.
Détail de l'affaire:
Sur F_monformulaire mettre contrôle indépendant
Avec nom : MOISCONCERNE
Affecter à un bouton du formulaire une macro exécutant exécutant les requêtes nécessaires à l’arrêté R_Entrées, R_Sorties, R_Stocks
Critère à noter dans les requêtes
dans le champ dateentree
Sorties dans le champ datesortie:
et stocks
dans le champ dateentrée ( mois suivant le mois d’arrêté):
et dans le champ date sortie :
Un état avec comme source une requête R_RésultatsMensuels issus des 3 requêtes précédentes permet d’obtenir les résultats souhaités en terme d’entrée de sortie et de stocks résiduels en fonction du mois d’arrêté choisi.
La difficulté comme d’habitude avec ACCESS est de trouver les bonnes syntaxes pour concrétiser les idées.
il m’a fallu, effectivement, passer par un contrôle indépendant , et des critères ou le signe = a du être remplacé par Comme et ou le mois suivant est obtenu au moyen de la fonction AjDate.
Merci à zenon de m’avoir mis sur la voie.
Ce système fonctionne parfaitement et supprime les 4 inputbox qui sollicitaient les paramètres , ce qui va beaucoup plus vite et évite ainsi les erreurs de saisies potentielles du mois d’arrêté.
Euréka , j'ai trouvé.
Pour ceux que ça intéresse ,je mets le code ci-dessous.
Détail de l'affaire:
Sur F_monformulaire mettre contrôle indépendant
Avec nom : MOISCONCERNE
Affecter à un bouton du formulaire une macro exécutant exécutant les requêtes nécessaires à l’arrêté R_Entrées, R_Sorties, R_Stocks
Critère à noter dans les requêtes
dans le champ dateentree
Comme [Forms]![F_monformulaire].[MOISCONCERNE]
Sorties dans le champ datesortie:
Comme [Forms]![F_monformulaire].[MOISCONCERNE]
et stocks
dans le champ dateentrée ( mois suivant le mois d’arrêté):
<=AjDate("m";1;[Forms]![F_monformulaire].[MOISCONCERNE])
et dans le champ date sortie :
Est Null Ou >=AjDate("m";1;[Forms]![F_monformulaire].[MOISCONCERNE])
Un état avec comme source une requête R_RésultatsMensuels issus des 3 requêtes précédentes permet d’obtenir les résultats souhaités en terme d’entrée de sortie et de stocks résiduels en fonction du mois d’arrêté choisi.
La difficulté comme d’habitude avec ACCESS est de trouver les bonnes syntaxes pour concrétiser les idées.
il m’a fallu, effectivement, passer par un contrôle indépendant , et des critères ou le signe = a du être remplacé par Comme et ou le mois suivant est obtenu au moyen de la fonction AjDate.
Merci à zenon de m’avoir mis sur la voie.
Ce système fonctionne parfaitement et supprime les 4 inputbox qui sollicitaient les paramètres , ce qui va beaucoup plus vite et évite ainsi les erreurs de saisies potentielles du mois d’arrêté.
Salut,
Tu pourrais demander la saisie de la date dans un champ texte indépendant et faire référence à la valeur de ce champ dans ton code.
Par exemple, si tu as des requêtes avec un critère. A l'ouverture Access te demande la valeur du critère. Tu peux la lui fournir avec une condition WHERE du type: DateRecherchée=Forms!NomDuForm!NomDuChampTexte
Tu pourrais demander la saisie de la date dans un champ texte indépendant et faire référence à la valeur de ce champ dans ton code.
Par exemple, si tu as des requêtes avec un critère. A l'ouverture Access te demande la valeur du critère. Tu peux la lui fournir avec une condition WHERE du type: DateRecherchée=Forms!NomDuForm!NomDuChampTexte
merci zenon de ta réponse.
Tu suggères de passer par un champ texte indépendant et de faire référence à la valeur de ce champ dans mon code.
C'est bien là le problème , je ne sais pas remplacer une boite de dialoque par un champ texte dont la valeur saisie pourrait être utilisée dans les autres requêtes.
De plus je ne sais pas ni quel code mettre , ni ou le mettre.
pourrais-tu me montrer un exemple?
Tu suggères de passer par un champ texte indépendant et de faire référence à la valeur de ce champ dans mon code.
C'est bien là le problème , je ne sais pas remplacer une boite de dialoque par un champ texte dont la valeur saisie pourrait être utilisée dans les autres requêtes.
De plus je ne sais pas ni quel code mettre , ni ou le mettre.
pourrais-tu me montrer un exemple?
Bin, ça dépend... Comment procèdes-tu actuellement?
Tu pourrais par exemple partir d'un formulaire muni de boutons de commande permettant d'appeler les différentes requêtes. Tu peux ajouter un champ texte indépendant (qu'on appellerait "RechercheDate" dans lequel tu entres la date.
Tes requêtes peuvent être créées avec l'assistant graphique. Dans ce cas tu inclus le champ "date" de ta table et en regard de "critère" tu tapes "=RechercheDate" (sans les guillements).
En mode SQL ça donne: SELECT... ...WHERE "NomDuChampContenantLaDate=RechercheDate"; (Bien sûr, tu dois mettre tes propres critères)
Dans ta situation actuelle, demandes-tu l'affichage d'une InputBox pour entrer la date ou la boite s'affiche-t-elle automatiquement à l'ouverture de ta requête? Dans ce dernier cas, c'est parce qu'Access ne trouve pas le critère de recherche. Si tu le lui indique comme proposé plus haut la boite ne devrait plus s'afficher.
Tu pourrais par exemple partir d'un formulaire muni de boutons de commande permettant d'appeler les différentes requêtes. Tu peux ajouter un champ texte indépendant (qu'on appellerait "RechercheDate" dans lequel tu entres la date.
Tes requêtes peuvent être créées avec l'assistant graphique. Dans ce cas tu inclus le champ "date" de ta table et en regard de "critère" tu tapes "=RechercheDate" (sans les guillements).
En mode SQL ça donne: SELECT... ...WHERE "NomDuChampContenantLaDate=RechercheDate"; (Bien sûr, tu dois mettre tes propres critères)
Dans ta situation actuelle, demandes-tu l'affichage d'une InputBox pour entrer la date ou la boite s'affiche-t-elle automatiquement à l'ouverture de ta requête? Dans ce dernier cas, c'est parce qu'Access ne trouve pas le critère de recherche. Si tu le lui indique comme proposé plus haut la boite ne devrait plus s'afficher.
bonjour zenon, je crois que je n'arrives pas à m'expliquer
Dans mes requêtes successives j'ai mis comme critère dans les champs mois :
[ENTREZ MOIS CONCERNE sous la forme mois année] pour la requête concernant les entrées et [ENTREZ MOIS CONCERNE sous la forme mois année] pour la requête concernant la sortie puis [ENTREZ le MOIS suivant celui CONCERNE ] pour la requête concernant le stock.
De ce fait s'affichent 3 input box que l'utilisateur doit saisir. le résultat de ces requêtes sont exactement ce que je veux obtenir ; Toutefois , je voudrais donc que l'utilisateur ne saisisse qu'1 fois le mois de la première requête et que ce critère soit ré-utilisé par access pour exécuter les 2 autres ( la troisième a besoin du critère mois suivant )
Je pense qu'une variable devrait faire l'affaire mais je ne vois pas toujours pas comment faire).
Dans mes requêtes successives j'ai mis comme critère dans les champs mois :
[ENTREZ MOIS CONCERNE sous la forme mois année] pour la requête concernant les entrées et [ENTREZ MOIS CONCERNE sous la forme mois année] pour la requête concernant la sortie puis [ENTREZ le MOIS suivant celui CONCERNE ] pour la requête concernant le stock.
De ce fait s'affichent 3 input box que l'utilisateur doit saisir. le résultat de ces requêtes sont exactement ce que je veux obtenir ; Toutefois , je voudrais donc que l'utilisateur ne saisisse qu'1 fois le mois de la première requête et que ce critère soit ré-utilisé par access pour exécuter les 2 autres ( la troisième a besoin du critère mois suivant )
Je pense qu'une variable devrait faire l'affaire mais je ne vois pas toujours pas comment faire).
Bien, je pense que la solution que je te propose devrait fonctionner...
Access peut simplement utiliser la valeur du champ texte eu lieu et place de la valeur renvoyée par l'input box.
Si cela ne te convient pas, tu peux déclarer une variable
dim DateRech As Date
puis lui attribuer une valeur:
DateRech = InputBox...
Puis tu utilises simplement la valeur de DateRech dans tes critères de tri.
mais ce n'est pas très "transparent": l'utilisateur ne sait pas ce que contient la variable. Ca implique aussi que l'utilisateur utilise toujours le formulaire dans le même ordre sinon, à moins de prévoir un bloc If dans le code de chaque bouton pour vérifier si la variable a été initialisée.
Access peut simplement utiliser la valeur du champ texte eu lieu et place de la valeur renvoyée par l'input box.
Si cela ne te convient pas, tu peux déclarer une variable
dim DateRech As Date
puis lui attribuer une valeur:
DateRech = InputBox...
Puis tu utilises simplement la valeur de DateRech dans tes critères de tri.
mais ce n'est pas très "transparent": l'utilisateur ne sait pas ce que contient la variable. Ca implique aussi que l'utilisateur utilise toujours le formulaire dans le même ordre sinon, à moins de prévoir un bloc If dans le code de chaque bouton pour vérifier si la variable a été initialisée.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bon , me revoila.
désolé , je n'y arrives pas .
j 'ai essayé de mettre un champ indépendant sur un formulaire et de faire référence à ce champ pour que les requêtes prennent le mois en considération ; mais j'ai aussi créé un module pour créer la variable mais les inputbox apparaissent toujours , le tout ensemble ne fonctionne pas , séparément non plus d'ailleurs.
dans 2 requêtes j'ai mis come critère :
et dans celle qui doit prendre en compte le mois suivant j'ai mis :
peux-tu m'aider ?
désolé , je n'y arrives pas .
j 'ai essayé de mettre un champ indépendant sur un formulaire et de faire référence à ce champ pour que les requêtes prennent le mois en considération ; mais j'ai aussi créé un module pour créer la variable mais les inputbox apparaissent toujours , le tout ensemble ne fonctionne pas , séparément non plus d'ailleurs.
Function ARRETE() Dim MOISCONCERNE As Date MOISCONCERNE = InputBox("ENTRER LE MOIS CONCERNE", "RESULTATS MENSUELS", Default, 100, 100) End Function
dans 2 requêtes j'ai mis come critère :
"=Forms!F_monformulaire!MOISCONCERNE"
et dans celle qui doit prendre en compte le mois suivant j'ai mis :
<"=Forms!F_monformulaire!MOISCONCERNE"+1
peux-tu m'aider ?
Si j'ai bien compris, tu as des boutons de commande qui appellent les requêtes.
C'est directement dans les requêtes que tu devrais faire référence aux critères.
Si tu travailles avec l'assistant, dans le champ "critères" (partie inférieure du tableau) et dans la colonne où tu veus appliquer le tri, tapes la référence à la date recherchée (le nom du champ indépendant): =Forms!NomDuFormulaire!NomDuChamp
Normalement ça doit fonctionner sinon, c'est que les noms du formulaire ou de champ ne sont pas corrects ou qu'ils contiennent des espaces et que tu n'as pas mis de crochets([])...
Si tu travailles en mode SQL, tu dois avoir une condition Where du type: SELECT... WHERE "NomDuChampSurLequelTuVeuxTrier = Forms!NomDuFormulaire!NomDuChampIndépendant";
C'est directement dans les requêtes que tu devrais faire référence aux critères.
Si tu travailles avec l'assistant, dans le champ "critères" (partie inférieure du tableau) et dans la colonne où tu veus appliquer le tri, tapes la référence à la date recherchée (le nom du champ indépendant): =Forms!NomDuFormulaire!NomDuChamp
Normalement ça doit fonctionner sinon, c'est que les noms du formulaire ou de champ ne sont pas corrects ou qu'ils contiennent des espaces et que tu n'as pas mis de crochets([])...
Si tu travailles en mode SQL, tu dois avoir une condition Where du type: SELECT... WHERE "NomDuChampSurLequelTuVeuxTrier = Forms!NomDuFormulaire!NomDuChampIndépendant";
Si j'ai bien compris, tu as des boutons de commande qui appellent les requêtes.
j'ai en effet un bouton qui sur clic exécute les requêtes 1 , 2 et 3
j'ai mis les crochets et inscrits les codes dans les critères des requêtes mais lorsque je lance ces requêtes , une input box s'affiche Entrez la valeur du paramètre
= MOISCONCERNE+1
Si je mets mai 2006 , access me réponds type de données incompatible dans l'expression du critère .
Et je suis pas plus avancé.....
Bon , en retravaillant un peu la syntaxe et sans passer par input box , il y a du mieux; les requêtes sur le mois concerné fonctionnent mais celles sur le mois suivant non.
en fait j'ai entré comme criTère de requête pour le mois suivant:
c'est le + 1 qui bloque semble-t-il .
car les critères basés sur le code du mois saisi dans le contrôle indépendant fonctionnent.
Comment peut-on coder le mois qui suit celui saisi.
Les 2 premières requêtes fonctionnent avec MOISCONCERNE sous la forme mmmm\aaaa ex: avril 2006 , mais je voudrais obtenir le mois suivant c'est à dire mai 2006 à partir de la variable MOISCONCERNE .
Et apparemment MOISCONCERNE +1 ne donne pas mai 2006....
merci d'avance .
en fait j'ai entré comme criTère de requête pour le mois suivant:
=[Forms]![F_monformulaire].[MOISCONCERNE]+1
c'est le + 1 qui bloque semble-t-il .
car les critères basés sur le code du mois saisi dans le contrôle indépendant fonctionnent.
=[Forms]![F_monformulaire].[MOISCONCERNE]
Comment peut-on coder le mois qui suit celui saisi.
Les 2 premières requêtes fonctionnent avec MOISCONCERNE sous la forme mmmm\aaaa ex: avril 2006 , mais je voudrais obtenir le mois suivant c'est à dire mai 2006 à partir de la variable MOISCONCERNE .
Et apparemment MOISCONCERNE +1 ne donne pas mai 2006....
merci d'avance .