我是ms access 2013中的數據宏的新手,需要一些幫助。所以我們假設我有一個簡單的數據庫,只有一個用戶表。 當我更改表中的「Age」字段時,我想運行一個外部exe文件(爲什麼dosent問題)。 所以我在最近幾天學習這個主題,並最終得到這個: 1.我在ms訪問中創建一個名爲RunMiniFix的模塊(MiniFix是我想運行的exe文件的名稱)。該模塊使用ShellExecute函數和整個模塊看起來像這樣:如何使用數據宏在vba中運行函數?
Option Compare Database
Const SW_SHOW = 1
Const SW_SHOWMAXIMIZED = 3
Public Declare Function ShellExecute Lib "Shell32.dll" Alias "ShellExecuteA"
(ByVal hwnd As Long, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
Optional ByVal nShowCmd As Long) As Long
Public Function RunMiniFix()
Dim RetVal As Long
On Error Resume Next
RetVal = ShellExecute(0, "open", "C:\Program Files\MiniFix\MiniFix.exe", "<arguments>", _
"<run in folder>", SW_SHOWMAXIMIZED)
End Function
現在,激活模塊時,一切都運行得很好,exe文件運行。
在MS Access,我建立基於一個一個數據宏 '如果則' 語句,詢問 如果[用戶]![年齡]> x和然後調用建設 - 在調用RunMiniFix函數的操作目錄中的RunCode事件中。 現在,當保存數據宏時,ms訪問會彈出一個消息框,指出Microsoft訪問沒有能力找到我在短語中提到的名稱「Users」,並建議我在表單中尋找正確的控件。 「表格」?是的,表格! 此數據庫不是基於表單的。我沒有gui設計過這樣的東西。我沒有按鈕或點擊事件來處理。 我問的是如何在年齡字段被修改時觸發RunMiniFix模塊。請,這是非常重要的!
謝謝你,
oron。
感謝您的哈桑幫了我很多。雖然我必須問,有沒有辦法在MS Access 2007中做到這一點? – oron
o.k,現在我有另一個問題了......我試圖在vb.net中使用winform應用程序更改訪問數據庫中的字段值。當字段在應用程序中改變時什麼都沒有發生。當我通過數據庫手動更改字段時,它會觸發該函數。爲什麼是這樣的,我該如何解決它?非常感謝! – oron