Access 不允许我查看对数据库所做的更改

Posted

技术标签:

【中文标题】Access 不允许我查看对数据库所做的更改【英文标题】:Access won't let me see the changes I've made to the database 【发布时间】:2009-09-09 19:11:59 【问题描述】:

我在 Vista 机器上的文件夹中存储了一个 MS-Access 数据库(是的,我为该文件夹设置了“修改”权限)。

从我的 .NET 应用程序 (VB2008) 我可以很好地查询数据库,并将记录添加到表中。当我重新运行应用程序时,添加的记录就在那里。

但是,如果我启动 Access (2000) 并打开数据库,我刚刚更改的表似乎没有添加新记录。

是否与 Vista 和 Access 2000 不兼容?

编辑: 当我在 XP 机器上的 Access 2003 中打开同一个数据库时,新记录显示得很好。

【问题讨论】:

顺便说一句:除了修改之外,您还需要在文件夹上创建权限集,以便 Access 可以创建它的锁定文件 (.ldb/.laccdb) 没有。如果包含 Access 数据库(.mdb 文件)的文件夹具有“所有人:修改”权限,则 Access 可以创建锁定文件 (.ldb)。这部分工作正常。 在 Microsoft 论坛上找到这个(可能与问题有关):...应用程序兼容性工具包的组件,包含 Microsoft Access 2000 在 Windows Vista 上运行的修复程序。一般来说,通过这样的修复,应用程序应该可以在 Windows Vista 上运行,但是缺少测试环境,我不确定修复后的 Microsoft Access 2000 是否一定可以无缝运行。 数据库是什么格式的?它应该是 Access 2000 格式,以便它可以与 A2K 一起使用。该格式也是 A2002 和 A2003 的默认格式。 【参考方案1】:

听起来确实很像您正在体验 Vista 虚拟化功能。 Vista 不允许您写入 C:\Program Files 文件夹(以及其他一些文件夹),它不会向您抛出错误,而是写入您的用户文件夹下的卷影副本。

要检查,请打开 .EXE 的属性并检查 XP 模式 + 以管理员身份运行。另请查看是否可以在 C:\Users\User_name\AppData\Local\VirtualStore 文件夹中找到影子

要修复,请尝试将您的数据定位到其他地方。

【讨论】:

亨克,你这个男人!这正是正在发生的事情。我将 MSACCESS.EXE 的属性更改为 XP 模式并以管理员身份运行。现在,当我启动 Access 然后打开我的数据库时,我可以看到我的 .NET 应用程序添加的记录。谢谢!!!!【参考方案2】:

查看记录数是否增加? 如果是这样,记录可能会进入那里并且由于索引,它可能不会出现在最后。

【讨论】:

不太清楚“可能不会出现在最后”是什么意思,但在 .NET 应用程序中,记录数会增加。在 Access 2000 中查看时,记录不显示(表中只有 4 条记录,因此在大量其他数据中不会被忽略)。 做一个“压缩和修复”,看看是否对你有帮助:) 使用“SELECT * FROM theTable”创建一个查询以查看它必须输出的内容。我不认为这应该是 Vista 的问题。 在 .NET 应用程序中,当我运行这个查询时,我得到了我的新记录。当我在 Vista 的 Access 2000 中对完全相同的文件运行相同的查询时,我没有得到我的新记录。当我在 Windows XP 的 Access 2003 中对完全相同的文件运行相同的查询时,我确实获得了新记录。为什么 Vista(或 Access 2000)不允许我查看对数据库所做的更改? 这太糟糕了。 MDB 文件是否在其他机器上的网络/共享驱动器上?【参考方案3】:

在您的 Access 表中,您使用的数据类型是否与 Access 2000 不兼容?

[我知道这不太可能,但正如他们(或多或少)所说的“绝望的问题需要绝望的答案”]

【讨论】:

我自己现在正处于“绝望”阶段:),但不,我只是存储字符串和整数(1 个字符串,2 个整数),并且我的所有数据类型在应用程序之间匹配和数据库。【参考方案4】:

我知道你似乎很确定从你对 gbn 的回答中得到的结果是同一个数据库,但是为了绝对确定,这个测试怎么样?

使用 Access 在 Access 中插入新记录并查看它们是否显示在应用程序中。

另一种可能性是它正在进入数据库,但您的应用正在从与您想象的不同的表中读取/写入。这也可以解释您所看到的不一致。

【讨论】:

我试过了,应用程序看到新记录没有问题。 我只有一张桌子,所以没有混淆。

以上是关于Access 不允许我查看对数据库所做的更改的主要内容,如果未能解决你的问题,请参考以下文章

如何在本地测试对 Jenkinsfile 所做的更改?

SQL Server 不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项

是否可以编写t-sql脚本来显示最近对数据库行所做的所有更改?

如何在本地存储 javascript 函数所做的 css 更改?

不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进行了更改或者启用了“阻止保存要求重新创建表的更改“选项。

SQL Server 不允许保存更改。您所做的更改要求删除并重新创建一下表。您对无法重新创建的表进行了更改或启用了“阻止保存要求重新创建表的更改”选项