ここにいくつかの提案があります(そのうちのいくつかは私が上で行ったコメントから繰り返しています):
Alt-F11は、通常はイミディエイトWindowsに移動したいので、VBEを開く通常の方法ではありません。代わりに、Ctrl-Gを試してください。
Alt-F11とCtrl-Gの両方でVBEを開くことができない場合は、データベースのAllowBypassKeyプロパティがFalseに変更されている可能性があります。これを変更するコードを取得するには、AccessヘルプファイルでAllowBypassKeyを検索します(VBEで、ヘルプメニューから「AllowBypassKey」を検索します)。ただし、AllowBypassKeyがオフになっている場合、調査しようとしているデータベース内でコードを実行することはできないため、次のコードを実行できます。
//
On Error GoTo Change_Err
Dim db As DAO.Database
Dim prp As Variant
Const conPropNotFoundError = 3270
Set db = DBEngine.OpenDatabase("C:\Databases\MyDatabase.mdb")
db.Properties("AllowBypassProperty") = True
exitRoutine:
If Not (db Is Nothing) Then
db.Close
Set db = Nothing
End If
Exit Sub
errHandler:
If Err = conPropNotFoundError Then ' Property not found.
' do nothing and exit
Resume exitRoutine
End If
次に、Shiftキーを押したときにデータベースを開くことができるはずです(これにより、VBEへのアクセスが遮断された可能性のある定義済みの起動ルーチンがバイパスされます)。
MDEの場合(ファイルには任意の拡張子を付けることができます)、これは「T」を返します。MDEでない場合は、エラーがスローされます(プロパティが存在しないため)。
- 他に確認する必要があるのは、モジュールの数です。データベースを開いていて、イミディエイトウィンドウ(Ctrl-G)にアクセスできる場合は、モジュールがあるかどうかがわかります。
//
?CurrentProject.AllModules.Count
また、VBE(F2)でオブジェクトブラウザを開き、上部のドロップダウンでプロジェクト名を選択することで、データベースの内容を確認できる場合があります(デフォルトでは「」と表示されます)。
最後に、Jet ULSで保護できると思うかもしれませんが、Access 2000以降では、利用可能なVBAプロジェクトにはパスワードしか存在しないため(つまり、Jet ULSではカバーされなくなったため)、それは大きな可能性ではありません。 。パスワードで保護されている場合は、どこかでパスワードの入力を求められるので、すでに知っていると思います。