- ベストアンサー
アクセス クエリで計算式の累積
クエリ名前クエリに 式1:A+Bのように記入いたしました。 式1の累積の式を 式2に入れたいのですがどのように記載したらよろしいのでしょうか? DSum("式1","クエリ","ID<=" & [ID])ではうまくいきません。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
フィールド名の、No が問題です。 Access が SELECT tbl_A.[No], tbl_A.abc, Nz(DSum("abc","tbl_A","No<=" & [No]),0) AS Dsumabc FROM tbl_A; "No<=" & を "0 <=" & と解釈してしまっています。 対症療法的には下記リンクにも有りますが、[]で括れば避けられますが SELECT tbl_A.[No], tbl_A.abc, Nz(DSum("abc","tbl_A","[No]<=" & [No]),0) AS Dsumabc FROM tbl_A; どうっっっっっっっっっっっっっっっっっっっしても、No でなきゃダメ!という場合を除き フィールド名の変更をお勧めします。 予約語や使用できない記号を使っていると、当初は機能していても思わぬ時に足元をすくわれます。 ↓熟読を http://office.microsoft.com/ja-jp/access-help/HA010030643.aspx (大文字・小文字は関係ありません、同一視されます。)
その他の回答 (4)
- nicotinism
- ベストアンサー率70% (1019/1452)
クエリの元データのテーブルと、その実際に近いデータ、 現在のクエリのSQL文 (クエリをデザインビューで開いてから右クリックでSQLビューに 切り替えて現れる文)、 今のクエリの実行結果の具体例、 が回答には必要です。 あとレコード数も教えてください (現在とこれからどれくらいまで増えそうか)
お礼
nicotinisum様、本当にありがとうございます。 tbl_A にNo.abc qer_BにDsumではやり累積ではなく総合計がでます SELECT tbl_A.[No], tbl_A.abc, Nz(DSum("abc","tbl_A","No<=" & [No]),0) AS Dsumabc FROM tbl_A;
補足
No abc Dsumabc 1 1 4 2 2 4 3 1 4
- nicotinism
- ベストアンサー率70% (1019/1452)
ID A B 1 5 2 10 5 3 20 10 4 20 10 5 -10 20 というデータがテーブル1にあったとしてクエリで 式に当たる部分を 添付図のようにすれば AB: Nz([A],0)+Nz([B],0) DsumAB: Nz(DSum("A","テーブル1","ID<=" & [ID]),0)+Nz(DSum("B","テーブル1","ID<=" & [ID]),0) ID A B AB DsumAB 1 5 5 5 2 10 5 15 20 3 20 10 30 50 4 20 10 30 80 5 -10 20 10 90 となりますけどねぇ?
お礼
ありがとうざいます。新規に別のアクセスで作成いたしますとちゃんと累計としてでてくるのですが、そちらのアクセスだとどうしても累計でなく総計の同じ値がでてきてしまいます。累計ではなく総計がでてくるのはどこか設定がおかしいのでしょうか?
- nicotinism
- ベストアンサー率70% (1019/1452)
式2:nz(dsum("A","クエリ","ID<=" & [ID]),0) + nz(dsum("B","クエリ","ID<=" & [ID]),0) になってしまうのかな。
お礼
ありがとうございます。試してみましたがだめでした。
補足
累計ではなく総計の同じ値がテキストボックスにでてきます。フォームの書式でみてみると式1をコントロールソースにしているテキストボックスの書式では日付、数値、ユーロ、・・等でてきますが式2では真っ白になっていて選べません
- m3_maki
- ベストアンサー率64% (296/460)
DSum("A+B","クエリ","ID<=" & [ID]) でしょうか?
お礼
ありがとうございます。そちらもためしてみたのですがうまくいきませんでした。
お礼
本当にありがとうございました!ご教授いただきありがとうございました。感謝です!!