【问题标题】:define query parameter before using it as source for a report在将查询参数用作报告源之前定义查询参数
【发布时间】:2017-03-10 16:57:21
【问题描述】:

我有

  1. 带有参数 [YEAR] 的视图 VIEW1(当我打开瘦视图时,访问会询问我的年份)。

    从选项卡中选择 a、b、c,其中 y=[YEAR]

  2. 视图VIEW2

    从 VIEW1 中选择 a、b

  3. 使用 VIEW2 作为来源的报告 REPORT1

  4. 带有字段 YEAR 的表单 FORM1

场景:

  • 打开表单
  • 输入值 YEAR
  • 按打印
  • 报告将自动从字段中获取值并作为参数传递给数据源 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 吗?

【问题讨论】:

    标签: vba ms-access report


    【解决方案1】:

    使用您的 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()
    

    【讨论】:

    • 非常感谢。这看起来是我需要的。那么我应该将 rst 定义为报告源吗?正确的?我应该将此代码放在哪个报告的事件处理程序中?
    • 谢谢。一切都很清楚,但它不能用参数解决我的任务。不允许将结果集设置为记录源。更准确地说:它只允许在 ADP 项目中使用。
    • 尝试我刚刚添加的其他方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 2023-03-17
    • 2014-11-02
    • 1970-01-01
    相关资源
    最近更新 更多