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

使用ADO访问2010/MySQL后端-查询记录集不可更新,mysql,ms-access,ado,Mysql,Ms Access,Ado,我正在使用ADO构建一个带有MySQL后端的MS Access 2010应用程序。到目前为止,我已经成功地将ADO记录集绑定并更新到表单。但是,我刚刚创建了第一个查询,它包含两个具有内部联接的表,当两个表都返回字段时,我无法更新返回的记录集。这是我能够成功绑定和更新的第一个查询 SELECT table_A.a, table_A.b FROM table_A INNER JOIN table_B ON table_B.c = table_A.c; 但是,当我从表_B添加字段时,记录集就不能再

我正在使用ADO构建一个带有MySQL后端的MS Access 2010应用程序。到目前为止,我已经成功地将ADO记录集绑定并更新到表单。但是,我刚刚创建了第一个查询,它包含两个具有内部联接的表,当两个表都返回字段时,我无法更新返回的记录集。这是我能够成功绑定和更新的第一个查询

SELECT table_A.a, table_A.b
FROM table_A INNER JOIN table_B ON table_B.c = table_A.c; 
但是,当我从表_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; 

我已经阅读了论坛,并且我的查询似乎没有出现妨碍记录集可更新的常见问题(例如,缺少主键、聚合函数、选择不同等)。一些论坛建议,我的问题可能与记录集之间的模糊性有关,但我无法确认这一点,似乎这应该有效。非常感谢您的帮助。

在第一次查询中,显示/检索的记录集属于单个表,因此可以对其进行更新。但是,与第二个查询一样,由于在两个表(列属于两个表)中联接而检索到的记录集无法直接更新

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

更新表格A,表格B设置表格A.A=表格B.A,其中表格A.B=表格B.B

尝试以下操作:

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;

这是正确的-至少不是通过绑定表单。经过进一步分析,我能够更新表_B中的记录,前提是表单保持未绑定状态。如果设置了窗体的recordset属性,则无法更新窗体中的记录。理想情况下,我需要设置此属性,因为此表单是在数据表模式下查看的,使用未绑定表单需要额外的时间。有人知道上面的第二个SQL查询是否可以绑定到Access表单并从中更新吗。谢谢。最后,[Form]。UniqueTable解决了我的问题。