22. marts 2007 - 12:18Der er
17 kommentarer og 1 løsning
Mindst et afkrydsningsfelt skal afkrydses inden form forlades
Jeg har en formular med 20 afkrydsningsfelter. Jeg ville gerne have at brugeren ikke kan forlade formularen uden at have afkrydset mindst et af felterne. r det muligt?
Dim frm As Form, ctl As Control Dim Ok as Boolean Set frm = Screen.ActiveForm Ok=False For Each ctl In frm If ctl.ControlType = acCheckBox Then if ctl.Value = True then Ok=True end if Next ctl
Det er da i den stil fdata. Det var blot en kodestump jeg havde 5 min før et møde. En fejlmeddelelse vil jeg sætte ind således:
Dim frm As Form, ctl As Control Dim Ok as Boolean Set frm = Screen.ActiveForm Ok=False For Each ctl In frm If ctl.ControlType = acCheckBox Then if ctl.Value = True then Ok=True else: Msgbox "Du skal afkrydse" exit sub end if Next ctl
Godmorgen fdata Jamen det er også min tanke at løkken skal forlades ved den første false, idet rosco jo ikke vil kunne forlade formularen uden mindst eet felt er afkrydset.
Jeg blander mig lige igen. Hvis du retter min kode til:
Dim frm As Form, ctl As Control Dim Ok as Boolean Set frm = Screen.ActiveForm Ok=False For Each ctl In frm If ctl.ControlType = acCheckBox Then if ctl.Value = True then Ok=True end if Next ctl Set frm = Nothing Cancel=not Ok
og lægger koden i Form_Unload burde det spille.
(og så tillader jeg mig at gentage: mugs' kode vil bede dig afkrydse ALLE felter, idet fejlmeddelelsen vises så snart den ser et felt, der er False. Løkken skal jo forlades, når den set et felt, der er True. Sorry, mugs)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.