#SE
今回、Accessの"Dsum関数"を初めて使った。
先にリンクテーブルを張りなおした!、という案件での事。
明細項目に商品毎の金額があるのだが、その合計をフォームで表示してほしい、というものだった。
最初は明細用のサブフォーム内で、明細レコードに金額を合計したレコードをUnionで一緒に表示しようかと考えていたんだけれど、明細サブフォームのレコード数表示は明細件数を確認するから、そこに影響する方法はダメとなったので代替手段をとった。
これまでならユーザー定義関数を書いて、その中でDAOでSQLを書いて帰ってきた値をテキストボックスに与える、という方法をとっていたんだけど、まあ、他にも方法はないかな?という事で勉強感覚でMSの関数リファレンスを眺めてたら、上記の"Dsum関数"を見つけた、というわけ。
書式 :DSum( フィールド名, テーブル名若しくはクエリー名, 条件 )
戻り値:指定したレコードのセット (定義域) に含まれる値の合計
"条件"はSQL文でのWhere句。ただし"Where"は含まない
要は、既にACCESSで定義済みのテーブルやクエリーに規定されてるフィールドの合計値をもとめる、ということ。一応条件付けも出来る。
確かにお手軽やね。
今回は、特段条件づけは必要が無かったので簡単に済ますことが出来た。
この関数は既に存在するリソースをそのまま使える場合には都合がいい。
ただ、この目的のためだけに新たなクエリーを規定する必要があるのだとしたら、それはやめて、ユーザー関数でSQLを書いた方がいいと思う。
コメント
コメントを投稿