Frames met keuzerondjes op formulier verplicht maken

Status
Niet open voor verdere reacties.

ridgy

Nieuwe gebruiker
Lid geworden
28 jul 2011
Berichten
3
Hallo,

Ik heb een formulier waarop een aantal vragen staat en daarvan zijn er 7 verplicht. namelijk 1 t/6 en vraag 9
Deze vragen worden beantwoord door een optie per frame te selecteren.
Nu wil ik het formulier zo aanpassen dat, voordat men het kan sluiten, er eerst een controle wordt uitgevoerd of de verplichte vragen zijn ingevuld met een melding in een MsgBox.
Ik heb van alles geprobeerd maar het lukt mij niet een juiste code te maken/vinden.
Het liefst moet de code bij sluiten worden uitgevoerd.
Het formulier heb ik bijgevoegd.
Ik hoop dat iemand mij kan helpen.
 

Bijlagen

Je voorbeeld is een beetje kaal; geen tabel en geen functies. Het formulier doet het dus niet...
 
Een eerste aanzet voor de code bij het sluiten van het formulier is bijvoorbeeld,

Code:
Private Sub SaveClose1_Click()
On Error GoTo Err_SaveClose1_Click
If Not (fnz(Me.Option214) Or Nz(Me.Option216) Or Nz(Me.Option218) Or Nz(Me.Option220) Or Nz(Me.Option222) Or Nz(Me.Option224)) Then
  MsgBox "Beantwoord s.v.p vraag 1 "
  Exit Sub
End If
If Not (Nz(Me.Option229) Or Nz(Me.Option231) Or Nz(Me.Option233) Or Nz(Me.Option235) Or Nz(Me.Option237) Or Nz(Me.Option239)) Then
  MsgBox "Beantwoord s.v.p vraag 2 "
  Exit Sub
End If
' etc.
'..
'..
If Not (Nz(Me.Option333) Or Nz(Me.Option235)) Then
MsgBox "Beantwoord s.v.p. ook vraag 9 "
Exit Sub
End If
    DoCmd.Close
Exit_SaveClose1_Click:
    Exit Sub
Err_SaveClose1_Click:
    MsgBox Err.Description
    Resume Exit_SaveClose1_Click
 
End Sub

Wellicht kan je de de namen van de rondjes anders noemen, bijvoorbeeld Option214 = vraag11, option 216= vraag12, het maakt de code wat leesbaarder. (maar ja, ik sla dat ook wel eens over :o)


Jan
 
Ik wacht toch liever op een voorbeeldje, want optierondjes uitlezen is geen optie; je leest namelijk de waarde uit het frame uit. En dat is gekoppeld aan tabelvelden die er nu niet bij zit.
Overigens gebruik ik zelf een heel andere manier, namelijk een onzichtbaar tekstveld op een formulier waarin een berekening staat op basis van die frames. Bij elk ingevuld frame wordt het tekstvak verhoogd met een uniek getal, gebaseerd op factor 2, beginnend bij 1. Dus als het eerste frame is ingevuld, staat er 1, is het tweede frame is de waarde 3 (1 + 2), het derde frame levert 4 op, dus de som is dan 1+2+4=7; het vierde frame is de waarde 8, dus het totaal is dan: 1+2+4+8=15 etc. Bij 6 frames is het totaal dus 63. En die waarde check je dan bijhet sluiten. Is de waarde < 63, dan is er dus minstens één frame niet ingevuld...
Met een berekening kun je dan nog exact bepalen welke dat is/zijn ook, en dat zet je dan weer in je msgbox.
 
En omdat een db'tje meer zegt dan 263 woorden (althans in mijn geval...) een voorbeeldje... Vraag 8 bijvoorbeeld is nu leeg; die mag je pas opslaan als alle vragen zijn beantwoord. Check ook het maken van een nieuwe vraag; daar mag je ook niet opslaan als niet alles is ingevuld.
 

Bijlagen

Hallo allemaal,

Alvast bedankt voor jullie reacties.
Ik heb hier een versie met de tabel.

Groet,
Ridgy
 

Bijlagen

Volgens mij hetzelfde bestand..... Ik zie althans nog geen tabel, en het zipje is ook nog net zo groot als het eerste bestand.
 
We komen er langzaam.... hij wil ook nog wat macro's, of kan ik die zonder problemen uit zetten?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan