定义查询参数,然后将其用作报告源

问题描述 投票:0回答:2
a视图

view1

带有参数[年](当我打开薄视图访问时,请要求我一年)。
  1. 选择a,b,c从y = [年]

    a视图

    视图2

    从View1
  2. 选择A,B

    a报告Report1

    使用View2作为源

  3. 形式

    form1带有野外年

  4. Scenario:

    打开形式

    enter值年
  5. 按印刷

报告将自动从字段中获取值,并将参数传递给数据源视图2

    年度预览
  • 可以通过VBA管理这种情况?
  • 请注意,我知道:
  • select a, b, c from tab where y=[Form1]![YEAR]
  • 问题是我想将View1用作其他形式和其他报告的低级数据源。
  • update:
  • 我需要的是:

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

没有人知道一种将此记录集用作报告的记录集的方法?

将视图1作为参数查询 - 类似的内容。 

Set db = CurrentDb Set qdf = db.QueryDefs("View1") qdf.Parameters("[Year]") =2017 Set rst = qdf.OpenRecordset

请参阅此链接的方法,以使用报告中的记录集Http://access.mvps.org/access/reports/rpt0014.htm



明显您可以这样做

vba ms-access report
2个回答
0
投票

yes,您可以通过在调用OpenReport.
之前设置参数(通过DOCMD.SETPARAMETER)。

这里是一个演示: Sub RUNReportWithParams() 'Start report with previous set query parameters Dim AReportName As String AReportName = "REPORT1" 'Setting the parameters DoCmd.SetParameter "[PARAM_YEAR]", 2016 DoCmd.SetParameter "[PARAM_FIRMA]", 1 'Open report (the set params are recognized!) DoCmd.OpenReport AReportName, acViewPreview End Sub

bol:

Https://learn.microsoft.com/en-us/office/vba/api/access.docmd.setparameter

请注意,这必须发生

0
投票
EpenReport.

在report_open处理程序中添加setParameter做

not

工作。
	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.