Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

1 seul type dans un # d'inventaire (case à cocher)

1 réponse
Avatar
Macgiver
Bonjour, j'ai un sous-formulaire qui me donne comme info un # de sac ainsi
que la sorte d'épice de ce sac, dans mon formulaire parent, j'ai un #
d'inventaire qui est donnée par l'usager et qui ne se répète jamais, dans
lequel je peux donc cocher les sacs pour ce # d'inventaire.On comprend ici
que le lien entre les 2 formulaires est le # d'inventaire. Ce que je veux
faire c'est que si l'usager, par innatention, coche des sacs qui n'ont pas
la même épices, un message s'affiche pour l'avertir que c'est impossible de
mélanger des sac d'épice différents dans un même # d'inventaire.

Voici mon formulaire:

#inventaire
105

sacs epices case à cocher
1 thym x
2 thym x
3 canelle
4 poivre
5 canelle

pouvez-vous me donner un coup de main sur ce problème?

merci beaucoup

1 réponse

Avatar
3stone
Salut,

Macgiver wrote:
Bonjour, j'ai un sous-formulaire qui me donne comme info un # de sac
ainsi que la sorte d'épice de ce sac, dans mon formulaire parent,
j'ai un # d'inventaire qui est donnée par l'usager et qui ne se
répète jamais, dans lequel je peux donc cocher les sacs pour ce #
d'inventaire.On comprend ici que le lien entre les 2 formulaires est
le # d'inventaire. Ce que je veux faire c'est que si l'usager, par
innatention, coche des sacs qui n'ont pas la même épices, un message
s'affiche pour l'avertir que c'est impossible de mélanger des sac
d'épice différents dans un même # d'inventaire.

Voici mon formulaire:

#inventaire
105

sacs epices case à cocher
1 thym x
2 thym x
3 canelle
4 poivre
5 canelle

pouvez-vous me donner un coup de main sur ce problème?




Si le champ de la case à cocher se nomme "CaC" et le
champ épices se nomme "Epices" :

Tu places sur "Avant mise à jour" le code suivant en adaptant
les noms là ou j'ai placé un "(<= adapter)"


Private Sub CaC_BeforeUpdate(Cancel As Integer)
Dim iRecord As Integer
Dim iLoop As Integer

Dim rs As DAO.Recordset
Set rs = Me.RecordsetClone

If rs.RecordCount > 0 Then
iRecord = rs.RecordCount
rs.MoveFirst
For iLoop = 1 To iRecord
If rs!CaC = True Then '(<= adapter)
If Me!Epices <> rs!Epices Then '(<= adapter)
MsgBox "Pas d'épices différentes!"
Cancel = True
Me.Undo
Exit For
End If
End If
rs.MoveNext
Next
End If
End Sub


On peut faire plus court, mais moins lisible ;-)

--
A+
Pierre (3stone) Access MVP
Perso: http://www.3stone.be/
MPFA: http://www.mpfa.info/ (infos générales)