我对MS-Access有疑问。我正在根据用户的输入创建报告。因此,每次运行查询时都会创建一个新报告(因为输入可能会更改)。我想格式化我的报告,以便我可以轻松地将其导出而无需编辑很多内容。
我想要实现的目标是(除其他外)
我确实找到了以下link但我在创建报告之前无法访问该报告。所以我不知所措。我使用acCmdNewObjectAutoReport
函数创建报告。我应该采取不同的方法吗?
现在我的解决方案是在创建单个报告后对其进行格式化,这很麻烦(有20多种可能的组合......因此要生成20个可能的报告)。
答案 0 :(得分:1)
查看VBA Printer Object。您需要在用户输入后动态设计报告以调整参数。添加条件if / then或select / case进行调整。
下面以隐藏模式在设计视图中打开报告:
DoCmd.OpenReport "reportName", acViewDesign, , , acHidden
With Reports("reportName").Printer
.TopMargin = 1440 '1 inch = 1 * 1440
.BottomMargin = 1440
.LeftMargin = 1440
.RightMargin = 1440
.ColumnSpacing = 360
.Orientation = acPRORLandscape 'or acPRORPortrait
.PaperSize = acPRPSA4 'or acPRPSA3
End With
'Adjust to AutoTitle's control name
Reports("reportName").LabelName.Caption = "New Title"
'Saves new design
DoCmd.Close acReport, "reportName", acSaveYes
'Prints report
DoCmd.OpenReport "reportName", acViewNormal