Vérifer si des contrôles d'un sous-formulaires ont bien été remplis avant fermeture du formulaire principal
2 réponses
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
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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" <nospam_bear76@aol.com> a écrit dans le message de news:
eNzeH1BRKHA.1280@TK2MSFTNGP04.phx.gbl...
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
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
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.
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
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