ACCESS VBA ADOでフィールド名を変数で指定する方法

ADOでフィールド名を変数で指定する方法

ACCESSではADOを使ってテーブルの操作を行うことが可能です。

テーブルの値を操作する際はフィールド名を指定しますが、このフィールド名を固定値ではなく変数で指定したい場合があります。

今回は、そんなときのためにADOでフィールド名を変数で指定する方法をご紹介します。


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

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

ADOでのフィールド名指定

ACCESSでVBAを使って、テーブルの値の追加・削除・更新を行う際には、ADOを使う必要があります。
ADOではレコードセットオブジェクトを定義し、そのレコードセットオブジェクトに対して様々な処理を行います。

例えば、rst1というレコードセットオブジェクトで、顧客名フィールドに値を入力する場合は、以下の記述になります。


 rst1!顧客名 = "テスト"
 

レコードセットであるrst1に対して、!を使ってフィールド名を指定する形です。

フィールド名の変数指定

通常はフィールド名はテキストで直接記述しますが、変数で指定する場合は以下の書き方ができます。

レコードセット(フィールド名を格納した変数) = フィールドに入力する値

フィールド名をカッコで囲う記述ですね。

例えば、Fld_Nameという変数にフィールド名を格納したうえで、上記の顧客名フィールドに「テスト」という値を入力する場合は以下の記述になります。


 rst1(Fld_Name) = "テスト"
 

また、固定テキストと変数の組み合わせを行うことも可能です。

例えば、フィールド名が、フィールド1、フィールド2のような連番になっている場合に、この番号部分のみを変数「Fld_Number」に格納して以下のように記述できます。


 rst1("フィールド" & Fld_Number) = "テスト"
 

ここで注意していただきたいのは、フィールド名として記述する固定テキスト部分は”(ダブルクォーテーション)で囲ってテキスト型で指定することです。

これでフィールド名を変数で指定することができます。

フィールド名を変数で指定する場面

では、どんな場面でフィールド名を変数指定するのでしょうか。
最も多いのは、フィールド数やフィールド名が都度変わる場合です。

例えば、クロス集計クエリをもとにテーブルを作成し、そのテーブルをADOで操作する場合などが該当するでしょう。
年月や得意先等をクロス集計でフィールドに指定すると、フィールド数や名称が不定になりますので、こうした場合は変数を使ってフィールド名を指定すると便利です。

または、フィールド名に連番が入っている場合などもこの方法が使えます。

以上、ADOでフィールド名を変数で指定する方法をご紹介しました。


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

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

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

サービス一覧

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