Lier cases à cocher à un champ de sous formulaire

Résolu/Fermé
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 - 8 août 2016 à 16:19
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 - 9 août 2016 à 10:28
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

meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 3
8 août 2016 à 17:04
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
Salut Meeks !

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

A+
0
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 3
8 août 2016 à 21:52
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
Utilisateur anonyme
8 août 2016 à 21:57
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
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 3
8 août 2016 à 22:10
Ok bien vu, merci pour toutes ces précisions !

Je teste ça dès demain.
0
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
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 3
9 août 2016 à 09:29
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
meeks Messages postés 61 Date d'inscription mardi 19 juillet 2016 Statut Membre Dernière intervention 20 septembre 2017 3
9 août 2016 à 10:28
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