Microsoft Access 掲示板

レポートを開くプロシージャについて / 1

5 コメント
views
1

各ボタンのコードがレポートのみの異なるだけであとは同じなので、一つのプロシージャにまとめたいということでしょうか。

レポート名は引数で渡せばいいでしょう。「引数ってなに?」というレベルなら下記あたりを参照してください。

第29話「引数と戻り値ってなに?」1/4:引数とは…?|VBAとの出会い編|VBAエキスパートコラム

フォームモジュール

Sub 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 Sub

Private Sub コマンド1_Click()
    Call PreviewReport("●●●")
End Sub

ご自身のコードと見比べればどこが変更されてるか一目だとおもいます。

通報 ...