Lier cases à cocher à un champ de sous formulaire

Résolu
meeks Messages postés 61 Statut Membre -  
meeks Messages postés 61 Statut Membre -
Bonjour,



J'ai un sous formulaire (ligne_cde) lié à un formulaire (commande).

Dans ce formulaire, j'ai 2 cases à cocher (article et prestation), je voudrais que lorsque je coche la case prestation, le champ code article du sous formulaire se fige (se grise...) et que je ne puisse remplir que le champ désignation et à l'inverse lorsque je coche la case article la liste déroulante code article du sous formulaire reste tel quelle...

Merci d'avance.

5 réponses

  1. meeks Messages postés 61 Statut Membre 3
     
    Pour être plus précis, est ce que la source contrôle de la case à cocher doit être la liste déroulante au-quelle elle est rattachée...? (je sais pas si c'est clair...).

    et j'ai bien essayé le code suivant sur click :
    if chkArticle=true then
    me.cmbArticle.visible=true
    else
    me.cmbArticle.visible=false
    end if

    J'ai aussi remplacé visible par enable = tjs pareil

    Peut être que le problème est que c'est relié à une zone de liste déroulante...?
    0
    1. Utilisateur anonyme
       
      Salut Meeks !

      pour faire référence au champ de ton sous-formulaire, il te faut :
      Forms!commande![ligne_cde].Form![cmbArticle]

      A+
      0
  2. meeks Messages postés 61 Statut Membre 3
     
    Salut,

    Pour être sûr d'avoir bien compris, ce que tu m'as dit de faire c'est à mettre dans la source contrôle de la checkbox...?

    Et je garde le code if alors...?

    Merci HDU !! Again !
    0
    1. Utilisateur anonyme
       
      No Meeks,

      sur le code on_click de la case à à cocher chkArticle, mets :
      if chkArticle=true then
      Forms!commande![ligne_cde].Form![cmbArticle].visible = true
      else
      Forms!commande![ligne_cde].Form![cmbArticle].visible = false
      end if

      Et pareil, en adaptant pour la case à cocher intervention

      Par contre, en utilisant des cases à cocher, tu pourras sélectionner les 2, et là bug assuré... Utilises donc des cases option.

      A+
      0
  3. meeks Messages postés 61 Statut Membre 3
     
    Ok bien vu, merci pour toutes ces précisions !

    Je teste ça dès demain.
    0
    1. Utilisateur anonyme
       
      Re,

      au fait, pourquoi utiliser aussi une case "prestation" ?

      Ne mets qu'une case à cocher "article", si elle est cochée, c'est un article, sinon, ssi tu n'as que 2 possibilités (penses aussi à la suite, au futur de ta base), c'est une prestation.

      Comme cela, tu te fais moins chier à gérer les 2 cases.

      Mais cela dépend aussi la valeur que tu souhaites enregistrer dans la table 'ligne_commande', si c'est un article, et si c'est une prestation...

      Tu me suis ??

      A+ et tiens nous au jus.
      0
  4. meeks Messages postés 61 Statut Membre 3
     
    Re,

    On va dire que c'est pour plus de lisibilité...même si effectivement il n'y a que 2 possibilités.

    "Mais cela dépend aussi la valeur que tu souhaites enregistrer dans la table 'ligne_commande', si c'est un article, et si c'est une prestation...", par contre ça...ah pas compris ! lol

    Je teste de suite.

    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. meeks Messages postés 61 Statut Membre 3
     
    Bon, j'ai testé comme tu m'as dis,ça marchait pas (ou j'ai mal fait c'est selon !)...mais j'ai réussi à trouver autre chose.

    Pour ceux que ça intéresse, voilà le code :

    Private Sub chkArticle_AfterUpdate()
    If Me.ChkArticle = True Then
    Me.chkPrestation = False
    Else
    Me.chkPrestation = True
    End If
    Call Form_Current
    End Sub

    Private Sub chkDesignation_AfterUpdate()
    If Me.ChkDesignation = True Then
    Me.ChkArticle = False
    Else
    Me.ChkArticle = True
    End If
    Call Form_Current
    End Sub

    Private Sub Form_Current()
    If Me.ChkArticle = True Then
    Me.SF_LigneCde.Form!cmbArticle.Enabled = True
    Me.SF_LigneCde.Form!cmbArticle.SetFocus
    Me.SF_LigneCde.Form!txtDesignation.Enabled = False
    Else
    Me.SF_LigneCde.Form!txtDesignation.Enabled = True
    Me.SF_LigneCde.Form!txtDesignation.SetFocus
    Me.SF_LigneCde.Form!cmbArticle.Enabled = False
    End If
    End Sub

    Merci à toi HDU.

    A+.
    0