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

  1. #1
    Futur Membre du Club
    Création d'une base : Pb de liste déroulante sur formulaire
    Bonjour à tous,

    J'ai créé une base de suivi avec différentes tables et formulaires, sur un l'un des formulaires, j'ai une liste déroulante qui me permet de faire défiler mes différents enregistrements (issus d'une table) et de les mettre à jour le cas échéant. Cette liste marchait parfaitement, jusqu'à ce qu'elle tombe "malade" (j'espère que ce n'est pas la covid19). Voici le message d'erreur de macro que la base m'affiche dès que je veux changer d'enregistrement et bien entendu les champs n'évoluent pas.



    Au niveau de la "macro incorporée" de ma liste, j'ai utilisé "RechercherEnregistrement" et dans "Condition Where" de la macro j'ai essayé les 2 bouts de code de l'image (dont l'un est en rouge). Et j'obtiens donc ce message d'erreur.

    Toujours au niveau de ma liste, j'ai laissé le champ "Source contrôle" vide et dans "contenu", j'ai mis 2 champs "IdA" et "N°enregistrement" de la table du formulaire.

    Je ne sais plus trop quoi faire, vous avez une idée d'où vient le problème ?

    Merci par avance pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    J'avoue ne pas comprendre la syntaxe (en rouge) que tu as utilisé.

    Si tu souhaites rajouter des séparateurs string dans ta syntaxe ( " ou ' ) tu peux écrire :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ="[IdA]= """ & str(nz([screen]....)) & """"


    ou encore

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    ="[IdA]= '" & str(nz([screen]....)) & "'"


    Ceci est une réponse purement syntaxique, au niveau fonctionnel, n'utilisant jamais de macro, je ne peux pas te garantir que ce que tu fais fonctionne.

    A noter qu'un Id c'est normalement toujours un numérique, donc les séparateurs ne doivent pas être utilisés.

    Cordialement,
    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
    Je te remercie pour ta réponse. J'ai essayé les 2 codes mais ça ne fonctionne pas malheureusement, les champs n'évoluent pas quand je change la valeur de ma liste. En gros, je voudrais savoir quoi mettre dans ma macro, je fais peut-être fausse route, n'étant pas un spécialiste.



    Je voudrais juste que les champs de mon formulaire évoluent en fonction de la valeur de la liste. Sachant que les valeurs de la liste sont dans une colonne de ma table et que les valeurs des champs qui doivent évoluer en fonction de la liste sont dans la même table. C'est simple mais je dois me compliquer la vie pour rien, je comprends pas.

    Dans Propriété/Données/Contenu de ma liste, j'ai mis le champ "Id" ainsi que le champ nécessaire pour constituer ma liste de ma table.
    Et dans Propriété/Événement de ma liste, j'ai mis la macro incorporée dans "Après MAJ".

    Help me please.

  4. #4
    Rédacteur/Modérateur

    Bonjour,

    Je viens de faire un test, il n'y a rien à modifier dans ce que génère MS ACCESS.



    Vérifie que tu n'as rien de plus la zone "Condition Where" en cliquant sur la baguette magique à droite de la zone.

    Il t'ouvrira le générateur d'expression.



    Tu dois avoir 1 ligne et rien d'autre.

    Cordialement,
    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
    Merci pour la réponse.

    J'ai fait un test, j'ai donc recréé ma liste déroulante et là ça refonctionne correctement avec le code comme tu l'as noté dans la zone "Condition Where", c'est même automatique.

    J'ai testé le fonctionnement, ça marche nickel. Je sauvegarde, je ferme ma base.

    Je ré-ouvre ma base, je clique sur mon bouton d'accès à mon formulaire et là 1er message d'erreur:
    "Le paramètre de la propriété ChampPères est à l'origine de l'erreur suivante : "l'objet ou la classe ne gère pas le jeu d'évènements".

    Je clique sur "OK" et j'arrive sur mon formulaire. Je choisis une valeur au hasard dans ma liste et la 2ème message d'erreur : "l'objet ou la classe ne gère pas le jeu d'évènement"

    Je clique à nouveau sur "OK" et ça m'ouvre la fenêtre "Pas à Pas" que j'avais posté un peu plus haut.

    Je ne comprends pas pourquoi ça fonctionne et quand je quitte et que je relance ça ne marche plus. C'est à devenir fou.

    Est-ce que c'est pas un problème de relation(s) ?

  6. #6
    Rédacteur/Modérateur

    Bonjour,

    ""Le paramètre de la propriété ChampPères est à l'origine de l'erreur suivante : "l'objet ou la classe ne gère pas le jeu d'évènements"."

    Ce message est la cause du problème de la macro.
    Tant que ce problème n'est pas réglé le reste ne fonctionnera pas.

    Supprime le contenu de la propriété ChampsPère et ChampsFils du container de ton sous-formulaire.

    Cordialement,
    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

  7. #7
    Futur Membre du Club
    J'ai supprimé le contenu de la propriété ChampsPère et ChampsFils du container de ton sous-formulaire. Et donc je n'ai plus le message, à l'ouverture du formulaire :
    "Le paramètre de la propriété ChampPères est à l'origine de l'erreur suivante : "l'objet ou la classe ne gère pas le jeu d'évènements".

    Mais j'ai toujours mon soucis de liste déroulante : "l'objet ou la classe ne gère pas le jeu d'évènement"

  8. #8
    Rédacteur/Modérateur

    peux-tu poster le fichier ?
    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

  9. #9
    Futur Membre du Club
    Un grand merci pour ton aide mais pour l'instant, ça ne sera pas nécessaire, j'ai réussi à refaire fonctionner mon formulaire avec la liste. A priori, le soucis venait de la "source" de mon formulaire. Bizarrement, j'avais dû créer une requête depuis la source du formulaire et dans la propriété "source" du formulaire, ça affichait : "SELECT T_100.* FROM T_100;"

    Dans "source", j'ai juste re-sélectionné ma table pour n'avoir que "T_100" et j'ai recréé ma liste. Et miracle ça fonctionne. J'ai pas tout compris.


    Par contre, il va falloir que je regarde mais depuis ce formulaire "A" j'appelle un autre formulaire "B". Le formulaire "B" est associé à une autre table "T_200" et me permet de sélectionner des personnes à lier au formulaire "A". Le formulaire "A" dispose d'un numéro d'enregistrement spécifique, qui se reporte sur le formulaire "B" et qui me permet de lier les personnes au n° d'enregistrement.

    Le n° d'enregistrement du formulaire "A" est unique (clé primaire) et le formulaire "B" me permet de créer plusieurs lignes dans la table "T_200". Ensuite, je fais la relation entre mes 2 tables via le n° d'enregistrement.

    J'ai 2 fois cette combinaison (formulaires+tables) pour traiter des données différentes et indépendantes. Pour l'une des combinaisons, ça fonctionne très bien et pour l'autre, le formulaire "B" n'arrive pas à rapatrier correctement le n° d'enregistrement du formulaire "A". Là aussi je dois passer à côté de quelque chose. Pour l'instant en comparant les 2 combinaisons, j'ai pas trouvé l'erreur.

  10. #10
    Futur Membre du Club
    Juste pour compléter mon post précédent, j'ai réglé le 2ème soucis, qui provenait de la "source de contrôle" d'une "zone de texte". Tout est revenu à la normal.

###raw>template_hook.ano_emploi###