我是 ms access 2013 中数据宏的新手,需要一些帮助。所以让我们假设我有一个只有一个用户表的简单数据库。当我更改表中的“年龄”字段时,我想运行一个外部 exe 文件(这就是为什么重要的原因)。所以我在最近几天学习了这个主题并最终得到了这个: 1. 我在 ms 访问中构建了一个名为 RunMiniFix 的模块(MiniFix 是我要运行的 exe 文件的名称)。该模块使用 ShellExecute 函数,整个模块如下所示:
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 访问中,我基于“If Then”语句构建了一个数据宏,询问 [Users]![Age] > x 是否,然后从调用 RunMiniFix 函数的操作目录中调用内置 RunCode 事件。现在,在保存数据宏时,ms access 会弹出一个消息框,提示 Microsoft access 无法找到我在短语中提到的名称“Users”,并建议我在表单中查找正确的控件。“表格”?是的,表格!这个数据库不是基于表格的。我从来没有设计过任何图形用户界面。我没有要处理的按钮或单击事件。我要问的是如何在修改 Age 字段时触发 RunMiniFix 模块。拜托,这很重要!
谢谢一个头,
奥伦