2016-03-30 22 views
2

Bir Access uygulamasında, bu tuşa basıldığında VBA işlevini yürütmek için bir dinamik anahtar işleyicisi program aracılığıyla kurmak istiyorum.Access'te VBA ile bir AutoKeys makro oluşturmak mümkün mü?

Özel bir tuşa basıldığında ilk makroyu "çağıran" işlevi ve başka bir AutoKeys makrosunu çağıran bir makro el ile oluşturmayı başardım.

Şimdi, bu makroları yalnızca VBA ile oluşturabilmek istiyorum. Bu bir şekilde mümkün mü?

Elbette, istediğimi gerçekleştirmenin başka yolları varsa, önerilere açığım.

+0

, sen –

+0

Evet küresel anahtar işleyicisi çağırmak için formlarda KeyPress olayı kullanabilirsiniz, ancak ben ve ne şekilde açılırsa makro bakılmaksızın çağrıda istiyorum. –

+0

Yapabileceğini sanmıyorum. Application.CreateForm' ve 'Application.CreateReport' vardır, ancak makrolar için benzer bir şey yoktur. CurrentDb.Containers ("Scripts") Belgeler, tüm mevcut makroları alır, ancak bunu ekleyemezsiniz. – Andre

cevap

0

Böyle bir şey yapabileceğini, bu kodu bir modülde Sonra

Option Compare Database 
Option Explicit 

Private WithEvents frmCustomForm As Form 

Public Function INIT(frmFormToMakeCustom As Form) 
    Set frmCustomForm = frmFormToMakeCustom 
    frmCustomForm.OnKeyDown = "[Event Procedure]" 
End Function 

Private Sub frmCustomForm_KeyDown(KeyCode As Integer, Shift As Integer) 
    MsgBox "Hello" 
End Sub 

, açtığınız her form için bir sınıf eklemek hangi bir kamu koleksiyona sahip gerekecektir içeren, clsCustomForm adında bir sınıf oluşturmak ve her form kapandığında kaldırılır, bir sözlük öneririm, form adı ve öğe olarak sınıf olarak anahtarla, örneğin, yalnızca test etme (sınırlı süre), aşağıdaki kodu 1 formda kullandım, umarım yardımcı olur, daha sonra gerekirse sözlük göstermek için biraz daha zamanım olacak. Eğer açık formlar varsa

Option Compare Database 
Option Explicit 

Public CUSTOM_FORM As clsCustomForm 

Private Sub Form_Load() 
    Set CUSTOM_FORM = New clsCustomForm 
    CUSTOM_FORM.INIT Me 
End Sub