Bij openen van Access-formulier, waarde keuzelijst tonen

Status
Niet open voor verdere reacties.

HansFRAP

Gebruiker
Lid geworden
12 jul 2011
Berichten
209
Probleem
Ik zou bij het openen van een Access-formulier (waarop een keuzelijst is geplaatst) de eerste waarde van die keuzelijst als waarde in die keuzelijst willen tonen.
Nu bevat de keuzelijst bij openen wel waardes maar er wordt geen waarde in de keuzelijst getoond.

Ik kan met vba de Forms("Frm_Naam").Controls("Keuzelijst").ListCount zien dat er 8 waardes in de keuzelijst zitten
maar ik kan nu niet bijvoorbeeld: Forms("Frm_Naam").Controls("Keuzelijst").ListIndex = 7 gebruiken.

Vraag
Hoe kan ik met code bijvoorbeeld wel listindex = 7 als waarde in de keuzelijst tonen??
 
Ingewikkelde manier van programmeren gebruik je... Dit: Forms("Frm_Naam").Controls("Keuzelijst").ListCount kan ook zo: Me.Keuzelijst.ListCount. Drie keer raden welke methode ik gebruik :).
Jouw probleem los je zo op:
Code:
Me.keuzelijst.Value = 7
Die code mag je uiteraard ombouwen naar de lange versie :D.
 
@Octafish, bedankt voor reactie.

2 puntjes

- Gebruik van Me. .... geeft bij mij bijna altijd error!
Ik weet niet waarom maar ook hier geeft dit (bij gebruik F8) direct een error: Invalid use of Me keyword

Dus maar omgezet naar lange versie: Forms("Frm_Naam").Controls("Keuzelijst").Value = Aantal - 1

- Helaas levert dit de waarde 7 een absolute waarde in de keuzelijst. (Had dit reeds gedaan)
Ik wil echter de waarde van het 7-de element uit de keuzelijst tonen.

Code:
Sub Test
  Forms("Frm_Naam").Controls("Keuzelijst").Value = (Forms("Frm_Naam").Controls("Keuzelijst").ListCount) - 1
End sub


Zou dus ook code kunnen zijn om de waardes van de keuzelijst te tonen.
Zoiets als: For each Waarde in Keuzelijst etc.

(PS: Wanneer heb jij eens weekend?)
 
Zet de macro in de macromodule van het Form.

Code:
Sub M_Test
  Keuzelijst.Listindex=7
End sub
 
- Gebruik van Me. .... geeft bij mij bijna altijd error!
Dan zit er iets goed fout in je database, want als systeemwoorden niet werken dan klopt er iets niet. Ik zou eens beginnen met de db te compileren, dan wijst de VBA editor alle plekken aan waar fouten zitten, die je dan kan/moet verhelpen. Bijvoorbeeld door niet-gebruikte code te verwijderen of tijdelijk om te zetten naar commentaar. Wellicht dat Me. dan wél werkt. Overigens werkt Me natuurlijk alleen op modules van een formulier of rapport, want alleen dáár heb je een Me object. Staat de macro in een algemene macromodule, dan moet je het formulier meegeven in de functieaanroep. Ook dan kan het dus een stuk simpeler :).

Je kunt in Access nooit met ListIndex een waarde instellen, alleen uitlezen. Dus het enige dat zou kunnen werken (op je formulier) is dit:
Code:
    Me.Keuzelijst.Value = Me.Keuzelijst.ListCount - 1
    MsgBox Me.Keuzelijst
En als dat niet werkt, is er dus iets kapot in de db. In dat geval zou ik zeggen: post een geanonimiseerde versie, dan kunnen we meekijken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan