【问题标题】:Make the front-end part of an access database read-only将 access 数据库的前端部分设为只读
【发布时间】:2020-06-22 09:43:55
【问题描述】:

我创建了一个 Access 数据库,它分为前端和后端。前端由一个表单和一些与单独文件中的后端部分通信的 VBA 组成。这两个文件都存在于网络共享中,用户正在打开前端以与后端进行通信。 (可以同时多个。)

现在我了解到拆分数据库允许多个用户同时与其通信。后端文件似乎保持得很好。然而,我遇到了前端部分现在中断了两次,因为它“处于不一致的状态”(即使它不包含单个表)。

我已经将前端导出为 accde 文件,假设它将成为某种可执行文件,但文件的最后更改信息会随着新的时间和用户而更新。作为最后的手段,我在文件上设置了只读标志。这阻止了文件的破坏,但现在我收到了很多来自用户的问题,告诉我数据库已变为只读。

Access 将前端称为数据库,而后端仍然是可写的,并且表单可以正常工作。

我在Deploying access database to program files without Read only warnings? 中读到访问需要对前端的写访问权限来更新 UI 对象的状态?真的吗?这种设置最终也会失败吗?

ms-access: breaking up front and back end 还提到用户应该有自己的前端版本。但是有大量的变化用户,所以我更喜欢网络共享的方法。

理想的解决方案是创建一个无法更改的小型应用程序,并且用户不会面临这些不必要的警告。这样的事情可能吗?

【问题讨论】:

    标签: ms-access


    【解决方案1】:

    是的,遗憾的是,该警告信息是不可避免的。

    您可以做的是从运行脚本的快捷方式启动应用程序,作为第一步,该脚本会用新副本覆盖当前的本地前端,从而覆盖用户可能所做的任何更改。接下来,将前端作为 runtime 运行。

    我的文章中描述了一种使用VBScript文件的方法:

    Deploy and update a Microsoft Access application with one click

    【讨论】:

    • 嗯,错失了微软的机会……选择创建一个不可变的前端似乎很有意义。我会看看我有哪些本地部署的可能性。可能是你的 VBA,但 IMO 一个包含几行的批处理文件也应该这样做。
    • 我放弃了批处理文件,更喜欢 PowerShell。但我几乎所有的构建块都是 VBScript。
    猜你喜欢
    • 2010-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-05
    • 1970-01-01
    • 2016-07-26
    • 2011-09-26
    • 1970-01-01
    • 2019-03-20
    相关资源
    最近更新 更多