Liste droulante [Résolu]

Signaler
-
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
-
Bonjour,

Je ne sais pas trop comment exprimer mon problème mais je tente.
J'ai une liste deroulante comprenant un ID, Une designation, un prix unitaire.
Je souhaiterais pouvoir, dans un sous formulaire, les affecter à un champ spécifique.
Pour moi le code VBA associé serait
Private Sub ID_TARIF_AfterUpdate()
Me(DESIGNATION) = Me(ID_TARIF).columns(1)
Me(DESIGNATION) = Me(PRIX_UNITAIRE).columns(2)
End Sub
Pour autant j'ai un message d'erreur:
l'expression après maj entrée comme propriété d'evenement est à l'origine d'une erreur. l'objet ou la classe ne gere pas le jeu d'evenement.

Pouvez vous m'aider à traduire ce message svp?
Belle journée

Configuration: Windows / Chrome 85.0.4183.102

9 réponses

Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30
Bonjour,
utilises les balises de code (basic) pour poster ton extrait de code...

Private Sub ID_TARIF_AfterUpdate()
Me(DESIGNATION) = Me(ID_TARIF).columns(1)
Me(DESIGNATION) = Me(PRIX_UNITAIRE).columns(2)
End Sub


1/ Tu as mis 2 fois le controle designation
2/ Il manque les "."
3/ Il y a un "s" en trop à la fin de column
4/ Je ne comprends pas pourquoi tu fais prix_unitaire.colum(2) ? La zone de liste a changé de nom ??????

Ca devrait mieux fonctionner en faisant (en supposant que la zone de liste se nomme id_tarif) :
Private Sub ID_TARIF_AfterUpdate()
Me.DESIGNATION = Me.ID_TARIF.column(1)
Me.AUTRECONTROLE = Me.ID_TARIF.column(2)
End Sub


A+

Bonjour RV71,

Je te remercie de ta reponse mais j'ai toujours le même message d'erreur qui apparait.
Je te confirme que ma zone de liste se nomme bien ID_TARIF.
Je seche et cela fait depuis ce matin que je me galère. .. :(
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30
Tu peux faire un copier coller de ton code stp (en utilisant les balises de code basic) ?

A+

Je ne sais pas faire... desolé,

Private Sub ID_TARIF_AfterUpdate()
Me.DESIGNATION = Me.ID_TARIF.Column(1)
Me.AUTRECONTROLE = Me.ID_TARIF.Column(2)
End Sub

J'ai recopié ce que tu m'as donné. pour moi l'erreur vient d'autre chose que le code en lui même.
Messages postés
12613
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
701
bonjour, à quel moment me message d'erreur apparaît-il? as-tu partagé le texte exact du message?
j'ai l'impression qu'il n'est pas lié à ton code VBA.
que te proposes le message d'erreur?

le message d'erreur est le suivant :l'expression après mise à jour entrée comme paramètre de la propriété d'evenement est à l'origine de l'erreur l'objet ou la classe ne gere pas le jeu d'evenement
Messages postés
12613
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
701
à quel moment le message d'erreur apparaît-il?
que te proposes le message d'erreur?
>
Messages postés
12613
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020

Il intervient au moment ou je rentre ma donnée. je selectionne ma valeur et le message apparait a ce moment
Messages postés
12613
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020
701 > cartman73240
que te proposes le message d'erreur?
>
Messages postés
12613
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
14 octobre 2020

Tu veux dire, a part d'aller me faire f*****? lol
alors le resultat de l 'expression n'est pas le nom d'une macro, le nom d'une fonction definie par l'utilisateur ou event procedure
une erreur a peut etre ete commise lors de l'evaluation d'une fonction, d'un evenement ou d'une macro
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30
Tu ne peux pas faire un copier / coller ?

Le code que je t'ai donné comporte AUTRECONTROLE, et je doute que ce soit le nom de ton controle...

Aussi, il faudrait que tu donnes le contenu de la zone de texte (mode création de formulaire, ligne 'contenu').

Sans cela, difficile de pouvoir t'aider.

Au pire, mets ta base à disposition via un lien cjoint --> https://www.commentcamarche.net/faq/29493-utiliser-cjoint-pour-heberger-des-fichiers

A+

https://www.cjoint.com/c/JItpoLI1Nk8
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30
Dans la requête source de ton formulaire pourquoi mets tu des alias des champs ?
SELECT T_FACTURE.ID_FACTURE, T_FACTURE.DATE_D_INTERVENTION, T_FACTURE.ID_DATE_FACTURE AS T_FACTURE_ID_DATE_FACTURE, T_FACTURE.ID_TARIF, T_FACTURE.DESIGNATION, T_FACTURE.QUANTITE, T_FACTURE.PRIX_UNITAIRE, T_FACTURE.TOTAL_LIGNE, T_DATE_FACTURE.ID_DATE_FACTURE AS T_DATE_FACTURE_ID_DATE_FACTURE
FROM T_DATE_FACTURE INNER JOIN T_FACTURE ON T_DATE_FACTURE.[ID_DATE_FACTURE] = T_FACTURE.[ID_DATE_FACTURE];


Aussi, il y a un souci avec ton sous-formulaire sf_facture, tout du moins avec la requête source.
Le message d'erreur est trompeur, en effet, il s'agit non pas d'un souci sur le code lui-même mais bien de la structure des champs père/fils des forms/sous-form.

A+

De ton point de vue, comment puis regler cela?
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30 > cartman73240
Il faut reprendre les bases du fonctionnement des sous-formulaires :)

Dans ton formulaire SF_DATE_FACTURE, "relie" le sous-formulaire SF_FACTURE par les champs père / fils ID_DATE_FACTURE. (mode création, propriétés du sous-formulaire SF_FACTURE, champs pères et champs fils)

A+
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30 >
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020

Sans oublier de modifier la relation dans la requête source de ton sous-formulaire. Au passage, tu peux éliminer les alias des champs...
>
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020

Je désespère... ça ne marche pas... Je peux pleurer?
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30
Pas la peine de pleurer, on est samedi.

Tiens je t'ai remis cela d'aplomb, par contre, essaie de comprendre le fonctionnement des champs père/fils...
Pour rappel : http://www.info-3000.com/access/cours/lecon58/lecon58.php

Voici corrigé pour cette partie, je n'ai pas regardé le reste.

https://www.cjoint.com/c/JItqyqfBlNU

A+

Puis dresser un autel en ton honneur? :)
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30 > cartman73240
Pas la peine, gardes ton temps pour réviser le fonctionnement des sous-formulaires :)

A+
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30 >
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020

Et aussi pour mettre la question en "résolue" du coup.

A+

et comment on fait pour mettre resolue?
Messages postés
442
Date d'inscription
mardi 14 avril 2020
Statut
Membre
Dernière intervention
13 octobre 2020
30
Il y a un bouton en haut de mémoire :)