ようこそ ゲスト さん、新規登録(無料)して気になる疑問を解決しませんか?

質問

質問者:UKUJIMA ACCESSの削除処理
困り度:
  • すぐに回答を!
AファイルとBファイルを電話番号で関連づけして関連づけされたBファイルのレコードを削除したいのですがACCESSのクエリ削除ではどうすればよいのでしょうか。AとBは1対1の関係です。
宜しくおねがいします。
質問投稿日時:07/08/06 15:28
質問番号:3232413
この質問に対する回答は締め切られました。
最新から表示回答順に表示良回答のみ表示

回答

 

回答者:x0000x 質問者さんの質問内容ではテーブル名、カラム名が例示されていません。

>パラメータ telnoを求める画面がでてきます。
#1さんのテーブル名、カラム名(電話番号)は、貴方の環境のテーブル名とカラム名に変更する必要があると思いますが…?
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:07/08/07 00:08
回答番号:No.3
この回答へのお礼自分の環境のテーブル名とカラム名に変更しているのに出てくるということは、正しく設定されていないということですね。
なんどもありがとうございます。

回答

良回答20pt

回答者:Husky2007 AとBが1対1で関連付けられたレコードならば、質問の通りならばBを全て削除。
ならば、

DELETE FROM B;

で事足ります。

そうでなくと、B独自のレコードは残すのであれば No1さんのやり方。
ただし、サブクエリが苦手であれば、かって知ったる DLookup関数でも。

DELETE *
FROM B
WHERE TEL=DLookup("TEL","A","TEL='" & TEL & "'");

フィールド:TEL
テーブル:B
レコードの削除:Where
抽出条件:DLookup("TEL","A","TEL='" & TEL & "'")

でも同じこと。

ただし、DLookup関数の実行速度はチト遅くなります。
No1さんの回答が3倍速だと思います。
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:07/08/06 16:06
回答番号:No.2
この回答への補足>AとBが1対1で関連付けられたレコードならば、質問の通りならばBを全て削除。
すいません 言葉たらずで、キーの対応は1対1ですが、BにはAにないデータがあります。
DLookup 知りませんでした。新たに知識を頂けありがとうございます。
この回答へのお礼削除クエリのフィールド:〜抽出条件に入力しているのですが、削除するレコードを含んだテーブルを指定してください。とでてきます。
入力している場所が違うのでしょうか。

回答

良回答10pt

回答者:kazuhisa01 SQL文ならこれでいけますが、クエリは苦手で・・・参考までに
DELETE FROM TABLE_B WHERE TABLE_B.TELNO = (SELECT TABLE_A.TELNO FROM TABLE_A,TABLE_B WHERE TABLE_A.TELNO = TABLE_B.TELNO)
種類:アドバイス
どんな人:一般人
自信:参考意見
回答日時:07/08/06 15:38
回答番号:No.1
この回答への補足パラメータ telnoを求める画面がでてきます。Aファイルに存在する電話をBファイルから一気にバッチで削除したいのですが、自分のパンチミスでしょうか。
この回答へのお礼ありがとうございます。早速試してみます。
 
最新から表示回答順に表示良回答のみ表示