2012-06-30 41 views
1

我有MS Access查询产生正确的记录结果,但Access拒绝运行查询作为删除查询?
任何人都可以帮助我重写这个查询在访问中运行。MS Access删除查询

Delete Table_A.* 
FROM (SELECT Table_A.Main_RecID, Table_A.Fld_Unique_ID, Table_A.Actiontaken FROM Table_A 
WHERE Table_A.Actiontaken="MainRecord deleted") AS Tmp_B 
LEFT JOIN Table_A ON Tmp_B.Main_RecID=Table_A.Main_Recid 
WHERE (((Table_A.Actiontaken)<>"MainRecord deleted")); 

如果“删除”被选择替换或我要求数据表视图查询产生我所期望的。这是表中具有与Actiontaken field =“MainRecord deleted”相同的Main_RecID但没有其Actiontaken字段等于“MainRecord deleted”的记录的列表。

访问响应消息“无法从指定的表中删除”。

回答

0

我开始与这个数据Table_A ...

Fld_Unique_ID Main_RecID Actiontaken 
      1   1 MainRecord deleted 
      2   1 
      3   2 MainRecord deleted 
      4   2 something else 
      5   3 something else 

Actiontaken是在第二排(其中Fld_Unique_ID = 2)空。

执行下面的DELETE语句将此数据留在表中。

Fld_Unique_ID Main_RecID Actiontaken 
      1   1 MainRecord deleted 
      3   2 MainRecord deleted 
      5   3 something else 
DELETE 
FROM Table_A 
WHERE 
    (
      Actiontaken<>'MainRecord deleted' 
     OR Actiontaken Is Null 
    ) 
    AND 
    (
     DCount("*", "Table_A", 
      "Main_RecID = " & Main_RecID 
      & " AND Actiontaken='MainRecord deleted'") > 0 
    ); 

如果不是你以后,请告诉我们之前和之后DELETE样本数据。

+0

这就是我要找的。对不起,我一直参与的延迟响应。当我第一次看到这个查询时,我立即说这不是我想要的,但它在Access中工作。谢谢先生(或女士),我把我的帽子送给你。 –