如何更改MS Access中VBA自动生成报表的默认页面方向?
Access自动生成报表页面方向调整方案
你当前通过acCmdNewObjectAutoReport生成的自动报表默认采用横向布局,可通过以下两种方案调整为目标纵向效果,按需选择即可。
方案1:追加VBA代码,动态调整生成报表的方向(适配现有代码,无全局改动)
该方案不需要修改Access全局配置,直接在你现有报表生成代码后追加页面设置逻辑即可,代码兼容性最好,移植到其他设备也能直接运行。
修改后的完整代码如下:
' 原有报表生成逻辑保留 DoCmd.OpenQuery "DATA", acViewPreview DoCmd.SelectObject acQuery, "DATA" RunCommand acCmdNewObjectAutoReport DoCmd.Close acQuery, "DATA" ' 新增:调整新建报表的页面方向为纵向 Dim currentReport As Report Set currentReport = Screen.ActiveReport ' 切换至设计视图修改页面配置 DoCmd.OpenReport currentReport.Name, acViewDesign ' 设置页面方向:acPRORPortrait为纵向,acPRORLandscape为横向 currentReport.Printer.Orientation = acPRORPortrait ' 可选:根据目标效果自定义页边距,数值单位为缇(1英寸=1440缇) With currentReport.Printer .TopMargin = 1440 * 0.5 .BottomMargin = 1440 * 0.5 .LeftMargin = 1440 * 0.6 .RightMargin = 1440 * 0.6 End With ' 切换回报表预览视图查看最终效果 DoCmd.OpenReport currentReport.Name, acViewPreview
方案2:修改自动报表默认模板,一劳永逸配置全局默认效果
如果需要所有自动生成的报表默认都用纵向布局,可以直接替换Access内置的自动报表模板:
- 新建一个空白报表,进入设计视图
- 在页面设置里将方向改为纵向,按需调整页边距、默认字体、控件排版样式
- 将该报表命名为
AutoReport后保存 - 后续所有通过
acCmdNewObjectAutoReport生成的报表,都会默认套用该模板的配置,无需额外写代码调整方向。
注意:如果运行VBA代码时提示权限错误,请进入Access信任中心设置,启用宏内容即可正常执行页面配置操作。
内容的提问来源于stack exchange,提问作者TwarogSzatana
相关产品推荐
相关产品推荐

