モジュールとフォームにVBA行数を追加することにより、ドキュメントデータベースに対して作成したレポートを改善しようとしています。次のコードは、標準モジュールで完全に機能します。
Sub test()
    Dim accObj As AccessObject, bwasOpen As Boolean, objName As String
    objName = "Form1"
    Set accObj = CurrentProject.AllForms(objName)
    bwasOpen = accObj.IsLoaded
    If Not bwasOpen Then
        DoCmd.OpenForm objName, acDesign, WindowMode:=acHidden
    End If
    If Forms(objName).HasModule Then
        DoCmd.OpenModule "Form_" & objName
        Debug.Print Modules("Form_" & objName).CountOfLines
    End If
    If Not bwasOpen Then
        DoCmd.Close acForm, objName, acSaveNo
    End If
End Sub
しかし、レポート自体で同様のコードを使用すると、エラーが発生します。そして、そのエラーはクラスモジュール(レポート)で発生しているので、デバッグに少し行き詰まっているように感じます。レポートのコード:
    Set accObj = CurrentProject.AllForms(objName)
    bwasOpen = accObj.IsLoaded
    If Not bwasOpen Then
        DoCmd.OpenForm objName, acDesign, WindowMode:=acHidden  'Breaks here
    End If
    If Forms(objName).HasModule Then
        DoCmd.OpenModule "Form_" & objName
        GetExtraInfo = Modules("Form_" & objName).CountOfLines
    End If
    If Not bwasOpen Then
        DoCmd.Close acForm, objName, acSaveNo
    End If
コードは、= GetExtraInfo()を使用してレポートコントロールから呼び出されます。フォームのCountOfLinesを返したいこの新しい部分を除いて、すべてがうまく機能します。
更新:エラートラップを追加しましたが、エラーが発生します:
2486-現在、このアクションを実行できません
db全体をここからダウンロードできます。たった300KBです。レポートの名前は「rptObjList」です。「悪い」コードはコメントアウトされています。これはAccess2003データベースです。
ご協力いただきありがとうございます。