2010-08-31 70 views
1

我用MS Access数据库制作了一个软件,存储在Program Files中,我无法更改数据库中的数据,因为它保存在Program Files中。它在其他位置工作,但我需要Program Files中的数据库。如何更改程序文件中保存的ms访问数据库中的数据?

它说:“这个数据库已被打开为只读。”

有谁知道如何解决这个问题?

回答

2

使用Inno Setup创建Access数据库文件的安装,以便像David指出的那样安装用户应用程序数据文件夹。 Inno Setup第三方文件页面是非常有用的增强功能列表。我一直很高兴地使用ISTools来帮助创建安装程序。当您使用ms-access-2007标记您的问题时,您可以使用免费的Access运行时作为可执行部分。

Sample inno script which checks to see if a version of Access is installed.如果不是,它会告诉您安装Access的运行时版本。如果安装,它会继续安装您的FE MDE和其他各种文件。'

Sample inno script which "wraps" the package wizard install into a single .exe

Deploying updates to your software in a Runtime environment for Access 2007

2

默认情况下,程序文件夹对于用户级登录是只读的。你不说你的Windows版本,但对于Vista/Win7,这是一个问题。您必须将应用程序的快捷方式设置为以管理员身份运行,或更改文件夹的权限以允许写入权限(除非关闭Orwellian SIMPLE FILE SHARING,否则无法执行此操作)。

尽管将Access应用程序视为程序文件是合乎逻辑的,但Access模型会打破该逻辑模型,因为它必须是可写的。任何Access应用程序的唯一适当位置(实际上是Windows 2000以来)是%AppData%环境变量指向的文件夹。

+0

我现在明白了。从现在开始,每做一个安装工具包,应用程序将位于程序文件中,数据库位于应用程序数据文件夹中。谢谢 – DaJackal 2010-09-10 10:42:07

+0

不,这是错误的。您不能将Access应用程序MDB/ACCDB放入程序文件夹中,因为程序文件夹是只读的,并且前端MDB/ACCDB必须是可写的。您必须将前端和后端文件都放在用户的配置文件中。 – 2010-09-10 18:53:19

0

这可以通过设定[DIRS]文件夹,以允许读/赖特访问来完成

[DIRS] {应用}; Permissions:everyone-modify

说到这里,我同意大卫,你可能会考虑安装在不同的位置。

相关问题