以下是一些建议(其中一些我从上面的评论中重复):
Alt-F11 不是我打开 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