Vba 在不压缩的情况下退出MS Access,即使;“自动压缩”;设定
我们有许多带有“自动压缩”选项集的MS Access文件。 我想使用VBA打开一个文件并关闭它(或退出),而无需经历漫长的压缩过程。然而,我不想触及“自动压缩”选项,因为它需要对普通用户保持真实Vba 在不压缩的情况下退出MS Access,即使;“自动压缩”;设定,vba,ms-access,Vba,Ms Access,我们有许多带有“自动压缩”选项集的MS Access文件。 我想使用VBA打开一个文件并关闭它(或退出),而无需经历漫长的压缩过程。然而,我不想触及“自动压缩”选项,因为它需要对普通用户保持真实 是否可以使用VBA关闭文件并跳过压缩?您始终可以在关闭时禁用自动压缩并使用标记系统。创建一个通用标志,allowCompact为布尔值,并根据用户权限将标志设置为True,在窗体(可能是隐藏窗体)或始终保持打开的窗体的Close方法上,您可以检查是否设置了压缩标志,如果是,则使用代码()执行压缩,否则退
是否可以使用VBA关闭文件并跳过压缩?您始终可以在关闭时禁用自动压缩并使用标记系统。创建一个通用标志,allowCompact为布尔值,并根据用户权限将标志设置为True,在窗体(可能是隐藏窗体)或始终保持打开的窗体的Close方法上,您可以检查是否设置了压缩标志,如果是,则使用代码()执行压缩,否则退出DB
'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
然后在首先打开的表单中(可能是登录表单)
希望这有帮助 感谢您建议使用自动打开的隐藏表单。我理解“通用旗”的概念?在Access中实现此功能的最佳方法是什么。作为自定义文档属性?(在Access2010菜单文件-信息-查看和编辑数据库属性-自定义)中)?或者有更好的方法来定义它吗?当我说“Universal Flag”时,我所说的是一个公共变量,正如我在示例编码中提到的。只是在一个标准模块中。这应该没问题。
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