Vraag & Antwoord

Programmeren

[Access] OnClick wordt 2× uitgevoerd

3 antwoorden
  • Goedemorgen! Met VBA open ik een formulier om deze te bewerken, op dit nieuwe formulier zet ik een aantal labels; deze labels krijgen een OnClick-event mee. Dit doe ik met dit stukje code: [code:1:8c745e57b2] Set lblOrders(I) = CreateControl("frm1", acLabel) lblOrders(I).Caption = "Opus 2" lblOrders(I).OnClick = "=Knop_Click(" + Trim(Str(I)) + ")"[/code:1:8c745e57b2]Bovenstaande staat in een loop, dus I = 1 tot 10.[code:1:8c745e57b2]Sub Knop_Click(I) MsgBox Str(I) End Sub[/code:1:8c745e57b2]Bovenstaande staat reeds in het formulier, frm1 Als ik nu een label aanklik, krijg ik 2 popup's. Wat doe ik fout? Bedankt, Michiel
  • Michiel, Ik heb geprobeerd je probleem 'na te bouwen', maar ik krijg niet hetzelfde. 1. Je OnClick creeert (zoals je het in code aangegeven hebt) een macro-aanroep, dus niet een sub-aanroep binnen de form. 2. Het lijkt erop dat je een 'Knop' hebt met een klik-event. Hoe heb je de parameter (I) erin op kunnen nemen? Wil je wat meer info geven om het probleem na te kunnen bouwen? Groeten, Maarten.
  • Bedankt dat je zoveel moeite doet! [quote:f881d0d006="MaartenW"]1. Je OnClick creeert (zoals je het in code aangegeven hebt) een macro-aanroep, dus niet een sub-aanroep binnen de form.[/quote:f881d0d006]Bij een event kan je 3 verschillende dingen staan: Er staat [b:f881d0d006][Expressie][/b:f881d0d006]: Er wordt automatisch een [i:f881d0d006]Private Sub[/i:f881d0d006] aangemaakt. De naam van de expressie is de naam van het object, een underscore (_) en het event. Er staat bv. [b:f881d0d006]ShowMsg[/b:f881d0d006]: Er wordt verwezen naar een macro. Dit is te zien door het ontbreken van een is-teken (=) en haakjes op het eind. Er staat bv. [b:f881d0d006]=ShowMsg("Ik typ dit op zaterdag avond. Conclusie: Vandaag is chiel even kansloos")[/b:f881d0d006]:Je begint met een is-teken en je hebt de mogelijkheid een variabele mee te geven. Er kan verwezen worden naar een externe module of naar de module van het formulier zelf. Ik doe het laatste. [quote:f881d0d006]2. Het lijkt erop dat je een 'Knop' hebt met een klik-event. Hoe heb je de parameter (I) erin op kunnen nemen?[/quote:f881d0d006]Ik had het formule eerst aangemaakt, een knop erop gezet en die ene regel geschreven als je er op klikt. Dan wordt hij één keer uitgevoerd. Vervolgens heb ik de knop verwijderd. Dat is de reden dat die sub zo heet, er is echter geen knop het formulier, alleen labels. De sub had net zo goed '[i:f881d0d006]Sub Test(I As Integer)[/i:f881d0d006]'kunnen heten. Kan je hier iets mee?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.