Microsoft Access 掲示板

実行時エラー2501が出る。 / 9

10 コメント
views
9
hiroton 2025/04/24 (木) 17:06:29 b2fe4@f966d

とりあえず回答例を載せておきます

    Dim reportName As String
    Dim rs As Recordset
    
    reportName = "R_Report"
    DoCmd.OpenReport reportName, acViewPreview, , , acHidden
    
    Set rs = CurrentDb.OpenRecordset(Reports(reportName).RecordSource, , acReadOnly)
    If rs.EOF Then
        DoCmd.Close acReport, reportName
    Else
        Reports(reportName).Visible = True
    End If
    rs.Close

※レポートの空データ時イベントは不要です

ここまでやるとなかなかめんどくさいですね。エラー処理がどういうものかきちんと理解できてるのであれば、空データ時イベント+エラー処理でもいいと思います


レポートのレコードソースをレポートとフォームのモジュール(VBA)2か所に記述することになると修正のときに困るので、結局レポートを一度開いてしまうことにしました
一度開いてしまうとレポートの表示が入るので最初は非表示で開いてから、データをチェックして表示するように

いろいろ考えてみると、いろいろ細かいことが多くてどこまで反映させるか悩みどころですね。「細かいこと」はバッサリカットです

通報 ...