hatena
hatena
2025/01/29 (水) 15:13:32
引数の使い方が理解できたなら、
イベントプロシージャでCallで呼び出すのではなく、
フォームのデザインビューでイベントプロシージャに関数を設定して呼び出す方法も習得しておくといいでしょう。
Function PreviewReport(rptName As String)
Dim cuDt1 As Variant, cuDt2 As Variant, urDt1 As Variant, urDt2 As Variant
Dim stArgs1 As Variant, stArgs2 As Variant
cuDt1 = Me.[cb売上年月Fr] & "/01"
cuDt2 = CDate(Me.[cb売上年月To] & "/01")
cuDt2 = DateSerial(Year(cuDt2), Month(cuDt2) + 1, 0)
urDt1 = Me.[cb売上日付Fr]
urDt2 = Me.[cb売上日付To]
stArgs1 = "※指定期間: " & cuDt1 & "~" & cuDt2
stArgs2 = "★指定期間: " & urDt1 & "~" & urDt2
If IsNull(urDt2) Then
DoCmd.OpenReport rptName, acViewPreview, OpenArgs:=stArgs1
ElseIf Not IsNull(urDt2) Then
DoCmd.OpenReport rptName, acViewPreview, OpenArgs:=stArgs2
End If
End Function
SubをFunctionに変更しただけです。
フォームのデザインビューで「クリック時」プロパティに下記のように設定します。
=PreviewReport("●●●")
ボタン毎にイベントプロシージャを記述する必要がなく、Functionを作成しておけばフォームのデザインビューの設定で済みます。
私のはこの方法を多用してます。
通報 ...