ACCESS VBAでSELECT文によるSQLを実行する方法
ACCESSでは、レコードを抽出する際にクエリという機能を利用することが可能です。
クエリはGUIで利用できるため便利ですが、SQLに慣れた方は、直接SQL文を書きたいという場合もあるでしょう。
今回は、ACCESS VBAでSELECT文によるSQLを実行する方法をご紹介します。
こんにちは。
はこにわガジェット (@hakoniwagadget) です。
ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。
SQLとは
まず、SQLとは何かについてご説明しましょう。
SQLとはデータベースを操作するための言語です。
レコードの新規作成、更新、抽出、削除、グループ化など様々な操作ができます。
Microsoft SQL ServerやOracleなど、多くのデータベースソフトウェアでもサポートされており、グローバルで一般的なデータベース操作言語と言えます。
ACCESSはSQLを理解していなくても利用できるデータベースソフトですが、SQLを使用することも可能です。
SQLの基本構文
SQLでレコードを抽出する際は、以下の構文で利用します。
SELECT フィールド名 FROM テーブル名 WHERE 抽出条件 ;
これがSQLで最もよく利用されるSELECT文です。
それぞれ、SELECT句、FROM句、WHERE句と呼ばれますが、この設定で基本操作はできます。
最後に「;」を付けるのを忘れないようにしてください。
例えば、売上テーブルから顧客IDが1のレコードの商品名を抽出する際は、
SELECT 商品名 FROM 売上テーブル WHERE 顧客ID = 1 ;
となります。
よく利用されるのは、フィールドを指定せず全て抜き出す場合です。
先の例ですと、この場合はSELECT句に「*」を使用して、
SELECT * FROM 売上テーブル WHERE 顧客ID = 1 ;
となります。
上記のSQLを実行すると、売上テーブルから顧客IDが1のレコードのすべてのフィールドを抽出します。
ACCESS VBAでSQLを使用する際の構文
ACCESSのVBAでSQLのアクションクエリを使用する際は、DoCmd.RunSQLメソッドを使用して、以下の構文で記述します。
DoCmd.RunSQL SQL文
SQL文の部分は可変になることも多いので、変数を使ってVBAでSQL文を作成する構成をよく見かけます。
例えば、以下のようなプロシージャの記載です。
Dim sql_txt As String
sql_txt = "SELECT 商品名 FROM 売上テーブル WHERE 顧客ID = 1;"
DoCmd.RunSQL sql_txt
上記のプロシージャでは、sql_txtという文字列型の変数を定義し、その変数にSQLのSELECT文を格納したうえで、DoCmd.RunSQLメソッドで実行しています。
以上、VBAでSELECT文によるSQLを実行する方法をご紹介しました。
ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。
そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。
ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。
最後までお読みいただき、ありがとうございました。