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

Configuration: Windows / Chrome 85.0.4183.102

9 réponses

  1. 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+
    0
    1. 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. .. :(
      0
  2. Tu peux faire un copier coller de ton code stp (en utilisant les balises de code basic) ?

    A+
    0
    1. 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.
      0
  3. Contributeur Ambassadeur
    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?
    0
    1. 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
      0
      1. Contributeur Ambassadeur
        à quel moment le message d'erreur apparaît-il?
        que te proposes le message d'erreur?
        0
      2. @yg_beIl intervient au moment ou je rentre ma donnée. je selectionne ma valeur et le message apparait a ce moment
        0
      3. Contributeur Ambassadeur
        @cartman73240que te proposes le message d'erreur?
        0
      4. @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
        0
    2. https://www.cjoint.com/c/JItpoLI1Nk8
      0
      1. 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+
        0
        1. De ton point de vue, comment puis regler cela?
          0
        2. @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+
          0
        3. @RV71Sans oublier de modifier la relation dans la requête source de ton sous-formulaire. Au passage, tu peux éliminer les alias des champs...
          0
        4. @RV71Je désespère... ça ne marche pas... Je peux pleurer?
          0
      2. 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+
        0
        1. Puis dresser un autel en ton honneur? :)
          0
        2. @cartman73240Pas la peine, gardes ton temps pour réviser le fonctionnement des sous-formulaires :)

          A+
          0
        3. @RV71Et aussi pour mettre la question en "résolue" du coup.

          A+
          0
      3. et comment on fait pour mettre resolue?
        0
        1. Il y a un bouton en haut de mémoire :)
          0