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

Vérifer si des contrôles d'un sous-formulaires ont bien été remplis avant fermeture du formulaire principal

2 réponses
Avatar
Bear76
Bonjour à la communauté,

J'utilise un Formulaire/Sous-formulaire.
Avant de refermer le formulaire en cour, je dois m'assurer qu'un champ
de mon sous-formulaire pouvant forcément comprendre plusieurs
enregistrements, ne soit pas vide. Et tant que ce champ reste vide
quelque soit la ligne d'enregistrement de mon sous-formulaire, je ne
peux refermer mon formulaire.

Donc sur un évènement sur_click() de mon formulaire principal, j'ai
inséré la procédure suivante, mais j'ai un message qui s'affiche
"Incompatibilité de type". De préciser que ce champ est de type réel
simple.

Private Sub CLOSE_Click()
On Error GoTo Err_CLOSE_Click

Dim MonSForm As Form
Dim MonSCtrl As Control

Set MonSForm = Forms![NomDeMonForm]![NomDeMonSForm]
Set MonSCtrl = [NomDuChampDuSForm]

For Each MonSCtrl In MonSForm
If TypeOf MonSCtrl Is TextBox Then
If MonSCtrl.Value = "" Or IsNull(MonSCtrl.Value) Then
MsgBox "Veuillez saisir vos quantités", vbOKOnly +
vbExclamation, "Sélection"
MonSCtrl.SetFocus
Exit Sub
End If
End If
Next MonSCtrl
Exit_CLOSE_Click:
Exit Sub
Err_CLOSE_Click:
MsgBox Err.Description
Resume Exit_CLOSE_Click
End Sub

Si quelqu'un avait une idée.
Merci d'avance

2 réponses

Avatar
C. ERNST
Set MonSForm = Forms![NomDeMonForm]![NomDeMonSForm] est erronné !
Faire :
Set MonSForm = Forms![NomDeMonForm]![NomDeMonSForm].form

Set MonSCtrl = [NomDuChampDuSForm] est erronné !
Faire
Set MonSCtrl = Forms![NomDeMonForm]![NomDeMonSForm].form![NomDuChampDuSForm]
ou
Set MonSCtrl = MonSForm![NomDuChampDuSForm]

sachant que [NomDeMonSForm] doit être le nom du CONTROLE qui continet le
sous-foumulaire


"Bear76" a écrit dans le message de news:

Bonjour à la communauté,

J'utilise un Formulaire/Sous-formulaire.
Avant de refermer le formulaire en cour, je dois m'assurer qu'un champ de
mon sous-formulaire pouvant forcément comprendre plusieurs
enregistrements, ne soit pas vide. Et tant que ce champ reste vide quelque
soit la ligne d'enregistrement de mon sous-formulaire, je ne peux refermer
mon formulaire.

Donc sur un évènement sur_click() de mon formulaire principal, j'ai inséré
la procédure suivante, mais j'ai un message qui s'affiche "Incompatibilité
de type". De préciser que ce champ est de type réel simple.

Private Sub CLOSE_Click()
On Error GoTo Err_CLOSE_Click

Dim MonSForm As Form
Dim MonSCtrl As Control

Set MonSForm = Forms![NomDeMonForm]![NomDeMonSForm]
Set MonSCtrl = [NomDuChampDuSForm]

For Each MonSCtrl In MonSForm
If TypeOf MonSCtrl Is TextBox Then
If MonSCtrl.Value = "" Or IsNull(MonSCtrl.Value) Then
MsgBox "Veuillez saisir vos quantités", vbOKOnly +
vbExclamation, "Sélection"
MonSCtrl.SetFocus
Exit Sub
End If
End If
Next MonSCtrl
Exit_CLOSE_Click:
Exit Sub
Err_CLOSE_Click:
MsgBox Err.Description
Resume Exit_CLOSE_Click
End Sub

Si quelqu'un avait une idée.
Merci d'avance




Avatar
Bear76
C. ERNST a écrit :
Set MonSForm = Forms![NomDeMonForm]![NomDeMonSForm] est erronné !
Faire :
Set MonSForm = Forms![NomDeMonForm]![NomDeMonSForm].form

Set MonSCtrl = [NomDuChampDuSForm] est erronné !
Faire
Set MonSCtrl = Forms![NomDeMonForm]![NomDeMonSForm].form![NomDuChampDuSForm]
ou
Set MonSCtrl = MonSForm![NomDuChampDuSForm]

sachant que [NomDeMonSForm] doit être le nom du CONTROLE qui continet le
sous-foumulaire




Bonjour,
Merci beaucoup.