ACCESS VBA INSERTでレコードを追加する方法

INSERTでレコードを追加する方法

ACCESSのデータはテーブルに保存されます。

テーブルへのデータ入力は、主に入力用フォームから行うことが多いのですが、VBAのプログラミング上でレコードを追加したいときもあります。

今回は、ACCESS VBAでINSERTを使ってレコードを追加する方法をご紹介します。


こんにちは。
はこにわガジェット (@hakoniwagadget) です。

ACCESSを使った売上管理、顧客管理などのデータベース開発を行っています。
ACCESSは基本機能だけでも十分便利ですが、VBAを使うことで格段に使いやすいデータベースを作成可能です。
この記事ではACCESSでのVBAの使い方をご紹介していきます。

INSERT INTO構文

VBAでテーブルにレコードを追加するには、SQLのINSERT INTO構文を利用します。

INSERT INTO テーブル名 ( フィールド名1 , フィールド名2 , フィールド名3 ) VALUES ( 値1 , 値2 , 値3 ) ;

テーブル名を指定したうえで、フィールド名とそれぞれのフィールドに入力する値を指定していきます。

VBAでの利用方法

では実際にINSERT INTO構文をVBAで利用する方法をご紹介します。

サンプルテーブルとして以下のMST_顧客を用意しました。

こちらに、VBAでレコードを追加していきます。

まずはVisual Basic Editorを起動します。「ALT」+F11キーです。

そこで下記のプロシージャを記述します。


Public Sub kokyaku_tuika()

    DoCmd.RunSQL "insert into MST_顧客 (登録日,顧客名,住所1) values (#2022/7/16#,'テスト顧客','東京都');"

End Sub

これが、VBAでINSERTを行うための記述です。

いくつかポイントをご説明します。

DoCmd.RunSQL

VBAでSQLを使用する際は、DoCmd.RunSQLメソッドを利用します。

DoCmd.RunSQLに続いて、SQL文を記載します。

この際、SQL文はテキスト型として扱うために「”」(ダブルクォーテーション)で囲むことを忘れないようにしてください。

フィールド名の指定

フィールド名を指定する際はテキスト型に指定する必要はありません。

登録日,顧客名,住所1 のように、単純にフィールド名を列記します。

値の指定

一方で値を指定する際は、それぞれのデータ型に合わせた指定が必要です。

日付型であれば「#」で囲います。

テキスト型であれば「”」で囲います。

ただし、上記の構文ではSQL文自体をテキスト型として認識させるために、一番外側で「”」を使用しておりますので、「”」内でさらにテキスト型指定をするために「’」を使っています。

このあたりに注意すれば、INSERTをうまく使えると思います。

作成したプロシージャを実行した結果がこちらです。

一番下にレコードが指定通りに追加されていることが分かると思います。

以上、INSERTでレコードを追加する方法をご紹介しました。


ACCESSを使いこなせば、業務の効率化や自動化が実現できます。
しかし、自分でACCESSを学ぶには時間がない、難しそうで不安、という方も多いでしょう。

そんな時は、ACCESS開発歴20年以上、過去に100以上のACCESSデータベースを開発してきた私(@hakoniwagadget)にお任せください。

ACCESSの新規開発、既存のACCESSの修正、ACCESSの操作レッスンなど様々なサービスをご提供しています。
ご興味のある方は下記のサービス一覧をご覧ください。

サービス一覧

最後までお読みいただき、ありがとうございました。