我继承了一个Access数据库,用于在SQL中导入一些数据。 MDB以模式模式打开:不显示Access菜单栏或按钮。我可以使用Visual Studio的“数据连接”工具查看包含内容的表格,但是我看不到模块的代码。
我在这里看过这个question,但那里的答案并不是我真正需要的。有没有办法强制窗体关闭(并访问模块)或提取VBA代码?
[编辑]我正在使用Access 2007,不确定原始开发人员使用的是什么。
答案 0 :(得分:2)
打开数据库时按住shift键。这将阻止它加载正在运行的自动脚本,并允许您访问表,查询和VBA脚本。
答案 1 :(得分:0)
对于迈克尔·托德回应爱德软思的评论,这是一个相当长的补充或评论。
不是选择启用内容,而是检查启动选项(文件 - >>选项 - >当前数据库 - >显示形式)或(工具 - >启动 - >显示形式) )并删除表格的名称,记下,并确保勾选允许完整菜单(同一页面)。您可能还想按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
答案 2 :(得分:0)
使用功能关闭按钮:
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