4

実行しようとしているコードは次のとおりです。

DELETE DISTINCTROW JHALL_REFERAL_ASSIGNMENTS.emp_id, JHALL_REFERAL_ASSIGNMENTS.ref_elem_id
FROM JHALL_REFERAL_ASSIGNMENTS
WHERE (((JHALL_REFERAL_ASSIGNMENTS.emp_id)=(select  b.emp_id from JHALL_REFERAL_ELEMENT a, JHALL_REFERAL_ASSIGNMENTS b, BSI_MARTS_D_EMPLOYEE c
    where C.FULL_NM = 'Employee'
    and A.REF_NAME ='Max Premium of 5,000'
    and A.REF_ELEM_ID = B.REF_ELEM_ID
    and B.emp_id = C.EMPLOYEE_KEY
)) AND ((JHALL_REFERAL_ASSIGNMENTS.ref_elem_id)=(select  a.ref_elem_id from   JHALL_REFERAL_ELEMENT a, JHALL_REFERAL_ASSIGNMENTS b, BSI_MARTS_D_EMPLOYEE c
    where C.FULL_NM = 'Employee'
    and A.REF_NAME ='Max Premium of 5,000'
    and A.REF_ELEM_ID = B.REF_ELEM_ID
    and B.emp_id = C.EMPLOYEE_KEY
  )));

Access でこれを実行しようとするたびに、エラー 3086、"指定されたテーブルから削除できません" が表示されます。オンラインで情報を検索しようとすると、[Unique Records] フィールドを [Yes] に変更する必要があるという解決策が何度も出てきますが、それで問題は解決しませんでした。Toad で同じコード (スキーマ名とテーブル名を.ではなく で区切る) を実行したところ、問題なく動作しました。_

4

6 に答える 6

9

これを含むいくつかの投稿を確認して、同様の削除を混乱させました。クエリを使用して、やや複雑な選択基準を、レコード削除の対象となるテーブルの一連の主キーに絞り込みました。

使用するまで、「指定されたテーブルから削除できませんでした」というエラーと「削除するレコードを含むテーブルを指定してください」というエラーが表示されました。

delete distinctrow [Target_Table].* 
from [Target_Table] 
inner join [Criteria_Query] 
on [Criteria_Query].Index_PK = [Target_Table].Index_PK
where ( [Criteria_Query].Index_PK = [Target_Table].Index_PK )
;

これはAccess 2013で機能しました。

于 2015-01-17T17:56:51.737 に答える
0

Visual Studio を実行するだけです (管理者として実行モードで)。

于 2016-02-09T11:57:02.040 に答える