我继承了一个Access数据库,用来导入SQL中的一些数据。MDB以模态模式打开了一个表格:没有看到Access菜单栏或按钮。我可以通过Visual Studio的 "数据连接 "工具查看带有内容的表格,但我无法看到模块的代码。
我看了这个 疑问 这里,但那里的答案并不是我真正需要的。有没有办法强制关闭表单(并访问模块)或提取VBA代码?
EDIT]我用的是Access 2007,不知道原来的开发者用的是什么。
当你打开数据库时,按住shift键。这将防止它加载正在运行的自动脚本,并允许你获得对表、查询和VBA脚本的访问。
这是一个比较长的补充,或者说是对Michael Todd针对edosoft的评论的回复的评论。
而不是选择启用内容,检查启动选项(无论是(文件->选项->当前数据库->显示表格)还是(工具->启动->显示表格)),并删除表格的名称,已经记下了,并确保 "允许完整菜单"(同页)被选中。你也可以按Alt+F11显示代码,并检查该启动代码,最后,看看是否有一个AutoRun宏,并重新命名。
编辑回复评论
你不必打开一个mdb来改变启动形式,例如,像这样的代码可以使用你想改变的mdb的全名和路径从另一个mdb运行。
Sub SetStartForm(DBFile As String)
Dim prp As Object
Dim db As Database
Const PROPERTY_NOT_FOUND As Integer = 3270
Set db = OpenDatabase(DBFile)
db.Properties("StartupForm") = "(none)"
If Err.Number > 0 Then
If Err.Number = PROPERTY_NOT_FOUND Then
'' Create the new property, but this is not relevant in this case
End If
End If
db.Close
Set db = Nothing
Set prp = Nothing
End Sub
按钮关闭与功能。
Private sub cmdClose_Click()
CloseForm(YourFormName)
End sub
Public Sub CloseForm(ByVal strFormName As String)
Dim iCounter As Integer
For Each frm In Forms
With frm
If (.Name = strFormName) Then
iCounter = iCounter + 1
End If
End With
Next
If (iCounter > 0) Then
For i = 1 To iCounter
DoCmd.Close acForm, strFormName, acSaveNo
Next
End If
End Sub