Rij selecteren in Listbox bij openen

Status
Niet open voor verdere reacties.

Rommyke

Gebruiker
Lid geworden
29 mrt 2007
Berichten
357
Ik denk een vrij simpel vraag voor de kenners


Maar hoe kan ik met bv een druk op een commando knop een rij laten selecteren in een listbox of bij het vullen van een listbox door een strSQL de eerste lijn al laten selecteren ?

(Dus alsof je met de muis op een rij hebt geklikt zodat je de zwarte selectie balk krijgt )


als code heb ik onderstaande gebruikt
Code:
Me.IstSelection.Selected(intCurrentRow) = 1

Maar hiermee wordt mijn rij niet geselecteerd
 
Aangenomen dat je een single select listbox hebt:

me![JouwListboxNaam] = JouwVariabele

Dat moet je uitvoeren bij de Bij Openen gebeurtenis van je formulier.
 
Sorry bartuls maar hierbij wordt mij rij niet geselecteerd in mijn listbox.


OpLebans had ik volgende code gevonden


Code:
Me.IstSelection.ListIndex = 0

Dit werkt al deeltelijks want de eerste rij wordt geselecteerd en wordt zwart maar ik krijg daarna een foucode 7777 , ongeldig gebruik van listindex
 
Post je mdb even en geef aan waar je probleem precies zit.
Dat maakt het een stuk eenvoudiger een goede oplossing te geven.
 
Hoi Bartuls,

Vorige code zou het toch moeten zijn denk ik
Heb een voorbeeld gemaakt en code bijgevoegd bij open form(zie bijlage)
In dit voorbeeld werkt het.

In mijn project krijg ik echter de melding ongeldig gebruik van listindex .
Maar als ik zeker weet dat bovenstaande code goed is weet ik dat ik een andere richting moet zoeken .
 

Bijlagen

De volgende puntjes vielen me op:

Je listbox bevat twee kolommen, de eerste kolom is de afhankelijke kolom en bevat het ID. Tot zover is alles prima!
De kolombreedte bevat 0cm, dat is niet goed, je hebt twee kolommen, dus moet je van allebei de kolommen de breedte aangeven: 0cm;8cm
De eerste kolom is de afhankelijke kolom, dat is dus de kolom die je gebruikt om rijen te selecteren.
Stel je wilt de rij Speelgoed selecteren, die heeft ID 7.
Je moet dan de volgende code gebruiken:

Me.OverzichtAfdelingen = 7

Je kunt het ID van een afdeling eventueel met volgende code ophalen:

dim strIDAfdeling as long
dim strAfdelingsnaam
StrAfdelingsnaam = "Materiaal"
strIDAfdeling = dFirst("AfdelingsID","Afdelingen","Afdelingsnaam=' & strAfdelingsnaam & "'")

In bovenstaand voorbeeld krijg je dan één van de twee id's terug voor afdeling Materiaal, die zit namelijk twee maal in je tabel met twee verschillende ID´s
 
Hallo Romain,

de eigenschap ListIndex is alleen-lezen als een keuzelijst of keuzelijst met invoervak niet de focus heeft, vandaar de foutmelding.
Je moet dus eerst de focus op je lijst zetten, dan wordt de eigenschap lezen en schrijven ( = kun je ernaar verwijzen in je code)

Code:
Me.OverzichtAfdelingen.SetFocus
Me.OverzichtAfdelingen.ListIndex = 0

In je voorbeeld heb je dat wel gedaan, vandaar dat je in je voorbeeld geen foutmelding krijgt.

Groet,

Tardis
 
We blijven je tips geven....

Listindex geeft het volgnummer in de listbox weer. Dat heeft als nadeel dat als je je listbox baseert op een query (dat doe je bijna altijd) en je gaat je query sorteren (dat doe je ook bijna altijd) dat je dan wel heel goed de volgorde moet weten om een specifieke regel in je listbox te selecteren.
Als een regel bijvoobeeld op de derde positie terecht komt en je selexteert middels ListIndex die derde regel gaat het goed totdat je een regeltje toevoegt die door de sortering op plaats 2 terecht komt. De derde regel wordt dan opeens een hele andere!

Selectie op de afhankelijke kolom, zoals ik je in het voorbeeld laat zien, heeft daarom bijna altijd de voorkeur boven selectie op Listindex. Je kunt dan een specifieke rij selecteren, los van de plek van die rij in je listbox.
 
Bedankt allebei ,


Ik weet genoeg om het nu in orde te krijgen . Nog bedank voor jullie input

Maar alle tips blijven welkom natuurlijk :D

Groetjes

Romain
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan