1

MS Access で正しいレコード結果を生成するクエリがありますが、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 フィールド = "MainRecord deleted" のレコードと同じ Main_RecID を持つが、Actiontaken フィールドが "MainRecord deleted" に等しいテーブル内のレコードのリストです。

Access は、「指定されたテーブルから削除できませんでした」というメッセージで応答します。

4

1 に答える 1

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

NoteActiontakenは 2 行目に Null です (ここで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

于 2012-07-01T04:12:46.337 に答える