Liste droulante
Résolu
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
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
-
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+ -
Tu peux faire un copier coller de ton code stp (en utilisant les balises de code basic) ?
A+ -
Contributeur Ambassadeurbonjour, à 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
-
-
@yg_beIl intervient au moment ou je rentre ma donnée. je selectionne ma valeur et le message apparait a ce moment
-
Contributeur Ambassadeur@cartman73240que te proposes le message d'erreur?
-
@yg_beTu 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
-
-
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
-
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+-
-
@cartman73240Il 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+ -
@RV71Sans oublier de modifier la relation dans la requête source de ton sous-formulaire. Au passage, tu peux éliminer les alias des champs...
-
@RV71Je désespère... ça ne marche pas... Je peux pleurer?
-
-
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+-
-
@cartman73240Pas la peine, gardes ton temps pour réviser le fonctionnement des sous-formulaires :)
A+ -
-
-
et comment on fait pour mettre resolue?