#202 オリジナル関数をクエリーで使う方法 クエリー、VBA

クエリーでは、元となっているテーブルのフィールドをそのまま使うだけでなく、それに演算を加えた「演算フィールド」を新たに作成することができます。そしてそれは、四則演算や"&"による文字列結合、Mid$やInstrといった組み込み関数だけでなく、オリジナルの関数を呼び出して使うこともできます。ここではその一例を紹介します。


まず、オリジナルの関数をVBAで作る際のポイントです。
  1. "標準モジュール"にプロシージャを作成する
  2. プロシージャは"Function"プロシージャとする
このポイントに基づいて、一例として、2つの数値を引数とし、その加算結果を返り値とする簡単なFunctionプロシージャを作成してみます。
Public Function CalcAdd(a, b)

  CalcAdd = a + b

End Function

続いて、クエリーからのこのプロシージャの呼び出し方法です。
下図の様に、クエリー上のフィールド名(ここでは税込金額)を設け、":"に続けて、税抜金額と消費税額の2つのフィールド値を引数としてプロシージャを呼び出すような演算フィールドを記述します。
クエリーのデザイン

そして、この選択クエリーのデータシートを表示すると次のようになります。フィールド「税抜金額」の値と「消費税額」の値の合計がFunctionプロシージャによって計算され、その結果が全レコードについて表示されているのが確認できます。
クエリーの実行結果

※注:ここでは、データシート表示時に、税込金額に¥マークが付いてかつ3桁ごとにカンマで区切られるよう、CalcAddの返り値をCCur関数によって通貨型に変換しています。
| Index | Prev | Next |



T'sFactory
Accessで動く生産管理DB
Ureru Express
Webで使う販売顧客管理
Access開発&アドバイス
DB開発やテクニカルアドバイス
Copyright © T'sWare All rights reserved