You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何更改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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 11:01:07