Microsoft Access 掲示板

Dsum関数の複数条件につきまして、

2 コメント
views
4 フォロー

Dsum関数を使いまして、
カテゴリ毎: DSum("[数値]","[実験シート]","カテゴリ = " & [カテゴリ] & "")
で同じカテゴリを集計する関数と、
月毎: DSum("[数値]","[実験シート]","月次 <= #" & [月次] & "#")
と月次事の集計を行う関数を接続したいのですが、ANDを利用しても、うまいこと行きません。

月毎のカテゴリ: DSum("[数値]","[実験シート]","月次 <= #" & [月次] & "#" And "カテゴリ = " & [カテゴリ] & "")

大変に申し訳ございませんがどなたかご教示いただけますと幸いです。

ミエ
作成: 2019/12/03 (火) 21:02:41
通報 ...
1

下記の式にしてください。AND は""の内側にいれます。

月毎のカテゴリ: DSum("[数値]","[実験シート]","月次 <= #" & [月次] & "# And カテゴリ = " & [カテゴリ])

DSum の第3引数は、SQLとしての抽出条件式を文字列として設定します。
設定したいSQL条件式は例えば下記のようなものですよね。

[月次] <= #2019/12/31# AND [カテゴリ] = 1

これを文字列にするには、

"[月次] <= #2019/12/31# AND [カテゴリ] = 1"

と"で囲みます。
2019/12/31 と 1 の部分は可変にしたいので、まず分割します。

"[月次] <= #" & "2019/12/31" & "# AND [カテゴリ] = " & "1"

分割した "2019/12/31"と"1"の部分をフィールド参照に書き換えます。

"[月次] <= #" & [月次] & "# AND [カテゴリ] = " & [カテゴリ]

これで完成です。このように順番に少しずつ書き換えていくと理解しやすいでしょう。

質問の条件式

"月次 <= #" & [月次] & "#" And "カテゴリ = " & [カテゴリ] & ""

"文字列" AND "文字列" の形なっており、AND は文字列ではなくなってますので、
AND演算を実行しますが、文字列同士では AND演算 はできないのでエラーになります。

2
ミエ 2019/12/03 (火) 21:42:54 3f0b0@2ff00

確認をさせて頂きましたらしっかり動作致しました。
理解不足でありました為、もう一度一からしっかり勉強させて頂きます。
ありがとうございます。