Microsoft Access Club >関数を使いこなす >この ページ >次頁 < 前項


どこで実行するの-クエリ編 : 関数を使いこなす



前頁では、作成した関数の試運転を行う方法をご紹介しました。問題なく動作したら、いよいよ本番稼動です。

どのようにしたら関数を動かせるの?

関数を実行する場合、大きく分類すると下記の方法があります。

  1. クエリフィールドにプロシージャを記述する。
  2. プロシージャ内にプロシージャを記述する。
  3. フォームやレポートのオブジェクト(テキストボックス等)のコントロールソースに記述する。
  4. フォームやレポートのイベントに記述する。
  5. マクロ内に記述する。

順を追ってご紹介していきます。

クエリフィールドにプロシージャを記述する場合

下記のプロシージャには、cur商品価格という 変数を引数に配置しました。

Function Zeikin(cur商品価格 As Currency)

    '消費税を求めましょう。
    Zeikin = cur商品価格 * 0.05

End Function
解説
  1. 変数とは、一時的に値を格納するものとお考えください。言葉の定義だけで理解するのはなかなか難しいですから、今はこれでいいです。

  2. 引数とは、関数を実行する上で条件として与えられる変数や定数のことお考えください。

必ず試運転を実行する

まず、試運転からはじめます。デバッグしましょう、つまりイミディエイト画面で試しにプロシージャを実行します。

?Zeikin(100)
解説

引数の100という数字が見えますか?

このように引数を持っている関数を実行する時には、( )の中に適切な数字や語句を必ず入力しなければいけません。これは絶対です・・・。

結果値は、上記のように 5 とでました。計算式は、100 * 0.05 = 5 ですね。

このようなプロシージャは引数にいろんな数字を持ってくることで、半ば普遍的な利用が可能になります。これぞ、関数ですね。

クエリフィールドにプロシージャを記述する

以下の手順で実行します。

  1. テーブルのサンプルデータは、下記のようなものを想定します。
    なお、価格フィールドのデータ型は通貨型です。

価格
1 \1,233,880
2 \43,390
3 \66,340
4 \112,300
5 \67,721
6 \88,900
7 \36,810
  1. このテーブルを基にしたクエリを作成します。

  2. 下記のように新規フィールドである消費税を作成します。

  3. 先程作成したzeikinプロシージャ名を記述します。

  4. 引数には、価格フィールドを指定します。

クエリフィールド名 + : (コロン) + 関数名(引数があれば記入)

  1. このクエリを実行すると下記のようにデータが表示されます。

価格 消費税
1 \1,233,880 61694
2 \43,390 2169.5
3 \66,340 3317
4 \112,300 5615
5 \67,721 3386.05
6 \88,900 4445
7 \36,810 1840.5
  1. これがクエリに関数を組み込む代表的な方法です。

解説

引数には、 クエリフィールドである価格を配置しています。引数には、数字や文字列だけでなくクエリデータそのものを引数に 指定することができます。これは大事なことなので、是非とも覚えて下さい。

パワーユーザーへの道

クエリの実行データである消費税フィールドをご覧になって、何かお気づきのことはありますか?

3386.05 とは、三千八十六円五銭 のことですね。普通、この場合の消費税は、三千八十六円になります。しかも、データが左詰めになっています。価格フィールドは 通貨型なので右詰めになっています。

つまり、消費税フィールドにはお金ではなく、数学的な計算値が格納されているに過ぎません。データが左詰めであるということは、数字ではなく文字列であることを 物語っています。これでは、価格から消費税を求める趣旨に反することになりますね。

プロシージャの一部修正

下記のように関数を修正します。

Function Zeikin(cur商品 As Currency) As Currency

    '消費税を求めましょう。
    Zeikin = cur商品 * 0.05

End Function
解説
  1. As Currencyで結果値が通貨型であることを宣言します。下記の二種類の記述をご覧下さい。
  • 変更後  Function Zeikin(cur商品 As Currency) As Currency
  • 変更前  Function Zeikin(cur商品 As Currency)
    これは、As Variant が省略された構文です。
事前に結果値のデータ型を決める

実はこのように、関数を実行して得られる結果値のデータ型を当初から決めておくことは、とても重要なことなんですよ。
省略すると、自動的にバリアント型になります。いわゆる万能型と呼ばれているものですが、融通が利く面がありますが中途半端にもなりがちです。

ささぁ、難しい話は後回しにして、次回は他のプロシージャ内に組み込む方法をご紹介しましょう。

2003/06/10

ページの先頭へ 前ページへ戻る


どこで実行するの-クエリ編 : 関数を使いこなす


 

-Microsoft Access Club-

cPanel と PLESKをインストールした専用・共有レンタルサーバーを銀行振込でご提供中。契約書は一切不要です。
cPanel や PLESKをインストールした専用・共有レンタルサーバー
まずは1ヶ月から...。
日本国内の銀行振込がOK、契約書は不要です。