• 締切済み

access2010のフォーム上で計算したいです

access2010 初心者です。 メインフォーム上に総合計を計算したいのですがどうしたらいいのか困ってます。 ***サブフォーム(テーブル1から表示しました)*** ・商品名(テーブル1から表示) ・金額(dlookupを使って「商品一覧表」から金額を表示しました) ・数量(テーブル1から表示) ・合計金額(コントロールリボンでテキストボックスを作り「金額」*「数量」で表示してあります) *********************** メインフォームに、サブフォームの「合計金額」の様にテキストボックスで、サブフォームの「合計金額」の『総合計』を表示したいです。 総合計がある一定の金額になるように、サブフォームの「数量」を決めて行きたいのです。だから、一定金額から『総合計』を引いて残金も表示したいのですが、『総合計』の求め方がわからなくて困っています。 総合計や合計金額はデータとしてテーブルには残らなくてもOKです。 初心者なので、できればわかりやすく簡単な方法がうれしいです うまく伝えれなくて不明な点があるかと思いますが、なにとぞお願いします

みんなの回答

  • 30246kiku
  • ベストアンサー率73% (370/504)
回答No.1

2010は持っていないので、2007での例になります。 (添付図のような感じと仮定します) サブフォーム) ・ヘッダ or フッタに総合計用のテキストボックス「txts1」を配置   コントロールソース: =Sum([金額]*[数量])   書式:通貨 ※ 画像では「金額」ではなく「単価」となっています メインフォーム) ・一定金額用テキストボックス「txt1」を配置   書式:通貨 ・サブフォームの総合計を表示するテキストボックス「txt2」を配置   コントロールソース: =[FSUB].[Form]![txts1]   書式:通貨  ※サブフォームコントロール名を「FSUB」と仮定 ・差額表示用テキストボックス「txt3」を配置   コントロールソース: =[txt1]-[txt2]   書式:通貨   条件付き書式を設定(※不要かも)   「フィールドの値」「次の値より小さい」「0」にして、太字/赤色 これで、近い動きになると思います。 図は帳票表示ですが、単票表示でも総合計は求まります。 ※ 「txt2」「txt3」「txts1」は見るだけなので、   「編集ロック」を「はい」、「使用可能」を「いいえ」にしても・・・ ※ サブフォームに配置した「txts1」は、「可視」を「いいえ」にしても・・・ ※ 追加したテキストボックスは表示するだけです。(保存はしません) ※ 後は「txt1」に、どこからか一定金額を設定する処理を入れれば・・・と思います。   (現在は手入力) ※※ 基本は上記のような感じですが、引っかかるところが1つ2つ > ・金額(dlookupを使って「商品一覧表」から金額を表示しました) これは「金額」のコントロールソースに =DLookup("金額","商品一覧表","商品名 = '" & [商品名] & "'") とか記述しているのでしょうか。 であれば、上記「txts1」で記述した =Sum([金額]*[数量]) はエラーとなります サブフォームは「テーブル1」から作られているようなので、 レコードソースに指定する部分を見直します。 SELECT T1.*, T2.金額 FROM テーブル1 AS T1 INNER JOIN 商品一覧表 AS T2 ON T1.商品名 = T2.商品名 ・・・・ とかにしておくと、商品名が入力された時点で「金額」が表示されます。 表示上「金額」は入力するところではないので、入力できないようにしておきます。 この状態であれば、上記「txts1」で記述した =Sum([金額]*[数量]) を使えます。 なお、テーブル1にも「金額」があり、「商品名」の更新後処理で  Me.金額 = DLookup("金額","商品一覧表","商品名 = '" & Me.商品名 & "'") と都度参照設定しているのであれば問題はなく、そのままで良いと思います。 キーポイントは、「金額」「数量」ともレコードソースで得られている・・・・ ※ > サブフォームの「合計金額」の『総合計』を表示したいです。 が、複数のサブフォームの合計という意味なら上記は関係ありません。

frontier78
質問者

お礼

やってみます^^ エラーがでてなかなかできなかったのですが、dlookupを使ってたからなんですね^^ ありがとうございました!m--m