在我的数据库(Access 2013,.accdw)中,我正在检查Form_Open事件中用户的当前版本。如果它不是最新的,它会触发一个外部命令来下载一个新副本,然后应该关闭它以允许更新。问题是,在触发Application.Quit后,访问会关闭,但会立即重新打开,阻止下载。我已经删除了所有可以解决问题的代码。
If 1 = 1 Then
Application.Quit
End If
简化到目前为止,对吗?一旦表单打开,它应该始终关闭。将此作为我的Form_Open事件中唯一的代码,它是表单中唯一的代码,它仍然会关闭,重新打开,然后再次关闭。 Docmd.Quit也有同样的效果。我尝试了太多的变种来枚举。在一个按钮这个代码工作正常,但我需要它在加载任何数据之前运行检查(链接表可能会在我们更改版本时被更改)。 任何想法如何让它在第一次关闭时保持关闭状态?
答案 0 :(得分:1)
我认为它会重新打开,因为您的外部代码(.bat文件?)会重新打开它。它不是Access问题。您是否检查过 Access自动客户端部署所能找到的众多工具?这是我发现的前2个:
How to force case sensitive table names?
http://www.databasejournal.com/features/msaccess/article.php/3286111/Automatically-Deploy-a-New-Access-Client.htm
答案 1 :(得分:1)
您的代码在Form_Open()中适用于我,但这是Access 2010而没有Sharepoint。
Creating an AutoExec macro调用执行版本检查的初始化函数,而不是自动打开表单,可能会有更好的运气。
如果版本检查正常,则从函数中打开您的开始表单。
答案 2 :(得分:0)
简单的解决方法是始终获取当前版本然后启动它。
这种方式没有模糊,用户总是运行最新版本。