Controle of een selectie gemaakt is in een listbox

  • Onderwerp starter Onderwerp starter Jemp
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

Jemp

Gebruiker
Lid geworden
18 feb 2012
Berichten
145
Wanneer de gebruiker van mijn InvoerForm de ingevoerde gegevens wil wegschrijven (via CmdButton) word er gecontroleerd of alle gevraagde gegevens wel degelijk voorhanden zijn. Eén van de gegevens betreft een keuze (via selectie) die moet gemaakt worden in een listbox. Wanneer die selectie niet gemaakt is moet de gebruiker verwittigd worden (Evt via MsgBox) en vervolgens moet terug gecontroleerd worden of hij de selectie inderdaad gemaakt heeft.

Volgende code blijkt spijtig genoeg niet te werken :

Code:
If lstKeuze.ListIndex = -1 Then
        Noselection = MsgBox("Gelieve een Item te selecteren", vbOKOnly)
        If Noselection = vbOK Then
            Do While lstKeuze.ListIndex = -1
            Loop
        End If
    End If

Kan iemand een beginner hiermee helpen?
 
Code:
With lstKeuze
        intCount = 0
        For intIndex = 0 To .ListCount - 1
            If .Selected(intIndex) Then intCount = intCount + 1
        Next
    End With
    If intCount = 0 Then MsgBox "Gelieve een Item te selecteren", vbOKOnly: Exit Sub
 
Laatst bewerkt:
Zorg dat de wegschrijfknop pas zichtbaar is als er een keuze is gemaakt:
Val gebruikers niet lastig met mededelingen alsof zij iets 'verkeerd' gedaan zouden hebben.

Code:
Private Sub lstKeuze_change()
  cmdbutton.visible=lstKeuze.ListIndex >-1
end sub
 
Bedankt voor de snelle reacties

snb : het probleem is dat er meerdere invoervelden zijn (3 lstbox en 2 txtbox). Deze moeten allemaal ingevuld of geselecteerd zijn vooraleer de gegevens weggeschreven kunnen worden. De wegschrijfknop zichtbaar maken via _Change is dus niet voor de hand liggend. Bovendien zou de gebruiker in de war kunnen geraken als er geen wegschrijfknop voor handen is (via een txtbox in de frm is dit wel op te lossen natuurlijk.

Rudi : ondanks je :rolleyes: ga ik eens met jouw suggestie aan de slag :p

Nogmaals bedankt beiden voor de hulp
 
het probleem is dat er meerdere invoervelden zijn (3 lstbox en 2 txtbox). Deze moeten allemaal ingevuld of geselecteerd zijn vooraleer de gegevens weggeschreven kunnen worden
Je redenering klopt niet:

Code:
Private Sub lstKeuze_change()
  cmdbutton.visible=(lstKeuze.ListIndex >-1)*(lstbox2.ListIndex >-1)*(lstbox3.ListIndex >-1)*(tekstvak1.text<>"")*(tekstvak2.text<>"")
end sub

Je hoeft gebruikers maar 1 keer uit te leggen dat de knop vanzelf verschijnt als alle velden goed zijn ingevuld; dat vergeten ze nooit meer.
 
Ik snap dat je het verwarrend vind als mensen ineens een knop zien die ze eigenlijk al gelijk willen zien. Ik zou het dus zo doen:

Code:
Private Sub lstKeuze_Change()
  cmdButton.Enabled=(lstKeuze.ListIndex >-1)*(lstbox2.ListIndex >-1)*(lstbox3.ListIndex >-1)*(tekstvak1.text<>"")*(tekstvak2.text<>"")
End Sub
 
Alle reacties zijn in dank aanvaard ... zijn we weer wat slimmer geworden

Groetjes
JP
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan