关闭Access中的模式化表单和访问模块代码

问题描述 投票:1回答:3

我继承了一个Access数据库,用来导入SQL中的一些数据。MDB以模态模式打开了一个表格:没有看到Access菜单栏或按钮。我可以通过Visual Studio的 "数据连接 "工具查看带有内容的表格,但我无法看到模块的代码。

我看了这个 疑问 这里,但那里的答案并不是我真正需要的。有没有办法强制关闭表单(并访问模块)或提取VBA代码?

EDIT]我用的是Access 2007,不知道原来的开发者用的是什么。

ms-access extract access-vba
3个回答
2
投票

当你打开数据库时,按住shift键。这将防止它加载正在运行的自动脚本,并允许你获得对表、查询和VBA脚本的访问。


0
投票

这是一个比较长的补充,或者说是对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

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
© www.soinside.com 2019 - 2024. All rights reserved.