【发布时间】:2012-12-05 22:57:25
【问题描述】:
我正在使用 ADO 构建一个带有 MySQL 后端的 MS Access 2010 应用程序。到目前为止,我已经成功地将我的 ADO 记录集绑定和更新到表单。但是,我刚刚创建了第一个查询,其中包含两个带有 INNER JOIN 的表,当两个表都返回字段时,我无法更新返回的记录集。我能够成功绑定和更新第一个查询。
SELECT table_A.a, table_A.b
FROM table_A INNER JOIN table_B ON table_B.c = table_A.c;
但是,当我从 table_B 添加一个字段时,记录集不能再通过绑定表单进行更新。新的 MySQL 语句如下所示。
SELECT table_A.a, table_A.b, table_B.a
FROM table_A INNER JOIN table_B ON table_B.c = table_A.c;
我已经阅读了论坛,并且我的查询似乎没有受到阻止记录集可更新的常见问题的影响(即缺少主键、聚合函数、SELECT DISTINCT ......)。一些论坛建议我的问题可能与记录集之间的歧义有关,但我无法确认这一点,似乎这应该有效。非常感谢任何帮助。
【问题讨论】:
-
这是正确的 - 至少不是通过绑定表单。
-
经过进一步分析,只有当表单保持未绑定状态时,我才能更新 table_B 中的记录。如果我设置表单的记录集属性,我无法更新表单中的记录。理想情况下,我需要设置此属性,因为此表单是在数据表模式下查看的,并且使用未绑定的表单需要额外的时间。有谁知道上面的第二个 SQL 查询是否可以绑定到 Access 表单并从 Access 表单更新。谢谢。
-
最后,[Form].UniqueTable 解决了我的问题。