【发布时间】:2023-03-25 00:41:01
【问题描述】:
我有一个 Access 网络数据库
- 在这个数据库中,我有一个带有按钮的 Web 表单
- 在其点击事件宏中,它调用成功触发的
RunMacro Macro1(客户端宏) - 在 Macro1 中,如果我调用
RunCode Function Name: DoTest()它会返回错误:“您输入的函数不能在此表达式中使用... 错误号 2426(如果前面有“=”符号,则为 2950我的功能)
通过执行以下步骤很容易重现此问题:
- 在 MS Access 中创建一个空白的 web 数据库
- 添加并保存表格
- 从该表创建一个默认表单并在其上放置一个按钮
-
创建一个新的 VBA 模块“Module1”并在其中放入以下函数:
Public Function DoTest() MsgBox "Test function runs smoothly" End Function - 使用
RunCode: Function Name: DoTest()创建一个客户端宏“Macro1”(请注意,IntelliSense 可以识别该宏,并且可以从这里正常运行) - 创建表单按钮的点击宏事件
RunMacro: Macro Name: Macro1 - 单击表单视图中的表单按钮接收错误:
您输入的函数不能用于此表达式。
- 您可能在 表达。
- 您可能在设计网格或计算控件或字段中使用了聚合函数,例如 Count。
单击“确定”会显示错误号 2426 或 2950,具体取决于您的函数名称前是否有等号在客户端宏的 RunCode 命令中。
我已经尝试了very similar question 中的所有提示,但没有任何运气。 Access 似乎发现函数很好,因为用乱码替换函数名会产生非常不同的错误。
我到底做错了什么?
在使用发布到 SharePoint 2010 的 Access Services 的实际 Web 数据库中,我在表单按钮的单击事件上使用了 If IsClient() Then 宏语句来确保 VBA 仅在客户端模式下运行,但这不是与我收到的错误相关。
【问题讨论】:
标签: vba ms-access-2010