2012-05-24 35 views
0

我正在處理遺留數據庫。具體而言,更改報告。我已經確定了報告基於的查詢/表格。其中一張桌子的所有特徵都是由一個有數十個宏的宏所產生的臨時表。Access 2010:哪種表單控件觸發宏?

我已經能夠識別生成表和運行查詢的宏的追加查詢。現在我想找到哪個表單事件觸發了這個宏。它每次生成報告時運行一次,或者一週一次或一個季度一次或... 在「按鈕」後面的宏中沒有任何內容可以打印報告,並且報告中不會觸發事件。

我可以迭代每種形式的每個控件,但是我在尋找什麼屬性? 任何指針/關鍵詞指導將不勝感激,謝謝。

+0

當你說宏,你的意思,有保存宏標籤上的各種宏,或者你的意思是VBA代碼保存在模塊中? – Fionnuala

+0

前者,在宏選項卡上。有很少的vba,只在少數Form模塊中使用。看起來好像以前的一個維護人員對他們有好感。 – wfsp

+0

我想你應該能夠在命令按鈕的點擊事件中查找宏名稱。 – Fionnuala

回答

2

的一些注意事項,這將是更容易找到相關的按鈕,當您有宏的名稱:

Sub FindMacros() 
For Each f In CurrentProject.AllForms 
    DoCmd.OpenForm f.Name, acDesign 

    Set frm = Forms(f.Name) 
    For Each ctl In frm.Controls 
     If ctl.ControlType = acCommandButton Then 
      Debug.Print ctl.OnClick 
     End If 
    Next 

    DoCmd.Close acForm, f.Name, acSaveNo 
Next 
End Sub 
+0

+1漂亮的小程序^ _^ –

+0

@MattDonnan對建築控制也很有用。您可以爲標準函數設置各種事件,例如事件行上的'= AFunction([Form])'將把當前表單對象傳遞給函數。 – Fionnuala

+0

現貨,非常感謝。我現在知道哪個按鈕在哪個表格上,正是我之後的。再次,非常感謝。 – wfsp