我们有许多MS Access文件,其中设置了“Auto Compact”选项。 我想使用VBA打开一个文件并关闭它(或退出)而不经过长时间的压缩过程。但是,我不想触摸“Auto Compact”选项,因为它需要为普通用户保持True。
是否可以使用VBA关闭文件并跳过压缩?
答案 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
希望这有帮助!