如何从按钮向Access宏或子宏传递参数?
Access宏实现带参数的通用报表操作子宏
Access宏完全支持传递参数调用通用子宏,以下是具体实现步骤:
1. 创建带参数的通用子宏
- 打开宏设计视图,新建一个宏组(方便管理子宏)。
- 点击宏设计窗口顶部的「参数」按钮,添加一个参数,比如命名为
TargetReport,可设置提示文本(如「指定要操作的报表名称」)。 - 在子宏中添加
OpenReport操作:- 「报表名称」字段选择
[TargetReport](引用刚才定义的参数); - 根据需求设置「视图」属性:比如选「打印预览」对应「显示打印视图」按钮,选「打印」对应「打印报表」按钮。
- 如果要让子宏同时支持多种视图,可以再添加一个参数(如
ViewMode),把「视图」字段设置为[ViewMode],这样一个子宏就能适配不同按钮的需求。
- 「报表名称」字段选择
2. 窗体按钮调用子宏并传递参数
- 打开窗体设计视图,选中目标按钮,右键选择「属性」,切换到「事件」选项卡。
- 点击「单击」事件的下拉框,选择「宏生成器」,新建一个宏:
- 添加
RunMacro操作; - 「宏名」选择你的宏组名称+子宏名称(格式:
宏组名.子宏名); - 在「参数」区域,给
TargetReport赋值为目标报表的名称(注意加英文双引号,比如"销售报表");如果有ViewMode参数,对应赋值为「打印预览」或「打印」。
- 添加
注意事项
- 传递的报表名称必须是数据库中已存在的报表,否则会触发报错;
- 参数名称要和子宏中定义的完全一致(大小写不影响,但建议统一);
- 如果需要更灵活的控制,也可以在宏中添加
Condition条件,根据参数值执行不同操作。
内容的提问来源于stack exchange,提问作者Alan
相关产品推荐
相关产品推荐

