keuzelijst met selectievak

Status
Niet open voor verdere reacties.

brigje

Gebruiker
Lid geworden
31 dec 2002
Berichten
64
Ik heb een formulier in ACCESS gemaakt die door middel van een "keuzelijst met invoervak" waarden ophaalt uit een andere tabel. In het formulier zit een "afterupdate" procedure die ervoor zorgt dat in de doeltabel een teller met 1 wordt opgehoogd.

De doeltabel ziet er zo uit:

Naam Aantal
Iemand 0
Nog iemand 0



Dus als ik in het formulier “Iemand” kies wordt aantal = aantal + 1. Dit werkt ook. Maar als ik in de “keuzelijst” de ingevoerde waarde verwijder, moet het aantal niet opgehoogd worden.

In het formulier staat deze code:

Private Sub naam_AfterUpdate()
Me!aantal = aantal + 1

Deze twee regels heb ik gebruikt om het aantal, door het lege invoervak, opnieuw te laten berekenen :
If me!naam = null then Me!aantal = aantal
If me!naam = “” then Me!aantal = aantal

In beide gevallen veranderd er niets aan de waarde.

Mijn vraag is dan ook: Welke waarde krijgt een keuzelijst met invoervak nadat deze deleted is?
 
Waarom moet er een teller worden opgehoogd? Als je een waarde kiest uit een keuzelijst? Het lijkt mij dat je een probleem op de verkeerde manier op probeert te lossen waardoor het veel ingewikkelder wordt dan je bedoelt.

Deze regel zal een verkeerd resultaat geven omdat je een waarde niet zonder meer met Null kan vergelijken, het resultaat is altijd Null
Code:
If me!naam = null then Me!aantal = aantal
Als je dat wel wilt dan doe je dat:
Code:
If me!naam is null then Me!aantal = aantal
Testen op een lege string is trager dan testen op lengte nul
Code:
If me!naam = “” then Me!aantal = aantal

is langzamer dan

If len(me.naam) = 0 then Me!aantal = aantal
Verder zou ik nog de Hongaarse variabel notatie gebruiken maar dat moet je zelf weten.

HTH:D
 
Waar het mij om gaat is dat als de gegevens uit de keuzelijst verwijderd worden, dus zonder het pulldownpijltje te gebruiken, er een gebeurtenis gestart moet worden. Normaal gesproken, als het pulldownpijltje gebruikt wordt, wordt de "afterupdate" procedure aangeroepen. Alleen gebeurt dit niet als ik de inhoud van het veld verwijder en op <enter> druk.

Welke procedure moet ik wel gebruiken?

de aangedragen oplossingen om de inhoud te toetsen met "is null" en len(naam) = 0 had ik al geprobeerd, maar daar zit het niet in.
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan