2012-06-30 100 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中工作。謝謝先生(或女士),我把我的帽子送給你。 –