default waarde van een keuzelijst

Status
Niet open voor verdere reacties.

JEPEDEWE

Terugkerende gebruiker
Lid geworden
14 jun 2006
Berichten
1.697
Hallo

Ik maak een keuzelijst aan gebaseerd op een query
hierin 2 velden: ID en naam
het afhankelijk veld is ID
in de OnOpen-eigenschap van de form schrijf ik

me!keuzelijst8.defaultvalue= 13

als ik de form open dan verwacht ik dat de keuzelijst netjes op de waarde 13 staat, maar niks hiervan... de keuzelijst staat netjes met de eerste van het alfabet bovenaan (zoals ook aangegeven in de query)

wat doe ik nu weer verkeerd?

Bedankt aan alle mensen met heel veel geduld!

JP:o
 
Probeer eens in plaats van gewoon 13 als waarde te geven het volgende :

[comboboxname].ItemData(n)

waar comboboxname de naam van je combobox of listbox is en n in dit geval 13
 
JP,

Defaulwaarde wordt ingevuld bij het aanmaken van een nieuw record!

Itemdata is alleen lezen en niet schrijven!

Je zit goed met de Form_Open gebeurtenis.

Neem hier het volgende in op:

Code:
With keuzelijst8
    .SetFocus
    .ListIndex = (getal van de rij waar de gewenste waarde in staat)
 End With

Let op dat de rijen in z'n lijst zijn genummerd van 0 tot (rijaantal - 1)

Groeten,

Paul
 
ik vind het allemaal wat verwarrend:
Ik schrijf:
Me!keuzelijst8.defalutValue=Keuzelijst8.ItemDat(13)
zonder effect

tweede voorstel dacht ik dat ik moest schrijven:
Me!keuzelijst8.defalutValue=13
With keuzelijst8
.SetFocus
.ListIndex = 0
End With
Dit selecteerd wel een naam maar niet de correcte, gewoon de eerste op basis van die setfocus denk ik

in die keuzelijst moet je ook nadien een andere naam kunnen selecteren, maar dat is geen probleem via een "Na bijwerken"

sorry mannen!
JP
 
Zoals Paul al aangaf, moet je de Listindex van de keuzelijst op de goede rij instellen. Jij zet hem op 0, en dat is de eerste. Als je dat verandert naar .Listindex=13 dan zou het goed moeten zijn.
 
Nog niet..
ik schrijf in OnOpen

Me!keuzelijst8.defalutValue=13
With keuzelijst8
.SetFocus
.ListIndex = 13
End With

en kom bij iemand die als waarde in de eerste kolom 6 heeft...

moet die eerste lijn er bij trouwnes???

JP
 
JP, Michel,

Het kan natuurlijk zo zijn dat zijn waarde 13 in zijn keuzelijst op rij 4 staat?

Kijk eerst eens in je keuzelijst in welke rij 13 staat.
Trek van deze rij 1 af en vul dit getal achter .Listindex =

Groeten,

Paul
 
Laatst bewerkt:
JP,

Het gaat niet om de kolom maar de rij waar deze waarde staat in de keuzelijst.

Keuzelijst8.JPG
Bekijk het plaatje even.

In het voorbeeld staat 13 in rij 4.
Vul dan bij .Listindex = 3 in.

Trouwens de eerste regel met Defaultvalue kan weg.

Groeten,

Paul
 
sorry hoor... maar, hoe kan ik nu vooraf weten op welke rij het cijfer 13 staat...
die keuzelijst is op een query gebaseerd...
Begrijp er hier steeds minder van.....:(
 
JP,

Als je alleen de query uitvoert in welke rij staat dan het nummer 13?

Dus tel de rijen totaan de rij met 13,
Trek hier 1 vanaf, en vul dit in achter .Listindex =

Doe anders een bijlage met de database zonder gevoelige informatie!

Groeten,
Paul
 
Die staat nu eens op rij 10 en dan weer, afhankelijk van de waarden in onderliggende database weer op rij 25....
 
JP,

Veranderd die rij ook tijdens het gebruik van het betreffende formulier waar keuzelijst8 op staat?

Groeten,

Paul.
 
de keuzelijst staat op de "openingsform"....
de bedoeling is het volgende:
het projectje zal gebruikt worden door een 50-tal collega's
bij het openingsscherm kiest de gebruiker (de eerse keer hij of zij dit projectje gebruikt) zijn naam uit de lijst
er is een bestand: setup.. hier zal programma-code de ID van de gebruiker in wegschrijven...( bvb nr 13)
de volgende keer dat gebruiker 13 het programma gebruikt haalt code de ID uit de setup-database.
In de keuzelijst op het opstartscherm zal dus ook de naam van de gebruiker in het keuzelijstje (van actieve collega's) gekozen worden.... (is de gebruiker veranderd dan kiest hij een andere naam)
(de data in de keuzelijst zijn alle collega's die op dit moment ij ons actief zijn... kan dus wel eens veranderen)
Snap je hem,
(zou code willen meegeven maar ben volop wafelen aan het bakken voor de kids en de familie.... echtgenote is al aan het zeuren...)

(wist niet dat het zo ingewikkeld was.....)
 
JP,

Ik geef hieronder de code voor de keuzelijst waarbij eerst wordt gezocht naar het betreffende getal ( in dit geval 13).

Code:
Private Sub Form_Open(Cancel As Integer)
  Dim Teller
  'doorloop de keuzelijst totdat 13 is gevonden in 	  'de afhankelijke kolom.
  With keuzelijst8
    'Bekijk rij 0 t/m rijaantal - 1	
    For Teller = 0 To .ListCount - 1
      'Als 13 in die rij staat dan gevonden en instellen
      If .ItemData(Teller) = 13 Then
        Exit For
      End If
    Next Teller
    .SetFocus
    .ListIndex = Teller
  End With
End Sub

Ga er hier vanuit dat 13 een getal is en geen tekenreeks(Tekst)
Hoop dat dit voor jou de oplossing is.

Groeten,
Paul
 
Waarom wil je eigenlijk de waarde 13 als standaard voor de keuzelijst? Ik krijg de indruk dat je iets wilt wat eigenlijk overbodig is. Je wilt dat de db opstart met de omgevingsvariabelen van de persoon die de db opstart. Dat zou ik nooit met zo'n keuzelijst doen, maar door de recordsets aan te passen op basis van de Userlogin. Die keuzelijst lijkt mij overbodig...
 
je code werkt perfect Paul...
Natuurlijk is 13 maar een cijfer om dingen uit te testen
Zoals ik al zei zal code in Setup het correcte cijfer ophalen.....
Da's nu mijn volgende stap... denk dat dat wel zal lukken!
Bedankt mensen!...PAUL:thumb:!!!
JP
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan