Velden op formulier niet juist bij selecteren next button (visible/not visible)

Status
Niet open voor verdere reacties.

Paul63

Gebruiker
Lid geworden
28 jan 2013
Berichten
9
Goedendag,

ik heb een formulier met daarop een "next" button.
Het formulier bevat 10 vragen (text velden) en een Level (ook text veld). Ieder level heeft z'n eigen set vragen. Bijv. Level 1: vraag 1 t/m 7 en 10. Level 2: vraag 3 t/m 8. Level 3: vraag 6 t/m 10.
Het is de bedoeling dat dmv het gebruik van de bext button door de records te scrollen en dan steeds de vragen op het formulier te tonen welke tot het betreffende level horen.
Ik heb onder het "On Current" event een code maar deze werkt niet goed. Bij het eerste getoonde record krijg ik het juiste formulier, zodra het level voor het eerst veranderd dan gaat het ook nog goed maar als dan het level weer veranderd blijft het formulier de vragen van het voorgaande level zien. Wat is de juiste code om voor elkaar te boksen dat de juiste velden bij het juiste level worden getoond bij "Next" ?
Voorbeeldcode:

Code:
Private Sub Form_Current()

If Me.Level = "1" Then
   With Me
    .vraag8.Visisble = False
    .vraag9.Visible = False
    .vraag10.Visible = False
   End With
End If

If Me.Level = "2" Then
   With Me
    .vraag1.Visible = False
    .vraag2.Visible = False
    .vraag9.Visible = False
    .vraag10.Visible = False
   End With
End If

If Me.Level = "3" Then
   With Me
    .vraag1.Visible = False
    .vraag2.Visible = False
    .vraag3.Visible = False
    .vraag4.Visible = False
    .vraag5.Visible = False
   End With
End If


Alvast bedankt.

Paul
 
Zoiets werkt alleen als je de zichtbaarheid reset bij elk nieuw record, anders houdt het object de vorige instelling vast. En dan krijg je jouw probleem. Ik zou het zo aanpakken (dus precies omgekeerd aan wat jij doet):

Code:
Private Sub Form_Current()
Dim ctl As Control

    For Each ctl In Me.Controls
        If Left(ctl.Name, 5) = "vraag" Then
            ctl.Visible = False
        End If
    Next ctl

    With Me
        Select Case .level
            Case 1
                .vraag1.Visible = True
                .vraag2.Visible = True
                .vraag3.Visible = True
                .vraag4.Visible = True
                .vraag5.Visible = True
                .vraag6.Visible = True
                .vraag7.Visible = True
                .vraag10.Visible = True
            Case 2
                .vraag3.Visible = True
                .vraag4.Visible = True
                .vraag5.Visible = True
                .vraag6.Visible = True
                .vraag7.Visible = True
                .vraag8.Visible = True
            Case 3
                .vraag6.Visible = True
                .vraag7.Visible = True
                .vraag8.Visible = True
                .vraag9.Visible = True
                .vraag10.Visible = True
        End Select
    End With

End If
Overigens wordt het een stuk simpeler als je het level ook aangeeft in de vragentabel zelf; dan kun je daar op filteren.
 
Laatst bewerkt:
Net terug van vakantie gelijk uitgeprobeerd en het werkt!

Thanks,
Paul
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan