Access 2010のフォームオブジェクトから一部のVBAコードでレポートオブジェクトを参照しようとしています。レポートでは、Reports![report name]
という構文を使用して、 "report_name"ですが、これはフォームコード内では機能していないようです。フォームからレポートを参照する方法
私の質問は次のとおりです。フォームオブジェクトのVBAコード内からレポートオブジェクトを参照するにはどうすればよいですか?
Access 2010のフォームオブジェクトから一部のVBAコードでレポートオブジェクトを参照しようとしています。レポートでは、Reports![report name]
という構文を使用して、 "report_name"ですが、これはフォームコード内では機能していないようです。フォームからレポートを参照する方法
私の質問は次のとおりです。フォームオブジェクトのVBAコード内からレポートオブジェクトを参照するにはどうすればよいですか?
私のフォーム上のコマンドボタンのクリックイベントのコードです。 rptFooという名前のレポートを開き、その名前のプロパティを取得するために開いているフォームを参照し、その名前をイミディエイトウィンドウにDebug.Print
として参照します。
Private Sub cmdReferenceReport_Click()
DoCmd.OpenReport "rptFoo", acViewPreview
Debug.Print Reports!rptFoo.name '<- view this in Immediate window; Ctrl+g will take you there
End Sub
は、ここでそれを行うための別の方法です。文字列変数(というよりも、あなたのコード内に持っているように文字列リテラル)としてレポート名を渡すとき
Private Sub cmdReferenceReport_Click()
DoCmd.OpenReport "rptFoo", acViewPreview
Dim rpt As Report
Set rpt = Reports!rptFoo
Debug.Print rpt.name
Set rpt = Nothing
End Sub
もう一度ありがとうございます。あなたの記事は今日私にとって非常に役立ちます。 – rohrl77
@HansUpは、私は、ランタイムエラー2451を受け取る - 「あなたが入力したレポート名 『REPORTNAME』のスペルが間違っています開いていない、または存在していないレポートを参照しています」。 OPのように、私もMS Access 2010を使用しています。
レポート名の文字列変数を使用してフォームからレポートを参照する私のソリューションは、かっこの構文を使用しています:
!例:それはすでに開いている場合はレポート[レポート名]は唯一の目的のレポートを参照してくださいますよう
Public Sub Set_Report_RecordSource(reportName As String, datasourceQueryName As String)
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Purpose: Sets a report's recordsource programmatically. Especially useful
' for a report that is used by many forms.
' Params:
' reportName = Report whose RecordSource needs to be set.
' datasourceQueryName = The query name that will return records to display
' by the specified report (reportName).
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
DoCmd.OpenReport reportName:=reportName, View:=acViewDesign
Reports(reportName).RecordSource = datasourceQueryName
DoCmd.Close ObjectType:=acReport, ObjectName:=reportName, Save:=acSaveYes
End Sub
レポートコレクションは、のみOPENレポートが含まれています。 AllFormsコレクションを使用して未開封レポートを参照することはできますが、開封済みレポートを使用して同じことを行うことはできません。 –