op formulier buttons plaatsen die gegevens van subformulier kan selecteren

Status
Niet open voor verdere reacties.

Peer44

Gebruiker
Lid geworden
25 jan 2008
Berichten
224
Hallo,

ik ben bezig een formulier te maken voor een touchscreen, loop nu tegen het probleem aan dat het keuzelijst met invoervak niet echt touchscreen vriendelijk is.
dit wil ik gaan omzeilen.

ik heb een tabel met gebruikers, kolomkoppen: ID (autonummering) Naam en Achternaam.
de gebruiker moet zijn naam selecteren op het hoofdformulier ter accordering.
hier gebruikte ik het keuzelijst met invoervak voor naam : GebruikerID

hiervan wil ik nu een tekstvak maken, daarbij 2 buttons, 1 die omhoog naar het volgend record gaat en 1 die naar het vorig record gaat.
omdat het hier gegevens betreft uit een onderliggende tabel weet ik niet hoe ik dit moet ingeven in de button klikgebeurtenis.

de uiteindelijke gekozen naam weergegeven in het tekstvak moet worden overgenomen in het veld GebruikerID.

Hoe kan ik dit bewerkstelligen?
 
Ik snap niet helemaal wat je wilt; de keuzelijst kun je an sich natuurlijk vergroten, met een groter lettertype. Dan kun je hem wel gebruiken. Of, als er niet teveel zijn, een normale keuzelijst. Maar als het om gebruikers gaat vermoed ik dat de gebruiker die moet accorderen al is ingelogd in de database, dus waarom gebruik je dat gegeven niet? De Usernaam kun je uit de Environ halen, dus dan hoeft er helemaal niks gekozen te worden.
Kies je toch voor de knoppenoptie, omdat dit niet de situatie is, dan wordt het nog best lastig, omdat je steeds opnieuw in de database moet gaan kijken, en dan één opvolgend (of voorgaand) record moet ophalen. En op basis waarvan ga je dat doen? Ik zou de keuzelijst dus in ieder geval laten staan, en die dan onzichtbaar maken. Je kunt met je knoppen dan de volgende of vorige waarde in de keuzelijst selecteren en activeren.
Bijvoorbeeld zo:

Code:
Private Sub cmdMin_Click()
Dim i As Integer, ctl As Control

    Set ctl = Screen.ActiveControl
    On Error Resume Next
    With Me.cboCat1
        .SetFocus
        i = .ListIndex - 1
        If i = -1 Then
            MsgBox "Dit is de eerste waarde in de keuzelijst.", vbOKOnly, "Eerste waarde"
        Else
            .ListIndex = i
        End If
    End With
    Me(ctl.Name).SetFocus
End Sub

Code:
Private Sub cmdPlus_Click()
Dim i As Integer, ctl As Control

    Set ctl = Screen.ActiveControl
    On Error Resume Next
    With Me.cboCat1
        .SetFocus
        i = .ListIndex + 1
        If i > .ListCount - 1 Then
            MsgBox "Dit is de laatste waarde in de keuzelijst.", vbOKOnly, "Laatste waarde"
        Else
            .ListIndex = i
        End If
    End With
    Me(ctl.Name).SetFocus
End Sub
Wel nog even de naam van de keuzelijst aanpassen natuurlijk.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan