在将查询参数用作报告的来源

时间:2017-03-10 16:57:22

标签: vba ms-access report

我有

  1. 带参数[年份]的视图 VIEW1 (当我打开精简视图访问时询问我年份)。

    从标签中选择a,b,c,其中y = [年]

  2. 视图 VIEW2

    从VIEW1

  3. 中选择a,b
  4. 使用VIEW2作为来源的报告 REPORT1

  5. 表单 FORM1 ,字段为YEAR

  6. 情景:

    • 打开表单
    • 输入值YEAR
    • 按PRINT
    • 报告将自动从字段中获取值并作为参数传递给数据源VIEW2
    • 打开年度预览

    是否可以通过VBA管理此方案?

    请注意我知道的方式:

    select a, b, c from tab where y=[Form1]![YEAR]
    

    问题是我想将VIEW1用作其他表单和其他报表的低级数据源。

    更新:我需要的是:

    Private Sub Report_Open(Cancel As Integer)
      Set db = CurrentDb
      Set qdf = db.QueryDefs("Anlage1_ken3")
      qdf.Parameters("[PARAM_YEAR]") = 2016
      qdf.Parameters("[PARAM_FIRMA]") = 1
      Set rst = qdf.OpenRecordset
      Me.RecordSource = rst 'I have an exception here
    End Sub
    

    是否有人知道将此记录集用作报告的RecordSource的方法?

1 个答案:

答案 0 :(得分:0)

使用View1作为参数查询 - 类似这样。

   Set db = CurrentDb
   Set qdf = db.QueryDefs("View1")

   qdf.Parameters("[Year]") =2017
   Set rst = qdf.OpenRecordset

有关在报告http://access.mvps.org/access/reports/rpt0014.htm

中使用记录集的方法,请参阅此链接

显然你可以这样做

Set Me.Recordset = qdf.OpenRecordset()