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   -
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   Statut Membre Dernière intervention   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
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
meeks Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   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
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
meeks Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   3
 
Ok bien vu, merci pour toutes ces précisions !

Je teste ça dès demain.
0
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
meeks Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   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

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

Posez votre question
meeks Messages postés 61 Date d'inscription   Statut Membre Dernière intervention   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