MS Access 2007 - 导入表格后,记录集不再可更新

问题描述:

我们在我工作的公司内部有一个内部程序,在MS Access内部,我们将所有表格链接到我们的三个数据库。然而;为了为学生创建新的路线,有人需要我们的程序的单独副本来处理,而不会影响实际的数据库。MS Access 2007 - 导入表格后,记录集不再可更新

删除链接表后,将它们全部导入到本地,并保存.mdb后,我无法再更改大多数表单中的值。例如:

会出现一个下拉菜单,其中列出了学生可能的路线代码。通常你可以选择一个。你不再能够,并且在左下角看到“这个记录集不可更新”。

我对此有点新,但我无法想象为什么导入表会破坏任何东西。我不希望发生任何关键违规行为(就像我在链接表时可能会发生的那样)或任何此类性质。如果任何人都可以指出我正确的方向,将不胜感激!谢谢!

+0

因此,您有一个后端数据库为3个前端数据库提供表,并且您复制了其中一个前端并将所有后端表导入到前端的本地副本中? –

+0

检查权限问题,并确保这些表保留其主键。有没有可以锁定窗体/控件的VBA(代码)? Locked = True在该组合框的属性中?允许编辑? –

+0

当您在本地导入表时,您是否添加了主键? – mellamokb

访问可以处理链接表或视图上的复合主键。当然,重要的是要确保你告诉访问权使用正确的领域。在链接到视图时,Access不会获取主键信息(可能ODBC驱动程序不会传递该信息?),但我敢打赌它也可能发生在表上。 不确定这些照片是否会有所帮助,但希望它能指引您朝着正确的方向发展。这里有一个链接视图,你可以在这个图片中看到:

enter image description here

如果您在设计视图中打开它,你可以看到有没有主键:

enter image description here

这意味着表是不可编辑的(在添加新的按钮是灰色):

enter image description here

于是我运行此命令告诉访问使用复合主键的链接视图:

CurrentDb.Execute "Create Unique Index PrimaryKey On View_AssnsWithSorterField([Serial No], AssignmentDate)" 

如果您再次打开在设计视图链接视图,可以看到复合主键:

enter image description here

现在出现添加新按钮。

enter image description here

你说,你尝试添加复合主键,但访问不会允许它,这听起来像有一些关于表的数据或结构,防止它使用该密钥。如何在后端数据库中创建表的空副本,然后尝试链接到该数据库?如果这仍然不起作用,那么表中可能存在一个唯一约束,或触发器或其他内容,导致Access不希望使其更新。相反,如果链接正常并且您可以在链接的空白测试表中添加/编辑记录,那么它必须是数据在导致问题的实际表中。 有时,如果您将表的副本分割成更小的块(比如可能只是从主键列开始),逐渐重建它,最终会导致Access不让其可更新。

另一种可能性当然是驾驶员本身的问题。链接到SQLServer和Oracle的ODBC驱动程序质量好,可以处理复杂的主键,但我使用了连接到隐藏数据库的垃圾驱动程序,并且它们无法处理像子查询,联合查询等复杂的事情,即使您可以在数据库本身做这些事情;该驱动程序只写入处理基本的选择/插入/更新/删除,就是这样。