0

我正在维护一个应用程序,它使用访问 mdb 文件作为 SQL Server 的前端,使用 odbc 链接表。

我想让 mdb 文件只读(否则文件会随着用户使用它而不断增长,并且偶尔会出现一些与数据无关但与访问应用程序有关的奇怪锁定错误)。

由于所有数据都在 sql 中,因此即使我将 mdb 文件设置为只读,应用程序也应该可以正常工作,实际上它在大多数情况下都可以工作,除了......

应用程序的一部分使用 DoCmd.TransferText 将各种文本文件导入到各种表中。如果 mdb 文件是只读的,我会收到运行时错误 3051 错误“Microsoft Access 数据库引擎无法打开或写入文件......它已被其他用户以独占方式打开,或者您需要查看和写入其数据的权限”。

我看不出这个错误的任何原因,因为我没有将任何数据写入 mdb 文件本身。(我还注意到在“外部数据”功能区中所有的“导入”按钮都是灰色的)。

有什么建议么?

谢谢你

4

1 回答 1

2

由于所有数据都在 sql 中,因此即使我将 mdb 文件设为只读,应用程序也应该可以正常工作

不必要。您将 .mdb 文件用作应用程序,因此它可能需要更新 .mdb 文件中的本地临时表或其他对象。

此外,如果您使用的是 .mdb 前端,则必须为每个用户提供自己的该文件的本地副本,因此文件膨胀本质上不是问题,您可以让用户对本地文件具有写入权限。

于 2013-09-02T18:16:19.420 回答