プロが教えるわが家の防犯対策術!

サブフォームのレコードセットの合計を求めメインフォームにボックスで表示したいのですが、Dsumの演算対象の条件の記述が間違っているらしくエラーがでます。

=DSum("前年度売上","Q_商品分類のサブフォーム","品目ID=" & [業態&調査商品]![Q_商品分類のサブフォーム]![品目ID]="1090")

品目IDの1090をどう指定してやるかが分かりません。

A 回答 (3件)

1090がテキストフィールドなら


=DSum("前年度売上","Q_商品分類のサブフォーム","品目ID = '1090'")
1090が数値フィールドなら
=DSum("前年度売上","Q_商品分類のサブフォーム","品目ID = 1090")
でいいのでは?

この回答への補足

ありがとうございます。
質問内用の関数を間違えて貼り付けていました。
すみません。
=DSum("前年度売上","Q_商品分類のサブフォーム","品目ID = 1090")
上の関数でエラーが出るので以下のようにサブフォームの名前を追加しましたがエラーでした。
=DSum("[Q_商品分類のサブフォーム]![前年度売上]","Q_商品分類のサブフォーム","[Q_商品分類のサブフォーム]![品目ID] = 1090")

何が悪いのでしょうか?

補足日時:2008/04/25 10:10
    • good
    • 0

DSum関数では、DomainとしてForm名は指定できないのではないでしょうか。


サブフォームのフォームフッターにSum([合計したいフィールド名])をコントロールソースとするテキストボックスを配置します。フォームフッターは、可視にいいえを指定します。親フォームにこのサブフォームコントロールをコントロールソースとするテキストボックスを作成します。すなわち、=[サブフォーム名].Form![サブフォームコントロール名]とします。
これでも目的は達成できるのではないでしょうか。

この回答への補足

フールドを合計したいのではなくフールドのID1090だけを合計したいのでそれでは駄目ですね。
1090以外にも合計したいIDはあるのですが同じことをするだけなので
説明を省略いたしました。

補足日時:2008/04/30 15:18
    • good
    • 0

ANo.2で、品目ID毎の集計を表示できます。


親フォームのレコードソースとして、品目テーブルを指定し、サブフォールとのリンクを品目IDでとります。
このようにすると、親フォームの移動ボタンをクリックして、品目コードを変えれば、連動して、集計値が再計算されます。それぞれの品目コードに相当する合計額が表示されます。
品目IDを指定するのであれば、品目選択用のコンボボックスを置き、この更新時イベントでフォームへのフイルター処理を行わせることで、自由に品目を変えながら集計値を確認できるようになります。
親フォームとサブフォームのリンクは行っていますか?
コンボボックスの更新時イベントの設定は、下記の様になります。
Me.Filter="品目ID=" & Me.品目ID選択 '品目IDが数値の時
Me.FilterOn=True
コンボボックス名を、品目ID選択、表示データは、1列目品目ID(幅0)、2列目品目名の2列とします。この方が、品目IDの数値を調べる必要がありません。
リンクなしなら、サブフォームに直接フィルターをかけるようにすれば問題ありません。
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています