2017-08-11 57 views
1

我有大約20個MS-Access數據庫,大約有400個表單,並希望在加載任何表單時執行操作。 我可能需要在數據庫或應用程序級別觸發任何形式的事件被打開/加載。然後,我可能只需要向20個數據庫中的每一個添加代碼一次,而不是向400個表單中的每一個添加代碼。 而且:它必須在VBA(Access> = 2010)! 我的問題:這甚至可能嗎?如果是這樣,有人有提示嗎? 謝謝, 皮特MS訪問事件加載表格

+0

每個表單是如何加載的?基於某些用戶交互,您是否在運行時手動加載表單?或者是用戶使用Access內的內置導航來加載每個表單? –

+0

表單正在被各種用戶交互加載(我沒有自己編寫包)。每次打開/加載表單時,我都必須添加某些功能。像「Form_Load(pForm As Form)」這樣的數據庫事件本來是完美的,但似乎並不存在。不管怎麼說,還是要謝謝你! – McWilliamsPete

回答

2

我認爲有多種方法可以去解決這個問題。

什麼我可能會做的是以下幾點:

  1. 創建,打開,只要您打開數據庫(使用自動執行宏)帶有計時器的隱藏的表單。
  2. 加載隱藏表單時,初始化數據庫中所有可用表單的集合/多級數組,並將其狀態設置爲關閉(有點困難,可能會使用多級數組或集合中的集合來能夠存儲表單名稱+布爾值打開或關閉)。
  3. 定期迭代集合,檢查更改,以便您可以在表單關閉並觸發事件時看到。

您也可以使用VBA循環遍歷所有表單,如果沒有,則添加一個模塊,然後將所需的代碼添加到該模塊。 (可能同時創建代碼以撤消該操作是明智的,因此您可以實際維護代碼)。雖然提煉,你可以檢查表單是否已經有行動,並追加代碼,如果它存在。

總而言之,儘可能但困難。如果你想要一些步驟的指針,我可以給他們,但對於實施的重大問題,我會問一個單獨的問題。

+0

好的,我可以使用VBA訪問VBE對象並修改代碼。它在Excel中工作並且我已經完成了這項工作,但我並不認爲這是特別穩定的。和訪問是i.m.h.o.當然不是Excel的穩定...但它可能是一種可能性。無論如何謝謝。 – McWilliamsPete

+0

自己從來沒有遇到過任何不穩定。它確實需要獨佔訪問數據庫,但它只是一次性修改。但如前所述,我的意願是第一個(定期檢查公開表格的表格)。 –