IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

IHM Discussion :

Modifier simplement les critères des requêtes depuis un formulaire [AC-2016]


Sujet :

IHM

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut Modifier simplement les critères des requêtes depuis un formulaire
    Slt les copains

    d'abord bonne année a toutes et à tous

    finalement aprés triturage des méninges (les miens lol) et un peu ( bcp) de lecture un peu partout je solllicite votre aide sur :

    je remercie de l' aide que j'ai eu et mis les exemples donnés soigneusement de coté pour un futur proche
    aprés analyse ce n'est pas tout a fait ce qu'il me faut qui x peux m'aider?

    je voudrais en fait changer le critère de ma requête automatiquement a l'aide d'un formulaire pour que la secrétaire de l'association ne vienne pas trifouiller ds le code c'est comme ça que je me retrouve a refaire la base car l'autre est cassée, (faites par un autre bénévole parti depuis !!)

    donc j'ai une requête qui s'appelle "adhérents (étendu) basé sur la table adhérents, la différence est les 2 champs concaténés de prénom et nom sous le champs "classer sous "et qq champs calculés

    j'ai un champ "Saisons" qui est renseigné lors de la saisie de l'adhérent par le formulaire "détail de l'adhérent"

    j'aimerais donc avoir le paramétrage de ce champ sur un formulaire a part, la secrétaire choisi sa "saison" ou "toutes Saisons" dans la boite déroulante et a chaque fois ça enregistre le critère dans la requête et a chaque choix ca efface le critère et ça met le nouveau (s'il le faut j'ajouterais ds la table saison "toutes Saisons")

    si ce formulaire de choix voit le jours je ferais des menus pour ouvrir en conséquence les formulaires et Etats correspondants à la place du menu général que j'ai mis en place.

    j'ai mis un bouton dupliquer comme ça pas de problème pour ressaisir les champs des renouvellements qui se fera sur le choix "Toutes saison " en ne changeant que les champs nécessaire (changement de situation familiale, d'adresse de phone etc)

    est ce possible ? si oui qui peux me donner le bout de code ou les macros qui vont avec, je ne code pas du tout sniff sniff

    Actuellement je suis coincé car bcp de stats et d"états dépendent de cette requête paramétrée les stats ne se font que sur une saison précise et les demandes de subventions aussi

    elle fonctionne très bien mais il faut a chaque fois mettre ds la colonne Saisons de la requête les saisons type: 2014-2015 etc

    Alors on vas me dire à juste raison "mets [saisons]"ds la colonne et le tour est joué il suffira d'indiquer la saison désirée

    ben non, j'ai essayé sur la requête nickel j'ai une "liste adhérents" en formulaire mode feuille de données nickel aussi ça ouvre la liste est bien filtrée donc tout le reste aussi ( formulaires et etats)

    sur "liste adhérent" j'ai les codes adhérent qui renvoient bien sur les adhérents du formulaire "détail adhérents" MAIS ....

    Mais des que je vais sur mon formulaire principal "détail adhérent"la boite de dialogue me demande je ne sais combien de fois la saison !!!! ??? pourquoi ? ou si j'y vais par l'intermédiaire du formulaire "liste adhérents" a chaque fois que je veux changer d'adhérent il faut ressaisir je ne sais combien de fois la saison pas normal non ?!!!

    il y a ds ce formulaire "détail adhérent" un champ liste déroulante " Atteindre l'adhérent" synchro avec "liste adhérent" et en interne du formulaire "détail de l"adhérent" aide à la recherche adhérents ( 800 adhérent par an c'est mieux ) et cette liste déroulante est bien sur un bout de la requête "Adhérents (étendu) qui en solo fonctionne nickel tout comme ma "liste adhérents" mais pas mon formulaire sur ce paramétrage

    par contre si je mets directement ds le paramètre de la requête "2014-2015 " là tout est bien c'est rageant lol en fait si j'indique la saison par la boite de dialogue ça ne "synchronise pas" avec le formulaire "détail adhérent" mais ok avec le formulaire "liste des adhérents" convenablement filtré alors qu'en dur c'est parfaitement filtré partout je ne comprends pas et ça , ça m'énerve de ne pas comprendre

    cdlt

    bonne année
    Pat

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour.

    C'est un gag classique avec les applications Access montées comme des fichiers Excel où faire ce genre de changements est assez facile.

    La solution qu'on emploie dans Access c'est de créer un formulaire où les critères seront inscrits puis on se sert de ce formulaire pour paramétrer la requête.

    Pour le "tous", je te suggère le contournement suivant : Mettre à côté de la liste de sélection le message "Laisser à blanc pour Tous". Cela simplifie GRANDEMENT la gestion du "Tous".

    Pour ta requête il faut mettre dans la ligne critère Like iif(trim([Forms]![NomTonFormulaireParam]![NomTonChampParam])<>""; """" & [Forms]![NomTonFormulaireParam]![NomTonChampParam] & """"; """*""") (Access va te traduire cela en français).

    Si le formulaire NomTonFormulaireParam est ouvert au moment de l'exécution Access va récupérer la valeur du champ et l'utiliser comme critère. L'utilisation de """"*""" comme paramètre conditionné du like fait que si tu ne renseigne rien, Access sélectionne tous. (Voir mon contournement mentionné plus haut) sinon cela revient à faire un "=TaValeur". Si tu ne procèdes pas ainsi il faut faire du code ou des acrobaties pour gérer le tous.

    Pour une solution (vraiment) plus poussée tu peux regarder "formulaire de sélection" dans les tutoriaux du site. Cela te permet d'offrir une sélection avancée des données sans que l'utilisateur ait à modifier l'application.

    A+

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut Pour Marot R : un peu flou pour moi explications supplémentaires possible ?
    merci de ta réponse rapide mais je suis débutant en Access peux tu me faire un step by step là c'est un peu flou pour moi

    voila ce que j'ai compris je mets ta formule dans la colonne "Saisons" de ma requête mais je monte mon formulaire comment exactement ?

    je veux une liste ou la secrétaire choisit sa saison et ça paramètre ma requête avec son choix plus "toutes saisons" comme tu l'as indiqué on met rien
    donc moi je comprends ça: ds mon formulaire je mets un champs saison (cest d'ailleurs tout ce que j'ai besoin) mais sous quelle forme? liste déroulante ?!!

    merci à toi

    cdlt

    Patrick

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Désolé d'avoir été flou.

    Oui, tu a bien compris, ton formulaire n'a de ce que je comprends, n'a besoin que d'un champ saison.

    Pour son type, cela dépend de toi, si tu as une liste de référence quelque part qui te permet de savoir quelles sont les saisons disponibles, une liste déroulante est la méthode la plus simple.
    Elle permet de limiter les réponses possibles et de s'assurer qu'il y aura des données.
    Sinon un simple champ texte fera l'affaire. En fait Access utilise la valeur du champ quelque soit son type (date, nombre, case à cocher ....), du moment que le contrôle a une valeur Access est content.

    Note que ton formulaire paramètre n'a pas forcément besoin d'être un formulaire à part. Tu peux utiliser n'importe quel formulaire du moment qu'il est ouvert.
    Personnellement je me sers souvent de la partie Entête des formulaires pour y mettre mes paramètres. La partie détail affichant ensuite les données reliées.

    Donc étape par étape en supposant un formulaire spécifique :
    1. Créer le formulaire avec le champ pour la saisie (champ texte ou liste déroulante).
      Je vais supposer qu'il s'appelle frmParam et que le champ s'appelle Saison
    2. Ouvrir la requête actuelle spécifique d'une saison.
    3. Dans la colonne des saisons, sur la ligne des critères mettre :
      Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
      Like iif(trim([Forms]![frmParam]![Saison])<>""; """" & [Forms]![frmParam]![Saison] & """"; """*""")


    Les guillemets doublés ("") servent de délimiteur de chaîne de caractère, il se peut qu'on en ai pas besoin. Si tu n'obtiens pas de résultat essaye
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    Like iif(trim([Forms]![frmParam]![Saison])<>""; [Forms]![frmParam]![Saison]; "*")

    A+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut Marot R merci a toi
    Je suis hyper content de ta diligence je suis très en retard pour déliver cette base a l'association mais bon hein à l'impossible nul n'est tenu

    je résume pour voir si tout est bien compris

    je fais un formulaire avec un champ liste déroulant basé sur la requête "Adhérents (étendu) colonne "Saisons"

    je mets ta formule dans cette même colonne "saisons " de la requête "Adhérent (étendu)" et j'enlève les guillements si je n'ai pas de réponses en retour

    pour "toutes saison" on ne met rien comme choix

    voila le topo ,pour bien sûr que tu vois ce que vais en faire.

    Je fais ce formulaire qui donnera le choix de la saison (sans intervention humaine ds les critères de la requête c'est génial) sur un chmp liste déroulante basé sur la colonne requête de "adhérent étendu"


    et sur ce même formulaire je fais une sorte de menu pour ouvrir les formulaire de saisie et les Etats de statistiques car comme tu l'as compris c'est ce choix de saison ( 2014-2015, 2015-2016 etc....) qui détermine un grand nombre d'Etats et de formulaires presque tous en fait qui sont induits par cette requête

    ici en France il est 22h30 je pense au canada 6 h de moins non ? on a un copain qui cherche du boulot chez vous il est parti en sep ou oct il est à Montréal marrant non cette coïncidence avec nos cousins du bout du monde

    je m'y mets demain à la première heure (enfin l'heure des retraités lol vers 10 h ) et bien entendu je te tiens au courant de ta solution

    je te remercie infiniment pour ce coup de main le plus gros est fait je reviendrais vers toi pour une bricole si je ne trouve pas sur le net

    J'ai reformulé pour être sûr que je suis dans le coup

    Hasta la vista amigo

    Patrick

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut Marot R reponse sur ton aide
    j'ai été trop impatient j'ai essayé ta solution de suite ça fonctionne avec un petit bémol de détail que tu vas résoudre ultra vite j'en suis sûr

    1°) c'est ta formule sans les doubles guillemets qui fonctionne

    2°) j'ai préféré, pour éviter les erreurs de saisie la boite déroulante basée sur la colonne saison de la reqête mais elle me met plusieurs fois les saison (normal j'ai plusieurs adhérents pou la même saison) par exemple si j'ai 50 adhérents en saison 2015-2016 j'ai 50 fois 2015-2016 ds la boite déroulante, gênant et pas élégant

    j'ai essayé le regroupement mais pas possible il y a des champs qui empêchent ce regroupement

    il n'a a pas une cde "distinctRow" ou qq chose comme ça a mettre ds la formule?!! sinon nickel j'ai lu ça sur le web mais le mettre en place voici le lien:http://access.developpez.com/sql/

    3°) ça fonctionne si on saisie la saison à la main mais sujet à erreur !? je préférerais éviter

    je me répond à moi même et j'ai les 3 lettres qui me viennet à l'esprit et qui commence par C.. parce que là je suis bien C.. ben oui simple la solution j'ai simplement tiré la colonne concernée sur une liste déroulante et que cette colonne et regrouper le tour est joué pfff si si tu peux le dire ....lol

    voila tu sais tout ,tu m'as tiré une grosse épine du pied

    cdlt

    Pat

  7. #7
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 359
    Points : 23 829
    Points
    23 829
    Par défaut
    Bonjour on a toujours l'air un peu c... quand la solution a été trouvée si elle paraît simple mais on l'aurai peut-être jamais trouvée sans les étapes qu'on a faites.

    Si tu considères la discussion comme close, merci d'appuyer sur en bas de discussion.

    A+

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 159
    Points : 55
    Points
    55
    Par défaut un grand merci
    Citation Envoyé par marot_r Voir le message
    Bonjour on a toujours l'air un peu c... quand la solution a été trouvée si elle paraît simple mais on l'aurai peut-être jamais trouvée sans les étapes qu'on a faites.

    Si tu considères la discussion comme close, merci d'appuyer sur en bas de discussion.

    A+
    c'est pas faux lol

    un grand merci a toi encore quelques bricoles à faire et sûrement encore un appel au forum mais le plus gros est fait

    Encore bonne année

    oui ce sujet est clos je le passe en résolu

    bye bye

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment afficher des données Access sur Excel ??
    Par merlubreizh dans le forum Access
    Réponses: 9
    Dernier message: 14/09/2005, 14h38
  2. Comparer des Dates (Access, jdbc)
    Par babylone7 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 13/07/2005, 10h01
  3. Votre avis sur des morceaux de resumes
    Par Asarnil dans le forum C++
    Réponses: 5
    Dernier message: 03/01/2005, 15h22
  4. [VB.NET] Imprimer des états access
    Par bambou dans le forum Windows Forms
    Réponses: 6
    Dernier message: 25/07/2004, 16h52
  5. Réponses: 2
    Dernier message: 11/05/2004, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo