如何使用数据宏在vba中运行函数?

问题描述 投票:1回答:1

我是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文件正在运行。

  1. 在ms访问中,我基于'If Then'语句构建数据宏,询问[Users]![Age]> x,然后从调用RunMiniFix函数的动作目录中调用内置RunCode事件。现在,在保存数据宏时,ms访问会弹出一个消息框,说明Microsoft访问权限无法找到我在短语中提到的名称“Users”,并建议我在表单中查找正确的控件。 “表格”?是的,形式!此数据库不是基于表单的。我没有gui设计的东西。我没有按钮或点击事件来处理。我要问的是如何在修改Age字段时触发RunMiniFix模块。拜托,这非常重要! 谢谢你的头, 奥龙。
access-vba shellexecute ms-access-data-macro
1个回答
0
投票

请使用数据宏中操作列表中的SetLocalVar,并将表达式设置为函数名称。样品:

name: "test"
Expression: RunMiniFix()
© www.soinside.com 2019 - 2024. All rights reserved.