Vraag : Globale de gebeurtenismanager van MS-Access

Dit betreft MS-Access 2003 VBA.
I heeft 336 textboxes op een vorm.  Ik wil hen allen aan een tweemaal klikkengebeurtenis op de zelfde manier antwoorden--en misschien in de toekomst aan andere gebeurtenissen.  Ik zou verkiezen 336 afzonderlijke gebeurtenissen in de module van de vorm, voor elke textbox niet tot stand te brengen.  De code van de steekproef voor dit type van oplossing, voor Excel, kan worden gevonden bij:
http://j-walk.com/ss/excel /tips/tip44.htm

I kan niet mijn aangepaste code aan het werk in Toegang krijgen.  Het compileert zonder fouten--maar de tweemaal klikkengebeurtenis niet wordt behandeld.  Wat ben doen van I verkeerd?  Te volgen code:

in een klassenmodule noemde clsTextboxGroup
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
'clsTextboxGroup
'
De optie vergelijkt Gegevensbestand
Expliciete optie
Openbare WithEvents TextBoxGroup als Access.TextBox

Privé SubTextboxGroup_DblClick (annuleer als Geheel)
    MsgBox „Hello van“ & TextBoxGroup.Name
    'Ik zal meer aanzienlijke gebeurtenissen aanbrengen nadat ik dit het werken krijg
Sub van het eind
'


In de module van de vorm met 336 textboxes

1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
de 'module van de vorm
De optie vergelijkt Gegevensbestand
Expliciete optie
Schemerige MyTextboxes () als Nieuwe clsTextBoxGroup

Privé SubForm_Load ()
Vraag InitMyTextboxEvents
eind sub
'
Openbare SubInitMyTextboxEvents ()
Schemerige TextboxCount als Geheel
Schemerige ctl als Controle

'Cre�ër de Voorwerpen Textbox
TextboxCount = 0
Voor Elke ctl in Vormen („frmWeek“). Detail.Controls
    Als ctl.ControlType = acTextBox toen
        Als ctl. Naam zoals „*booking*“ toen 'winkelhaak slechts de vereiste textbox controles
            TextboxCount = TextboxCount + 1
            Het Domein MyTextboxes van ReDim (1 aan TextboxCount)
           Vastgestelde MyTextboxes (TextboxCount) .TextBoxGroup = ctl
        Eind als
    Eind als
Volgende ctl

eind sub

Antwoord : Globale de gebeurtenismanager van MS-Access

Ik heb met klassen dat alles niet veel gewerkt, maar ik zie een paar dingen.

1. U hebt een variabele in uw klassenmodule, TextBoxGroup gecre�ërd maar het richt niet aan om het even wat.

U moet toevoegen:

Openbaar Bezit Vastgestelde TextBoxGroup (txt als Textbox)

   Vastgestelde TextBoxGroup = txt

Sub van het eind

aan uw klasse.

2. De toegang heeft een ingebouwde optimalisering dat als het niet „[de Procedure van de Gebeurtenis]“ voor een gebeurtenisbezit ziet, het geen gebeurtenis opheft.  Zo moet u dat plaatsen.  U kunt dit in de Geplaatste klasse doen:


Openbaar Bezit Vastgestelde TextBoxGroup (txt als Textbox)

    Vastgestelde TextBoxGroup = txt
    TextBoxGroup.OnDblClick = „[de Procedure van de Gebeurtenis]“

Sub van het eind

3. Het laatst, zoals Helen heeft gezegd, denk ik niet u een serie als dat kunt gebruiken.  in plaats daarvan, moet u uw klasse hebben één enkel tekstvakje behandelen en dan een inzameling in de vorm gebruiken om een serie van controles te bouwen.  Ik zal zien of kan ik niet één of andere code of iemand blootleggen die met klassen veel meer hebben gewerkt.

JimD.

Andere oplossingen  
 
programming4us programming4us