ACCESS 削除クエリの使い方
ACCESSにはクエリという便利な機能があります。
クエリにはいくつかの種類があり、レコードを抽出する選択クエリが最も一般的ですが、それ以外にテーブルの内容を更新するアクションクエリというものも存在します。
今回はアクションクエリの1つであり、テーブルのレコードをすべて削除する削除クエリについてご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは使いこなすために少しスキルが必要なものの、うまく活用すればExcelよりも業務の効率化が図れます。
この記事ではACCESSの基本的な使い方をご紹介していきます。
削除クエリとは
削除クエリとは、指定したテーブルのレコードを削除するクエリです。
作成後に実行することでテーブルの内容を変更しますので、アクションクエリの一種です。
テーブルのすべてのレコードを削除するだけでなく、一定の条件で抽出したレコードだけを削除することも可能です。
削除クエリの作り方
では、削除クエリの作り方を見ていきましょう。
今回は「TRN_削除」というテーブルを追加しました。
TRN_削除の内容は以下のようになっています。
まずはクエリデザインで空のクエリを作成します。
テーブルの追加から、削除対象のテーブルをクエリの上段(フィールドリスト)に追加します。
テーブルの全フィールドを表す「*」のフィールドを、クエリの下段(デザイングリッド)にドラッグアンドドロップします。
ACCESSの上段のメニューから「クエリデザイン」で「削除」を選択します。
これによってクエリが削除クエリに変わります。
デザイングリッドの表示は下記のように変更されます。
これで削除クエリは完成です。
削除クエリの実行
では、作成した削除クエリを実行してみましょう。
作成した削除クエリをナビゲーションウィンドウでダブルクリックすることで実行可能です。
実行すると以下のメッセージが表示されます。
「はい」を選択すると、次は削除するレコード数が表示されます。
ここで「はい」を選択することで削除が実行されます。
TRN_削除テーブルを見てみると、レコードがなくなっていることが分かります。
一部のレコードだけを削除する方法
先ほどはテーブルのすべてのレコードを削除しましたが、一部のレコードだけを選択して削除することも可能です。
例えば、消費税率が8%のレコードだけを削除する場合は、削除クエリの設定は以下になります。
デザイングリッドに「消費税率」フィールドを持ってきたうえで、抽出条件欄に「8」と記入します。
この抽出条件の書き方は選択クエリと同一です。
これで、消費税率が8%のレコードだけを抽出して削除することができます。
実際にクエリを実行してみましょう。
上記のように消費税率が8%のレコードだけを削除できました。
VBAで削除クエリを実行する方法
作成した削除クエリは、手動で実行する以外にVBAで実行することも可能です。
例えば先ほど作成したtest_削除クエリを実行する場合は以下のように記述します。
DoCmd.OpenQuery "test_削除"
DoCmd.OpenQueryメソッドを利用することでクエリの実行が可能です。
しかし、これだけだと実行時に以下のメッセージが出てしまいます。
これらのメッセージは手動で処理する際は確認のために良いのですが、VBAで自動処理をする際は、ユーザーにとって分かりにくいものになってしまいます。
そのため、こうしたアラートメッセージを出さないようにしておくことが多いのです。
上記のプロシージャを一部修正して以下のようにします。
DoCmd.SetWarnings False
DoCmd.OpenQuery "test_削除"
DoCmd.SetWarnings True
前後にDoCmd.Serwarningsを入れました。
これはアラートメッセージの表示をON/OFFするメソッドです。
先にFalseでメッセージを出ないようにしてから削除クエリを実行し、実行が終わったらTrueで元の状態に戻します。
削除クエリに限らず、追加クエリや更新クエリなど、VBAからアクションクエリ(テーブルの内容を更新するクエリ)を実行する際にはDoCmd.SetWarningsを使うことが多いので覚えておくと便利でしょう。
以上、削除クエリの使い方をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。