double click event op labels in access formulier

Status
Niet open voor verdere reacties.

plenarts

Gebruiker
Lid geworden
4 apr 2005
Berichten
18
Hallo,

ik zoek voor het volgende probleem een oplossing .

In access2003 heb ik op een formulier +/- 150 labels staan. De labels geven een overzicht van de beschikbaarheid van plaatsen op een camping weer. Is het label niet zichtbaar, is deze plek nog beschikbaar. Is het label zichtbaar, dan staat hier o.a. het reserveringsnummer in, en is de plek dus bezet. Dit staat en functioneert.

Nu wil ik bij de labels die zichtbaar zijn dmv dubbelklikken de detailgegevens van de betreffende reservering zien in een popup formulier, (waarin het reserveringsnummer in het label de link is met de gegevens in het formulier) zonder dat ik per label bij een eventprocedure moet aanmaken. Ik weet dat dit mogelijk is maar hier schiet mijn kennis te kort. Graag hulp en alvast bedankt, Paul
 
Een label heeft geen dubbelklik gebeurtenis (of, om precies te zijn, geen enkele gebeurtenis). Je kunt daar dus ook niks voor maken. Aan Tekstvakken kun je wel gebeurtenissen hangen, dus ik zou de labels omzetten naar tekstvakken.
 
Hallo Octafish,

ook geen onafhankelijk label? Maar ok, als het tekstvakken worden, dan enig idee?
 
Onafhankelijke labels lukt wel, maar dat had je er niet bij gezet ;)
De truc is dan zelfs relatief simpel, want je geeft de veldnaam mee als filterstring. Je komt al een heel eind als je met de wizard een knop maakt om het formulier te openen, dan heb je de hoofdcode al te pakken. Het probleem is natuurlijk dat je deze code voor alle 150 labels moet gaan afvangen... En dat is een klus waar ik niet op zou zitten te wachten...

Als je het overzichtelijk wilt oplossen, kun je een transparante knop maken die over alle labels heenligt, en de muispositie afvangen om daarmee te bepalen op welk label is geklikt. Dan heb je maar één code nodig.
 
Michel,

ja, het zijn onafhankelijke labels.
Hoe kan ik dan de muispositie afvangen?

In de loop die bepaalt of een label zichtbaar is (met reserveringsnummer) of niet, kan ik daar dan niet een gebeurtenis procedure aankoppelen, dus zoiets als:

Code:
    rst.MoveFirst
     Do Until rst.EOF    

     week = rst("week")
     resid = rst("res_id")
     lbl_name = rst("lbl_naam")
              
                If aantal > 0 Then
                    Form_frm_bez_extra(lbl_name).Visible = True
                    Form_frm_bez_extra(lbl_name).BackColor = 8763448  'groen
                    Form_frm_bez_extra(lbl_name).ForeColor = vbBlack
                    Form_frm_bez_extra(lbl_name).Caption = resid
                   [B] Form_frm_bez_extra(lbl_name).OnDblClick = "[Gebeurtenisprocedure]"[/B]              
                 Else
                    Forms![frm_bez_extra](lbl_name).Visible = False
                 End If
           
            rst.MoveNext
    Loop
alleen, Form_frm_bez_extra(lbl_name).OnDblClick = "[Gebeurtenisprocedure]", dit functioneert niet!
 
Laatst bewerkt door een moderator:
Paul, Michel,

Paul,
In je voorbeeldcode zit je met de onDblClick gebeurtenis.
Ik neem aan dat je voor iedere week deze code doorloopt (dus vernieuwd).

Gebruik dan onderstaande code i.p.v. jouw code.

With rst
.MoveFirst
Do Until .EOF
week = !week
resid = !res_id
lbl_name = !lbl_naam
If .RecordCount > 0 Then
With Me(lbl_name)
.Visible = True
.BackColor = 8763448 'groen
.ForeColor = vbBlack
.Caption = resid
.OnDblClick = "=OpenFormMetId(" & resid & ")"
End With
Else
Me(lbl_name).Visible = False
End If
.MoveNext
Loop
.Close
End With

In je formulier vba-module neem je onderstaande functie op, welke zorgt voor het openen van het bedoelde formulier met detailgegevens.

Private Function OpenFormMetId(strCtl As String)
'strCtl is hier dus de resid welke in de ondblclick wordt doorgegeven
'Hierna wordt het formulier hieronder geopend met de betreffende resid

DoCmd.OpenForm "frmReserveringen", , , "res_id = " & strCtl, , acDialog
End Function

Deze functie wordt door de dubbelklik gebeurtenis van de labels aangeroepen.

Succes.
 
@PaccessB:
Kun je voorbeeldcode opmaken met de Code tag (Knop #) Dat houdt de draad wat leesbaarder.
 
Michel,

Zal ik de volgende keer doen.
Ben nog niet zo lang forumgebruiker.

Groeten.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan