在MS-Access中格式化动态报告

时间:2015-08-31 23:01:21

标签: vba ms-access access-vba

我对MS-Access有疑问。我正在根据用户的输入创建报告。因此,每次运行查询时都会创建一个新报告(因为输入可能会更改)。我想格式化我的报告,以便我可以轻松地将其导出而无需编辑很多内容。

我想要实现的目标是(除其他外)

  1. 将报告调整为A3 / A4,水平/垂直
  2. 重命名Auto_Title
  3. 边距/边框
  4. 列宽自动调整大小。
  5. 我确实找到了以下link但我在创建报告之前无法访问该报告。所以我不知所措。我使用acCmdNewObjectAutoReport函数创建报告。我应该采取不同的方法吗?

    现在我的解决方案是在创建单个报告后对其进行格式化,这很麻烦(有20多种可能的组合......因此要生成20个可能的报告)。

1 个答案:

答案 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