使用ADO访问2010 / MySQL后端 - 查询记录集不可更新

时间:2012-12-05 22:57:26

标签: mysql ms-access ado

我正在使用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,......)。一些论坛建议我的问题可能与记录集之间的模糊性有关,但我无法证实这一点,看起来这应该有效。非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

试试这个:

SELECT table_A.a, table_A.b, CONCAT(table_B.a, '') FROM table_A LEFT JOIN table_B ON table_B.c = table_A.c;

答案 1 :(得分:0)

在第一个查询中,显示/检索的记录集属于单个表,因此可以更新。但是在第二个查询中,记录集作为两个表(列属于2个表)的连接而检索,因此无法直接更新。

为了根据另一个表中的数据更新某些数据,您可以使用以下查询

更新Table_A,Table_B设置Table_A.a = Table_B.a,其中Table_A.b = Table_B.b