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