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] Contrôle cohérence des choix dans deux listes déroulantes liées


Sujet :

IHM

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut [Formulaire] Contrôle cohérence des choix dans deux listes déroulantes liées
    Bonjour,

    je débute dans ACCESS et le code était, pour moi, une langue étrangère, mais grace à votre site, je progresse petit à petit. Là, je n'ai pas trouvé de réponse à ma question.

    Dans un formulaire, j'ai deux champs que l'on renseigne par le biais de listes déroulantes et qui sont dépendants. C'est à dire, pour reprendre un exemple souvent utilisé : j'ai un champ Pays et un champ Ville. La sélection effectuée dans la liste Pays modifie la liste déroulante pour le champ Ville. (Merci pour les codes d'ailleurs! )
    Mon souhait (qui s'avère être un problème pour moi!), c'est que lorsqu'on passe à l'enregistrement suivant, ACCESS vérifie que les choix effectués dans les listes sont bien cohérents (que l'on ne puisse pas enregistrer Ville : Bordeaux et Pays : Royaume-Uni). En effet, j'ai testé et si on revient sur notre première sélection du champ pays et qu'on passe à l'enregistrement suivant, sans revoir le champ ville (on n'est pas à l'abri d'une distraction passagère!!!), on se retrouve avec un enregistrment incohérent dans la table, sans message d'erreur. J'imagine bien que c'est à moi de le mettre au point ce message, mais je ne sais pas comment faire!!!

    Merci d'avance de votre aide
    Maraing

  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 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Bonjour et merci.

    Fait ton controle sur l'événement Sur Activation, il se produit à chaque changement d'enregistrement (donc également à l'ouverture... en tenir compte lors du test.)

    Pour Bordeaux et Royaume-Uni il y a quelques siècle cela n'aurait pas posé de problème.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    merci de la réponse, je sais maintenant où le placer.
    Le problème, c'est que je ne sais pas comment énoncer le test...

    Bordeaux au Royaume-Uni...... horrible!!!

  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 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Etant donné que :

    Zl contient une colonne ville et une colonne pays faire le test suivant.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if me.champpays <> me.zlVille.column(1) then 'pas bon
    zlVille.column(1) est la 2ème colonne de la zone liste ville.

    Bordeaux était territoire Anglais à cause d'un mariage... à ces femmes !
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Je vais faire comme si je navais pas vu la remarque sur les femmes !!!

    Si je comprends bien cela veut dire qu'il faut que je rajoute la ville en deuxième colonne de la liste pays. On ne peut pas faire référence à la liste de choix "ville" sans faire cette deuxième colonne?
    Autre question le signe < > cela signifie "différent" ou "ne correspond pas"?


  6. #6
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    oups, j'ai pas bien lu
    c'est dans la liste Ville qu'il il y une deuxième colonne...

    J'ai essayé, mais cela ne fonctionne pas. Est-ce que cela pourrait venir du moyen de sélection pour la liste ville
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ville FROM table WHERE (((table.pays) = forms!nom du formulaire!pays));
    Il faudrait peut-être que je rajoute dans la liste déroulante ville une colonne, contenant le pays que je masque.

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Ca y est ça marche apparemment, j'ai donc rajouté une colonne contenant le pays dans la liste de choix du champ ville (mais en deuxième position pour que ce soit bien la ville qui soit sélectionnée) et j'ai écrit le code que tu m'avais suggéré.

    Merci encore.

  8. #8
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Ben non en fait ça ne marche pas ...
    il ne fait pas le test apparemment ou en tout cas il ne teste pas ce que je voudrais... Je vais continuer à chercher...

    Je voulais écrire "Que feriez-vous sans les femmes?" mais j'ai vu toute une liste de choses que vous pourriez écrire et je me suis dit qu'il serait plus sage de ne pas le mettre!

  9. #9
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Je te propose cette solution :

    1 table tbl_geo contenant
    Ville;Pays

    Dans le formulaire

    un zl ville et une zl pays.
    apparement si on choisi 1 ville le pays doit automatiquement correspondre par le table tbl_geo.

    la 1ere zl : zl_ville contient la requete suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select ville, pays From tbl_geo;
    Sur l'événement Après MAJ de la zl_ville placer le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    me.zl_pays = me.zl_ville.column(1)
    Dans le cas ou un utilisateur modifie la zl_pays.
    sur l'événement Sur activation mettre ce code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if me.zl_pays <> me.zl_ville.column(1) then msgbox "attention le pays et la ville ne correspondent pas"
    Autre solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if me.zl_pays <> dlookup("pays","tbl_geo","ville=""" & me.zl_ville & """") then msgbox "attention le pays...."
    avec cette méthode la correspondance est faite à partir d'une recherche dans la table (fonction Dlookup).

    Concernant bordeaux et l'angleterre ; au XIIIe siècle les femmes n'avaient pas beaucoup la parole donc c'est plutot son père qui est en cause... ha l'unisexité des forums !
    Je voulais écrire "Que feriez-vous sans les femmes?" mais j'ai vu toute une liste de choses que vous pourriez écrire et je me suis dit qu'il serait plus sage de ne pas le mettre!
    je ne suis ni sexiste ni myso et sans les femmes... ben je serais bien malheureux. Mais est-ce que je le saurais ?! Ouuuu question métaphysique tout ça.
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  10. #10
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bonjour,

    ça ne marche pas, j'ai essayé pas mal de modif et ça ne marche tjs pas... Je me suis demandé si cela pouvait venir du fait que c'était dans un sous-formulaire, mais j'ai essayé sur d'autres champs (deux listes déroulantes liées elles aussi) d'un formulaire principal et ça n'a pas fonctionné. Tant pis, je laisse tomber, je mettrai un message d'avertissement aux utilisateurs.

    Merci pour le temps que tu as bien voulu me consacrer.
    J'ai une petite question au passage : est-ce qu'il y a un tutoriel qui explique tous les événements (afterUpdate, BeforeUpdate,...) ?



    Désolée pour la réponse un peu virulente
    Je vais faire comme si je navais pas vu la remarque sur les femmes !!!
    . Je ne suis pas une habituée des forums et j'aurais voulu un smiley qui tire la langue en rigolant et pas qui se fache tout rouge comme celui que j'ai trouvé !!!

    sans les femmes... ben je serais bien malheureux. Mais est-ce que je le saurais ?!
    Bien sûr que tu le saurais, ça ne fait aucun doute, il y aurait comme un vide inexplicable en toi!!!!

  11. #11
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Citation Envoyé par maraing
    Bonjour,

    ça ne marche pas, j'ai essayé pas mal de modif et ça ne marche tjs pas... Je me suis demandé si cela pouvait venir du fait que c'était dans un sous-formulaire, mais j'ai essayé sur d'autres champs (deux listes déroulantes liées elles aussi) d'un formulaire principal et ça n'a pas fonctionné. Tant pis, je laisse tomber, je mettrai un message d'avertissement aux utilisateurs.
    Tu peux peut-être poster le code que tu as mis en place ? Je regarderais ce qui peut poser problème.

    Merci pour le temps que tu as bien voulu me consacrer.
    J'ai une petite question au passage : est-ce qu'il y a un tutoriel qui explique tous les événements (afterUpdate, BeforeUpdate,...) ?
    plusieurs pistes :
    1) lorsque que ton curseur est dans la propriété tu as la signification dans la barre d'état en bas.
    2) la touche F1 quand tu es sur un événement (fenêtre propriété).
    3) une application opensource que tu peux télécharger sur mon espace perso (chasseur d'événement)
    4) le MSDN chez microsoft, il y a un article qui traite des événements et de leur enchainement.

    Avec toutes ces infos tu devrais rapidement être au point sur le sujet.


    Désolée pour la réponse un peu virulente . Je ne suis pas une habituée des forums et j'aurais voulu un smiley qui tire la langue en rigolant et pas qui se fache tout rouge comme celui que j'ai trouvé !!!
    Je ne l'ai surtout pas mal pris...

    Bien sûr que tu le saurais, ça ne fait aucun doute, il y aurait comme un vide inexplicable en toi!!!!
    mais s'il les femmes n'avaient jamais existé... ben pas possible comment les hommes existerais ? la nature aurait surement prévu qq chose (comme les escargots)... ouuuu là là j'arrête je préfére un problème ACCESS insoluble
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  12. #12
    Rédacteur/Modérateur
    Avatar de loufab
    Homme Profil pro
    Entrepreneur en solutions informatiques viables et fonctionnelles.
    Inscrit en
    Avril 2005
    Messages
    12 014
    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 014
    Points : 24 567
    Points
    24 567
    Par défaut
    Citation Envoyé par loufab
    (comme les escargots)...
    Ou les plantes hermaphrodites...
    Détecter les modifications formulaire Cloud storage et ACCESS
    Classe MELA(CRUD) Opérateur IN et zone de liste Opérateur LIKE
    Visitez mon Blog
    Les questions techniques par MP ne sont pas lues et je ne pratique pas la bactériomancie

  13. #13
    Futur Membre du Club
    Inscrit en
    Janvier 2007
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Je te remercie de la proposition (d'envoyer le code), mais je vais vraiment laisser tomber, j'ai d'autres choses plus importantes à régler, pour lesquelles j'aurais, j'en suis convaincue, beaucoup d'autres questions à poser (je dois réussir à mettre ma base sur un serveur MySQL avec ACCESS comme interface et les premiers essais ont déjà révélé des problèmes...)

    Merci pour les pistes pour comprendre les "événements".

    En ce qui concerne dame nature et l'évolution, je dirais plutôt les bactéries ou encore les virus parce que chez les escargots comme chez les plantes hermaphrodites, les deux sexes sont présents... Je suis nulle en code, mais j'ai une formation de biologiste alors là je me sens plus dans mon élément!!!! Je suis plus à l'aise sur une prise de tête autour de la question de la poule et de l'oeuf que du code, qui reste très obscur pour moi.

Discussions similaires

  1. Réponses: 1
    Dernier message: 15/12/2013, 21h38
  2. Réponses: 2
    Dernier message: 05/01/2011, 09h34
  3. Réponses: 3
    Dernier message: 02/11/2009, 08h31
  4. Rafraichir un formulaire en fonction d'un choix dans une liste déroulante
    Par talondachil dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/01/2008, 23h17
  5. [FORMULAIRE] affichage selon le choix dans une liste déroulante.
    Par gailup dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 25/06/2006, 14h58

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