【问题标题】:Formatting of Dynamic Reports in MS-AccessMS-Access 中动态报告的格式
【发布时间】:2015-09-01 10:42:19
【问题描述】:

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

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

  1. 将报告大小调整为 A3/A4、水平/垂直
  2. 重命名 Auto_Title
  3. 边距/边框
  4. 列宽自动调整大小。

我确实找到了以下link 但在创建报告之前我无权访问它。所以我很茫然。我使用acCmdNewObjectAutoReport 函数创建报告。我应该采取不同的方法吗?

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

【问题讨论】:

    标签: ms-access vba


    【解决方案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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-02
      • 2011-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多