pickup

目次

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関数を音読する

DSUM⇒合計しなさいとう命令

なにを⇒代金を合計する

代金はどこにある⇒Q_売上速報にある

抽出条件⇒フォーム上の社員名と、フォームヘッダーの社員名が同一のある時

DSUM関数を読み上げるとこのようになります。

完成図



ただ、ACCESSは、カウント系の関数を使うと、作動が重くなりますので、ご注意してください。

まとめ

Excelで、一番初めに憶えた関数は、SUM関数じゃないでしょうか?

ACCESSにも、合計する関数はあります。

DSUM関数と集計クエリを憶えたら、集計は完璧です。

サンプルファイルNo8はです
スポンサーリンク

Twitterでフォローしよう

おすすめの記事