Lier cases à cocher à un champ de sous formulaire
Résolu
meeks
Messages postés
61
Date d'inscription
Statut
Membre
Dernière intervention
-
meeks Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
meeks Messages postés 61 Date d'inscription Statut Membre Dernière intervention -
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.

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.
A voir également:
- Lier cases à cocher à un champ de sous formulaire
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Case à cocher excel - Forum MacOS
5 réponses
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...?
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...?
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 !
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 !
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+
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+
Ok bien vu, merci pour toutes ces précisions !
Je teste ça dès demain.
Je teste ça dès demain.
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.
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.
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+
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+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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+.
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+.
pour faire référence au champ de ton sous-formulaire, il te faut :
Forms!commande![ligne_cde].Form![cmbArticle]
A+