Pergunta : O MS alcança o alimentador de evento global

Isto refere-se ao acesso que do MS 2003 VBA.
I têm 336 textboxes em um formulário.  Eu quero-os todos responder a um evento do double-click na mesma forma--e talvez no futuro a outros eventos.  Eu preferiria não criar 336 eventos separados no módulo do formulário, um para cada textbox.  Provar o código para este tipo de solução, para Excel, pode ser encontrado em: o rel= " nofollow " do " _blank " " do target= de " http://j-walk.com/ss/excel/tips/tip44.htm do href= do
o /tips/tip44.htm

I de http://j-walk.com/ss/excel não pode começ meu código adaptado ao trabalho no acesso.  Compila sem erros--mas o evento do double-click não começ segurado.  Que são mim que faço erradamente?  Código a seguir: o

in um módulo da classe nomeou o class= " lineNumbers " >
1 do >
'clsTextboxGroup
'-------------------------------------------------------------------
A opção compara a base de dados
Opção explícita
WithEvents público TextBoxGroup como Access.TextBox

TextboxGroup_DblClick secundário confidencial (cancelamento como o inteiro)
    MsgBox “olá! de” & TextBoxGroup.Name
    'Eu põr em uns eventos mais substantivos depois que eu começ este funcionamento
Submarino da extremidade
'-------------------------------------------------class= >

In de
1 do >

'o módulo do formulário
A opção compara a base de dados
Opção explícita
MyTextboxes não ofuscante () como o clsTextBoxGroup novo

Form_Load secundário confidencial ()
Chamada InitMyTextboxEvents
submarino da extremidade
'---------------------------------------------------
InitMyTextboxEvents secundário público ()
TextboxCount não ofuscante como o inteiro
Ctl não ofuscante como o controle

'Criar os objetos do Textbox
TextboxCount = 0
Para cada ctl nos formulários (“frmWeek”). Detail.Controls
    Se ctl.ControlType = acTextBox então
        Se ctl. O nome como o “*booking*” então 'snag somente os controles required do textbox
            TextboxCount = TextboxCount + 1
            Conserva MyTextboxes de ReDim (1 a TextboxCount)
           Ajustar MyTextboxes (TextboxCount) .TextBoxGroup = ctl
        Terminar se
    Terminar se
Ctl seguinte

terminar o class= >
de sub
class= do

Resposta : O MS alcança o alimentador de evento global

Eu não trabalhei com classes toda que muito, mas mim vê um par coisas.

1. Você criou uma variável em seu módulo da classe, TextBoxGroup mas não aponta a qualquer coisa.

Você precisa de adicionar:

Propriedade pública TextBoxGroup ajustado (txt como o Textbox)

   Ajustar TextBoxGroup = txt

Terminar o submarino

a sua classe.

2. O acesso tem um built-in da optimização que se não considera “[procedimento do evento]” para uma propriedade do evento, ele não levante um evento.  Assim você precisa de ajustar aquele.  Você pode fazer este na classe ajustada:


Propriedade pública TextBoxGroup ajustado (txt como o Textbox)

    Ajustar TextBoxGroup = txt
    TextBoxGroup.OnDblClick = “[procedimento do evento]”

Submarino da extremidade

3. Durar, como Helen disse, mim não pensam que você pode usar uma disposição como aquele.  em lugar de, você precisa de mandar sua classe segurar uma única caixa de texto e usar então uma coleção no formulário para construir uma disposição de controles.  Eu verei se eu não posso escavar acima algum código ou alguém que trabalharam com classes muito mais.

JimD.

Outras soluções  
 
programming4us programming4us