以下に詳述するあなたの以前の例を見てきました。しかし、私には問題があります:
レポートと呼ばれるフォームのボタンから実行される私のコードは次のとおりです。
Dim dbs As Database
Dim qdf As QueryDef
Dim varitem As Variant
Set dbs = CurrentDb()
Set qdf = dbs.QueryDefs("Qry_rpt_cr")
qdf.Parameters(0) = Forms!frm_reports.rmselectfilter.Column(1, varitem)
qdf.Parameters(4) = Forms!frm_reports.rmselectperiod.Column(0, 0)
qdf.Parameters(3) = Forms!frm_reports.rmselectperiod.Column(0, 1)
qdf.Parameters(2) = Forms!frm_reports.rmselectperiod.Column(0, 2)
qdf.Parameters(1) = Forms!frm_reports.rmselectperiod.Column(0, 3)
Set grst = CurrentDb.OpenRecordset("Select * from Qry_rpt_cr")
DoCmd.OpenReport "rpt_cr_test", acPreview
grst.Close
Set grst = Nothing
End Sub
問題は、クエリに 5 つのパラメーターを渡す必要があることです。次に、定義されたパラメーターを使用してレコードセットを開き、レポートを開きます。しかし、コードが開きません。Set grst = CurrentDb.OpenRecordset("Select * from Qry_rpt_cr") 5 つのパラメーターを要求するこの行にエラーが表示されますが、コードの前半でそれらを渡しました。どんな提案も歓迎します。正解で寄付をするHAppy。ED
アーカイブの例 Access Web から、レコードセットの "name" プロパティを使用できます。結果のコードは次のようになります。
レポートでは
Private Sub Report_Open(Cancel As Integer)
Me.RecordSource = gMyRecordSet.Name
End Sub
呼び出しオブジェクト (モジュール、フォームなど) 内
Public gMyRecordSet As Recordset
'...
Public Sub callMyReport()
'...
Set gMyRecordSet = CurrentDb.OpenRecordset("Select * " & _
"from foo " & _
"where bar='yaddah'")
DoCmd.OpenReport "myReport", acViewPreview
'...
gMyRecordSet.Close
Set gMyRecordSet = Nothing
'...
End Sub