• ベストアンサー

アクセス クエリで計算式の累積

クエリ名前クエリに 式1:A+Bのように記入いたしました。  式1の累積の式を 式2に入れたいのですがどのように記載したらよろしいのでしょうか? DSum("式1","クエリ","ID<=" & [ID])ではうまくいきません。

質問者が選んだベストアンサー

  • ベストアンサー
  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.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 (大文字・小文字は関係ありません、同一視されます。)

mirumirus
質問者

お礼

本当にありがとうございました!ご教授いただきありがとうございました。感謝です!!

その他の回答 (4)

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.4

クエリの元データのテーブルと、その実際に近いデータ、 現在のクエリのSQL文 (クエリをデザインビューで開いてから右クリックでSQLビューに 切り替えて現れる文)、 今のクエリの実行結果の具体例、 が回答には必要です。 あとレコード数も教えてください (現在とこれからどれくらいまで増えそうか)

mirumirus
質問者

お礼

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;

mirumirus
質問者

補足

No abc Dsumabc 1 1 4 2 2 4 3 1 4

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.3

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 となりますけどねぇ?

この投稿のマルチメディアは削除されているためご覧いただけません。
mirumirus
質問者

お礼

ありがとうざいます。新規に別のアクセスで作成いたしますとちゃんと累計としてでてくるのですが、そちらのアクセスだとどうしても累計でなく総計の同じ値がでてきてしまいます。累計ではなく総計がでてくるのはどこか設定がおかしいのでしょうか?

  • nicotinism
  • ベストアンサー率70% (1019/1452)
回答No.2

式2:nz(dsum("A","クエリ","ID<=" & [ID]),0) + nz(dsum("B","クエリ","ID<=" & [ID]),0) になってしまうのかな。

mirumirus
質問者

お礼

ありがとうございます。試してみましたがだめでした。

mirumirus
質問者

補足

累計ではなく総計の同じ値がテキストボックスにでてきます。フォームの書式でみてみると式1をコントロールソースにしているテキストボックスの書式では日付、数値、ユーロ、・・等でてきますが式2では真っ白になっていて選べません

  • m3_maki
  • ベストアンサー率64% (295/459)
回答No.1

DSum("A+B","クエリ","ID<=" & [ID]) でしょうか?

mirumirus
質問者

お礼

ありがとうございます。そちらもためしてみたのですがうまくいきませんでした。

関連するQ&A

  • Accessクエリで分類ごとの累計を計算する方法

    テーブルのデータをクエリに読み込んで、大分類ID-小分類IDの組合せを元にして、 月々の累計を計算したいのですが、算出式がどうしてもわかりません。 DSUMを使えばいいかなと思い、クエリのフィールドに、 累計:DSUM("金額","tbl_sample",    ) のような感じでやってみたのですが、条件式をどういれてよいかわかりません。 もし分かる方がいらっしゃればお知恵をお貸しください。よろしくお願いします。 イメージ的には以下のような感じで、★箇所のような累計結果を算出したいです。 ------------------------------------------------------------ 元のテーブルファイル名:tbl_sample 月 大分類ID 小分類ID 金額 ★累計 4___1___1___\100_\100 4___1___2___\200_\200 4___2___1___\300_\300 4___2___2___\400_\400 5___1___1___\150_\250 5___1___2___\250_\450 5___2___1___\350_\650 5___2___2___\450_\850 --------------------------------------------------------------

  • ACCESSのクエリ計算

    Access2003でクエリで特定条件に一致するIDを出して 今度はそのそれぞれのIDから+100(IDが2なら2~102の範囲でというように)の元のテーブルの 値の中からフィールド1が5以上の条件に一致するものの最小のIDをもとめたいと思ってます。 始めたばかりの初心者です DMINでできるのかなと思って下記式にしてみたのですが パラメーターエラーでうまくいかなくて、、 DMin("[テーブル1].ID","[テーブル1]","[テーブル1].ID>=[クエリ1].ID&[ID]<[クエリ1].ID+100&[テーブル1]フィールド2>5")

  • Access クエリで2段階計算をしたい

    Access2003を使用中です。 Access初心者です。 ある数値データのテーブルがあります。 A~Gグループ毎にクエリをつくりそれぞれ小計を出しています。 さらにA小計~G小計 を合計する別のクエリをつくり、  合計:Nz([A小計]+[B小計]+・・・・+[G小計]) という式を入れたのですが、計算されるのではなく、数字の連なりになって出てきます。 説明が悪いのですが、  例えばA小計=12  B小計=16 C小計=6 ・・・・ だと このフィールドには  「12166・・・」という形で出てきます。 計算の式が間違っているのでしょうか?それともクエリで出した小計を更に合計することは出来ないのでしょうか? 申し訳ありませんが、ご教授ください   

  • アクセス クエリでの残高計算について

    アクセスクエリでの残高計算について 返金日を入力した場合、伝票日を基準とした残高がマイナスとなる式を教えてください。 現在のクエリ(ID~返金日)の状態です。 ID......伝票日....会社....銀行......出金額......返金日..........残高 1..........4/1.............A..........あ..........100円..........5/10.............100円 2..........4/15..........B..........あ..........400円..........空白.............500円 3..........4/30..........C..........い........1000円..........5/15..........1500円 4..........5/10..........B..........い...........300円..........5/20..........1200円 5..........5/14..........A..........い..............50円..........空白..........1250円 6..........5/15..........A..........あ..............50円..........空白............300円 【補足説明】 ID4:ID1でAが100円返金済みなので1500+300-100=1200円となる ID6:ID3でCが1000円返金済みなので1250+50-1000=300円となる (1)返金日に日付けを入力するとマイナスとなる残高計算をしたいと考えていますが可能でしょうか? ・可能な場合、数式?を教えていただきたいです。 ・不可能な場合、どういった解決策があるか教えていただきたいです。 (2)また、A会社を抽出後に、銀行別で(1)と同じように残高を表示させたいと考えていますが、 どのように、(1)の表よりどのように加工すれば、いいのでしょうか? (簡単にでもいいので是非お願いします) 今回アクセスを初めて使い、苦戦しております。 どうぞ、ご回答のほう、よろしくお願いいたします。

  • Accessクエリでのグループ化

    Accessクエリでのグループ化 以下の2つのテーブルが有ります。 ■社員テーブル ID 名前 1 Aさん 2 Bさん 3 Cさん 4 Dさん 5 Eさん ■受付テーブル ID 受付内容 受付日   社員ID 1  xxxxx 2010/3/1   1 2 xxxxx 2010/3/20   3 3 xxxxx 2010/4/10   2 4 xxxxx   2010/4/11  5 5 xxxxx 2010/4/15  1 6 xxxxx 2010/4/30  2 7 xxxxx 2010/5/3  4 そこで社員毎の受付数をカウントしたいと思っています。 ※受付日が2010/4/1以上5/1未満 名前 受付回数 Aさん 1 Bさん 2 Cさん 0 Dさん 0 Eさん 1 となるイメージです。 しかし、実際にクエリを作ると結果が 名前 受付回数 Aさん 1 Bさん 2 Eさん 1 と、なってしまいます。。 名前:グループ化 受付テーブルのID:カウント 受付日:>=2010/04/01 and <2010/05/01 ※社員テーブルの『ID』と、受付テーブルの『社員ID』を  紐つけており、結合プロパティでは『社員テーブルの  全レコードと受付テーブルの同じ結合フィールドのレコード  だけを含める』としております。 あらかじめ、受付テーブルで受付期間の条件でクエリ を作成しておき、それと社員テーブルを紐つけた場合は イメージ通りの結果になるのですが、1つのクエリで 上記イメージでの結果を表示したいと思ってます。 可能でしょうか? ご教授願います。

  • Accessのクエリ(初心者)

    Access超初心者です。 クエリで悩んでいるので、お教えください。 テーブル1に CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付)の4項目があり、 クエリを使って、最も大きいSUUを抽出したい (かつ最も大きいSUUのデータが重複している場合、その中で最も古い日付のデータのみを抽出したい)のですが・・・ たとえば、 テーブル内容: CODE(商品ID)_NAME(名前)_SUU(数量)_DAY(日付) A_あめ_600_0517 A_あめ_900_0518 A_あめ_400_0618 B_ガム_120_0217 B_ガム_060_0319 B_ガム_180_0718 B_ガム_180_0518 抽出結果: A_あめ_900_0518 B_ガム_180_0518 ということです。 デザインビューを使うとして、どのような方法がありますでしょうか? どうかご教授お願いします!

  • Access 2000ひと月単位で一日ごとの累計を出したいのですが・・・。

    いろいろ探して、 累計: DSum("新規","日報","[日付]<=#" & [日付] & "#") という、式をクエリに貼り付けたのですが、これだと、月ごとの累計にならず、困っています。どなたか、お教えいただけないでしょうか ID   日付    年月   新規  累計 1  2008/10/20  2008/10   1   1 2  2008/10/25  2008/10   1   2 3  2008/11/05  2008/11   2   4 ⇒ 2 4  2008/11/10  2008/11   1   5 ⇒ 3 5  2008/11/15  2008/11   2   7 ⇒ 5 6  2008/11/20  2008/11   1   8 ⇒ 6 7  2008/11/25  2008/11   1   9 ⇒ 7 8  2008/11/30  2008/11   2   11 ⇒ 9 9  2008/12/05  2008/12   1   12 ⇒ 1 10  2008/12/10  2008/12   2   14 ⇒ 3 一度クエリで11月(2008/11)だけにしてからやればよいと思ったのですが、DSum関数がテーブルからしか作れないようで、うまくいきません。お願いします。

  • クエリーで前のレコードのフィールドを参照して計算する方法

    +--+-----------+-----------+ |ID|フィールドA|フィールドB| +--+-----------+-----------+ |_1|___________|_________あ| +--+-----------+-----------+ |_2|_________い|_________う| +--+-----------+-----------+ |_3|_________え|_________お| +--+-----------+-----------+ 「あ」の値 と 「い」の値を足したものを「う」に 「う」の値 と 「え」の値を足したものを「お」に という具合に計算したいのですが、クエリーで可能なのでしょうか。教えてください。 VLOOKUP関数でできるようなのですが循環参照エラーが出てうまくいきません。フィールドBの式は フィールドB: DLookUp([フィールドB],"クエリ","ID=" & [ID]-1)+[フィールドA] にしています。 よろしくお願いいたします。

  • アクセス・クエリーのビルドについて

    《クエリー》 ビルドの式構築について 論理判断により式が違う場合、式の構築は可能でしょうか?  もし A=12      B=B+1  でなければ     B=13  こんな場合のビルドはどうしたらよいのか?

  • Accessのレポート上での計算

    現在4つのフィールドで=DCountを使ってリストの個数を返すクエリを組みました。 それをレポートで表示したのですが、この各フィールドの個数を合計したいんです。 テーブルB | A | B | C | D | ←このA~Dにはコンボボックスでタイプが入っています。 これから クエリ 式1:=DCount("*","テーブルB","[A]='タイプ1'") クエリを実行すると 1      式2:=DCount("*","テーブルB","[A]='タイプ2'")  クエリを実行すると 0      式3:=DCount("*","テーブルB","[A]='タイプ3'")  クエリを実行すると 1 が表示 といったようにクエリで選ばれている個数を算出しています。 このクエリを使ってレポートを作ったのですが、 レポートフッターに =Sum([式1]+[式2]+[式3]) という式を入れてレポートを表示すると 「101」と返ってきてしまいます(表示されている数字が順番にならんでる)。 目的としては「2」にしたいのですが、式が違うのでしょうか? 初心者バリバリの質問で申しわけありませんが、ご教授いただけますようお願いいたします。

専門家に質問してみよう