Ms access 访问选择查询记录集不可更新

Ms access 访问选择查询记录集不可更新,ms-access,Ms Access,我有一个链接到Sql Server的Access 2010表单,我正在使用一个正确运行的选择查询,直到我添加了一个内部联接,然后字段变得无法更新(记录集不可更新)。这是我正在使用的查询,但无法选中字段“是”(这是一个复选框),如果我删除了内部联接,该查询将正常运行。列nm has中可以有多个名称,因此要获取最新名称,我正在使用与max的内部连接来提供最新名称,否则它将在nm列中显示两个名称 SELECT tblA.Reference TblA.Yes, TblA.Nm, TblA.PKID

我有一个链接到Sql Server的Access 2010表单,我正在使用一个正确运行的选择查询,直到我添加了一个内部联接,然后字段变得无法更新(记录集不可更新)。这是我正在使用的查询,但无法选中字段“是”(这是一个复选框),如果我删除了内部联接,该查询将正常运行。列nm has中可以有多个名称,因此要获取最新名称,我正在使用与max的内部连接来提供最新名称,否则它将在nm列中显示两个名称

SELECT tblA.Reference
 TblA.Yes,
 TblA.Nm,
 TblA.PKID
FROM TblA 

INNER JOIN (
SELECT 
Reference,
max(PKID) AS TRANID 
FROM TblA 
GROUP BY Reference)  AS TblB ON TblA.Reference = TblB.Reference AND 
TblA.PKID = TblB.TRANID)

WHERE TblA.Reference Like "*" & [forms]![NewPayments]![Combo1] & "*" AND 
TblA.Nm Like "*" & [forms]![NewPayments]![ClientName] & "*" AND 
TblA.Account Like "*" & [forms]![NewPayments]![ACN] & "*" AND 
TblA.Query Is Null ;

如果只想使用聚合来选择特定条目,可以使用
EXISTS
而不是
internaljoin
来保持查询的可更新性

SELECT tblA.Reference
 TblA.Yes,
 TblA.Nm,
 TblA.PKID
FROM TblA 
WHERE EXISTS (
    SELECT 1
    FROM TblA As TblB
    WHERE TblA.Reference = TblB.Reference
    HAVING TblA.PKID = max(TblB.PKID)
) AND TblA.Reference Like "*" & [forms]![NewPayments]![Combo1] & "*" AND 
TblA.Nm Like "*" & [forms]![NewPayments]![ClientName] & "*" AND 
TblA.Account Like "*" & [forms]![NewPayments]![ACN] & "*" AND 
TblA.Query Is Null ;

我已经读了一些关于这方面的文章,但是经过几个小时的努力,我仍然无法得到我的结果,这是否意味着我所尝试的是不可能的?谢谢你。。。你还没有告诉我们你想做什么。我们无法神奇地使此查询可更新,不。但是您没有从TblB中选择任何内容,所以我不知道您为什么在那里。很抱歉没有解释,列NM可以有一个以上的名称,以便得到最新的名称,我使用Max的内部连接来给我最新的名称,否则它将在NM列中显示两个名称。那就不会是复制品了。非常感谢你!再次抱歉,我的问题不清楚!