即使设置了“Auto Compact”,也可以在不压缩的情况下退出MS Access

时间:2014-08-27 09:04:17

标签: ms-access access-vba

我们有许多MS Access文件,其中设置了“Auto Compact”选项。 我想使用VBA打开一个文件并关闭它(或退出)而不经过长时间的压缩过程。但是,我不想触摸“Auto Compact”选项,因为它需要为普通用户保持True。

是否可以使用VBA关闭文件并跳过压缩?

1 个答案:

答案 0 :(得分:3)

您始终禁用关闭时自动紧凑并使用标记系统。创建一个通用标志,allowCompact As Boolean,并根据用户权限将Flag设置为True,并在Form(可能是隐藏的表单)或始终保持打开的表单的Close方法中,您可以检查Compact Flag是否已设置,如果是,则使用代码(http://access.mvps.org/access/general/gen0041.htm)执行压缩,否则只需退出数据库。

'In a Standard Module
Public allowCompact

'Code to perform AutoComapct
Public Sub CompactDB()
   CommandBars("Menu Bar"). _
   Controls("Tools"). _
   Controls("Database utilities"). _
   Controls("Compact and repair database..."). _
   accDoDefaultAction
End Sub

然后在首先打开的表单中(可能是登录表单)

Private Sub buttonName_Click()
    'Check the users permission
    If Me.permissionLevel <> "Manager" Then
        allowCompact = True
    Else
        allowCompact = False
    End If
End Sub

然后最后在最终形式的关闭事件中你可以使用。

Private Sub Form_Close(Cancel As Integer)
    If allowCompact Then _
        CompactDB
    Application.Quit
End Sub

希望这有帮助!