質問 |
||
| 質問者: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ファイルから一気にバッチで削除したいのですが、自分のパンチミスでしょうか。 |
| この回答へのお礼 | ありがとうございます。早速試してみます。 |