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 :

Formulaire de collecte paramètres dans un état


Sujet :

IHM

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 15
    Points : 4
    Points
    4
    Par défaut Formulaire de collecte paramètres dans un état
    Bonjour à tous,

    J’ai créé un état fondé sur une requête multi tables. J’ai paramétré cette requête et les critères sont saisis via un formulaire.
    Pour m’en sortir, (je ne suis pas un pro), j’ai appliqué les conseils de l’aide Microsoft dans la rubrique « créer un formulaire pour collecter les paramètres de l’état »

    Tout va bien dans la procédure jusqu’au point 13 de l’étape3.
    En effet, quand je crée la macro OK il m’est impossible de définir les arguments de l’action comme cela est décrit, je ne trouve pas dans la liste déroulante l’action DefinirValeur qui devrait me permettre de masquer le formulaire et de « lancer » l’état.

    Où ai-je bien pu me « planter » ?

    Merci de vos retours.

  2. #2
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 550
    Points
    24 550
    Par défaut
    Bonjour,
    Je ne connais pas ce tuto, peux-tu poster le lien éventuellement ?

    Sinon pour utiliser un état en fonction de paramètres saisis dans un formulaire c'est assez simple.

    1) créer le formulaire (je pense que c'est fait)
    2) créer l'état avec une source de données sans paramètres.
    3) dans le formulaire créer un bouton pour ouvrir l'état et sur l'événement Sur clic utiliser la commande suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "monreport", acViewPreview,,"conditions where"
    Où :
    monreport est le nom de l'état,
    acViewPreview est le mode aperçu avant impression (à remplacer par acviewnormal pour une impression directe.
    "conditions where" sont les conditions au format SQL WHERE.

    Voici un exemple de conditions :

    le champ Table1.ChampType doit être égal au choix de la liste listeType du formulaire. Ce paramètre est de format Texte.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Table1.ChampType=""" & me.listeType & """"
    le champ Table1.ChampAge doit être inférieur à la valeur choisie dans la liste Listetype. Ici c'est une valeur numérique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Table1.ChampAge<" & me.listeAge & ""
    Enfin les 2 ensemble :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Table1.ChampType=""" & me.listeType & """ AND Table1.ChampAge<" & me.listeAge & ""
    Le résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DoCmd.OpenReport "monreport", acViewPreview,,"Table1.ChampType=""" & me.listeType & """ AND Table1.ChampAge<" & me.listeAge & ""
    Pour cacher le formulaire il faut mettre cette instruction à la suite :

    Par contre il va rester ouvert jusqu'à sa fermeture ou à la fermeture de l'application. Donc soit tu le laisse ouvert et l'utilisateur le fermera soit tu décide qu'il n'est plus utile et tu le ferme après la commande d'ouverture de l'état, comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    docmd.close acform,me.name
    Cordialement,

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Bonjour et merci pour cette réponse rrrrrrapide,

    Pour l’aide, je l’ai trouvée dans l’aide d’Access (point d’interrogation bleu) et faisant une recherche « requête paramétrée ».
    La recherche t’emmène sur « Utiliser des paramètres dans les requêtes et les états » et là, tu trouves une rubrique « créer un formulaire pour collecter les paramètres de l’état ». (Je ne vois pas de lien que je pourrais te joindre ?)

    C’est effectivement de cette façon que je souhaiterais procéder car je ne suis vraiment pas à l’aise avec le VBA.

    Cordialement

  4. #4
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 550
    Points
    24 550
    Par défaut
    OK je n'avais compris que c'était dans l'aide ACCESS.

    Je viens de parcourir ce tuto, ça me parait un poil complexe.

    DéfinirValeur c'est à l'étape 12.

    Il s'agit de "DéfinirPropriété" et non de "DéfinirValeur"... Une erreur bien ennuyeuse.

    Laisser le premier argument vide pour faire référence au formulaire actif.

    Cordialement,

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Re bonjour,

    Merveilleux, comme tout parait simple… quand on sait.

    Bon, comme c’est bien parti, j’ai dans ce formulaire pour collecter les paramètres de la requête sous-jacente des listes déroulantes.
    Je souhaiterais que ces dites listes aient comme valeur par défaut « tous » et qu’ainsi, elles filtrent ou non les enregistrements correspondant. C'est-à-dire que si l’utilisateur ne sélectionne rien avec ces listes, l’état affichera tous les enregistrements car la requête aura des critères considérés comme « tous »

    Cordialement,

  6. #6
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 550
    Points
    24 550
    Par défaut
    Justement ceci est expliqué dans notre FAQ ! Elle n'est pas belle la vie ?!

    http://access.developpez.com/faq/?pa...l#AjoutTousLst

  7. #7
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2012
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Re Bonjour,

    Je n’ai pas dû exprimé clairement ce que je voulais.

    Ci-dessous extrait de la requête paramétrée,

    On voit que le champ Nom de la table ELEVES est « lié » au formulaire F_CRIT_CEMA par la liste déroulante cbxELEVE ; mais, si l’utilisateur ne choisit rien avec cette combo la requête ne me renvoie rien alors que je voudrais qu’elle me renvoie tous les enregistrements.
    Ai-je été plus explicite ??
    Cordialement,
    Images attachées Images attachées  

  8. #8
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Entrepreneur en solutions informatiques viables et fonctionnelles.
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2005
    Messages : 12 015
    Points : 24 550
    Points
    24 550
    Par défaut
    Au niveau de la technique d'ajout d'une entrée <Tous>, <All>, <Toutes>... c'est bien le lien que je t'ai donné.

    Donc démarrer par ça.

    Ensuite il te faut modifier la source de l'état avec des expressions Where (Où) de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Comme VraiFaux([forms]![formulaire3].[Liste]<>"<Tous>";[forms]![formulaire3].[Liste];"*")
    Plusieurs problèmes avec cette technique :
    • La première c'est qu'il n'y a aucune garantie que ça fonctionne avec tous les types de champs (texte et numérique ok)
    • Il est impossible d'utiliser d'autres opérateurs logique (on utilise déjà like ce qui pour du numérique est totalement hérétique).
    • Le plus gênant c'est qu'on pose un filtre là où il ne devrait pas y en avoir. En effet le <tous> ne devrait pas engendrer de filtre, ce que l'on fait avec un like *. Niveau perfo et complexité de la requête ça craint et ça peut engendrer des messages d'erreurs.


    Bref, je préfère de loin la première solution que je t'ai fourni vu l'utilisation du <Tous>.

    Cordialement,

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/06/2014, 09h57
  2. Tri paramétré dans un état
    Par star dans le forum IHM
    Réponses: 7
    Dernier message: 27/02/2013, 17h15
  3. [AC-2007] Comment envoyer un paramètre dans un état et l'afficher
    Par Wilfy dans le forum IHM
    Réponses: 1
    Dernier message: 12/04/2012, 12h55
  4. [VxiR2] Saisie automatique d'un paramètre dans un état
    Par saigon dans le forum Webi
    Réponses: 3
    Dernier message: 28/11/2011, 15h06
  5. Réponses: 0
    Dernier message: 30/10/2007, 15h45

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