目次
ACCESSで合計を抽出
こんにちは。伊川(@naoanoke)です。
今回は、ACCESSで合計をする場合、DSUM関数を使います。
今回は、DSUM関数の利用方法について説明します。
この動画は、こんな人にお勧め
・ACCESSの関数を勉強したい人
・ACCESSで、合計の抽出することがわからない人
ある日突然、上司からACCESSで合計を出せと言われた
上の図のようなフォームがあるとします。
ある日、突然、フォームの代金を、社員ごとに、抽出してほしいといわれました。
きっと、みなさんは、こう思うはずです。
Excelなら簡単なんだけど・・・・・・・
こんな時は、DSUM関数を使います。
DSUM関数の数式
DSum(列名,レコードセット名,[条件])
このような数式を使います。
実際にフォームにテキストボックスを配置する
このように、フォームのヘッダーに、非連結のテキストボックスを配置します。
向かって左側の社員氏名は、テキストボックスの形式は、短いテキスト型に設定します。
向かって右側の売上金額は、テキストボックスの形式は、通貨型に設定します。
社員氏名のコンボボックスに変更
次に、このテキストボックスが更新されたら、売上金額の合計を抽出するという仕掛けをします。
更新後処理にコードを記載します。
更新後処理の場所はここにあります。
フォームを開いた状態で「デザインビュー」を選択します。
その状態で、社員氏名の横のテキストボックスを選択して、【F4】を押します。
その状態で、イベントタブをクリックすると、その中に、更新後処理という場所があります。
その場所をクリックすると、VBAのコードを記載するエディタが表示されます。
VBAのエディタの中にコードを記載
ここでは、DSUM関数のみを説明します。
サンプルファイルをダンロードしていただければ、わかると思います。
Private Sub 社員氏名検索_AfterUpdate() Dim sya As String Dim uri As Currency sya = "社員氏名 ='" & Me![社員氏名検索] & "'" uri = DSum("代金", "Q_売上速報", sya) Me![売上金額] = uri Me.Filter = sya Me.FilterOn = True End Sub
今回のコードです。
肝心なのはこのコードです
sya = “社員氏名 ='” & Me![社員氏名検索] & “‘”
uri = DSum(“代金”, “Q_売上速報”, sya)
上のコードがキモとなります。
DSUM⇒合計しなさいとう命令
なにを⇒代金を合計する
代金はどこにある⇒Q_売上速報にある
抽出条件⇒フォーム上の社員名と、フォームヘッダーの社員名が同一のある時
DSUM関数を読み上げるとこのようになります。
完成図
ただ、ACCESSは、カウント系の関数を使うと、作動が重くなりますので、ご注意してください。
まとめ
Excelで、一番初めに憶えた関数は、SUM関数じゃないでしょうか?
ACCESSにも、合計する関数はあります。
DSUM関数と集計クエリを憶えたら、集計は完璧です。