激凹みから立ち直る方法

以下のような「生産出荷クエリ」があります。
※商品コードは「オートナンバー型」です
年月日 商品コード 生産数量
2008/01/01 商品1  1
2008/01/01 商品2  0
2008/01/01 商品3  2
2008/01/02 商品1  0
2008/01/02 商品2  1
2008/01/02 商品3  0
・・・・
2008/01/15 商品1  2
2008/01/15 商品2  3
2008/01/15 商品3  1

「作成したいクエリ」は以下のとおりです。
累計はその月の1日からの合計です
年月日 商品コード 生産数量 生産数量の累計
2008/01/01 商品1  1  1
2008/01/01 商品2  0  0
2008/01/01 商品3  2  2
2008/01/02 商品1  0  1(1+0)商品1の2008/01/01から2008/01/02までの合計
2008/01/02 商品2  1  1(0+1)
2008/01/02 商品3  0  2(2+0)
・・・・
2008/01/15 商品1  2  9(1+0+・・・+2)商品1の2008/01/01から2008/01/15までの合計
2008/01/15 商品2  3  8(0+1+・・・+3)
2008/01/15 商品3  1  10(2+0+・・・+1)
※生産数用の累計の(1+0+・・・+2)は表示しなくて良いです。

「生産数量の累計」フィールドに
生産数量の累計: DSum("[生産数量]","生産出荷クエリ","[商品コード]=[生産出荷クエリ].[商品コード] And [年月日] Between #" & CDate(Format(生産出荷クエリ!年月日,"yyyy/mm") & "/01") & "# and #" & Format(生産出荷クエリ!年月日,"yyyy/mm/dd") & "#")

と入力すると
年月日 商品コード 生産数量 生産数量の累計
2008/01/01 商品1  1  3(2008/01/01の全ての商品の合計)
2008/01/01 商品2  0  3( 〃 )
2008/01/01 商品3  2  3( 〃 )
2008/01/02 商品1  0  1(2008/01/02の全ての商品の合計)
2008/01/02 商品2  1  1( 〃 )
2008/01/02 商品3  0  1( 〃 )
・・・・
2008/01/15 商品1  2  6(2008/01/15の全ての商品の合計)
2008/01/15 商品2  3  6( 〃 )
2008/01/15 商品3  1  6( 〃 )

となってしまい、年月日ごとの全ての商品の合計が、年月日ごとに生産数量の累計に入力されてしまいます。

上記の「作成したいクエリ」のようにするにはどうしたら良いのでしょうか?

よろしくお願いします。

A 回答 (2件)

1.商品コードを&&で囲んでいない


誤 "[商品コード]=[生産出荷クエリ].[商品コード] And ....
正 "[商品コード]=" & [生産出荷クエリ].[商品コード] & "And ....

2.日付の判定方法の間違い
"Between " & CDate(Format(生産出荷クエリ!年月日,"yyyy/mm") & "/01") & " and " & 生産出荷クエリ!年月日
または
"Between #" & Format(生産出荷クエリ!年月日,"yyyy/mm") & "/01# and #" & Format(生産出荷クエリ!年月日,"yyyy/mm/dd") & "#"
    • good
    • 0
この回答へのお礼

1.商品コードを&&で囲んでいない
これが原因でした。
ありがとうございました。

お礼日時:2008/04/22 11:41

試してはいませんが、



BetweenのAnd部分には、「生産出荷クエリ」でなく「現在のクエリ(自分自身)」の「年月日」フィールドのデータを使わないと意味がないのでは?

つまり、「どこまで」の指定はDSum関数が置かれているレコードのデータを使わないと、「その日まで」という指定にはならないと思います。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!