• ベストアンサー

フォーム上で小計など自動計算するには・・・

アクセス初心者です。 Windows2000で アクセス2000で作ってます。 現在、受注明細のフォームを作ってます。 フォーム上での合計や消費税が自動的に計算されるようにしたいのですが、サブフォームを使わずに設定出来るのでしょうか? その設定方法など教えて頂けたらと思います。 宜しくお願い致します。

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

  • ベストアンサー
  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.5

No3の続きです。失礼しました。急いで書いて送ったので短縮してしまいました。データソースをデータのコントロールソースに読み替えてください。 小計のフィールドを選んで右クリックでプロパティを開きその中のデータタブのコントロールソースに式ビルダーで式を作ればOKですよ。 表示だけならこれで大丈夫ですよ。 プロシジャに記述するより記述は簡単にすみます。フォーカス喪失時にイベントプロシジャと表示されていたら消してください。 先程はあいまいに書いてしまってすみません。

renault
質問者

お礼

先程、右寄りにする設定方法を聞きましたが、無事解決出来ました。 本当にいろいろとご協力有難うございました。 まだまだ分からない事があると思いますが頑張って設定したいと思います。

renault
質問者

補足

無事設定できました。有難うございました。 もう1つ質問なんですが, A+B=C で設定したのですが、AとBのテキストボックスに数字を入力した時は、右寄りで入力されているけど、合計のCのテキストボックスには左寄りで合計が入力されてしまいます。 すごく初歩的なことですがどのようにしたら全ての表示を右寄りに合わせる事が 出来るのでしょうか? お手数かけますが宜しくお願い致します。

その他の回答 (4)

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.4

イベントプロシージャに抵抗がないのであれば、DSum関数でもできますね。#先の集計クエリーのようなこと データソースのところに  = DSum('金額', '受注明細テーブル名', '受注番号=' & [受注番号]) ってなかんじで行けそうです。 #Ac2kは持ってないのでこれができるかわかりませんが、ヘルプで調べてみてください

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.3

フォームに明細が全て表示されるなら合計を表示するフィールドを作成しデータソースに合計をするフィールド名を記述していけばOKじゃないですか? =[A]+[B]+[C]+[D] の様に。 途中のフィールドに空白やnullが入る可能性があればNz関数を使って =Nz([A])+Nz([B])+Nz([C])+Nz([D]) とすれば合計できます。 消費税を計算したければ =[合計したフィールド]*0.05 でOKです。 やってみてください。

renault
質問者

補足

初歩的なことを聞きますが、データーソースってイベントプロシージャの画面で宜しいのでしょうか? 例えば、小計のフィールドを選んで、プロパティでコードビルダを選択し、イベントでフォーカス喪失時を選ぶとイベントプロシージャの画面が表示されますよね? その画面で記述すれば良いのですよね? 初歩的過ぎてすいません。 宜しくお願い致します。

  • O_cyan
  • ベストアンサー率59% (745/1260)
回答No.2

そのフォームが1受注あたりの受注明細が表示されるフォームであれば出来ます。 そのフォームがデータシート型であればフッタの所にフィールドの合計を表示するフィールドを作りプロパティのデータソースに =Sum([金額]) で金額の合計が出せます。そのフィールドが例えば[合計]として、消費税を表示するフィールドを作りデータソースに =[合計]*0.05 とすれば消費税が計算されます。 質問の内容からだとこんな感じで良いと思います。 質問の意味が違うのなら補足してください。

renault
質問者

補足

早速アドバイス有難うございます。 フォームはデータシート型ではなく、単票形式のフォームなのですがその場合は無理なんですよね? で、金額の合計も1つとかではなく何項目もの小計があって総合計があるパターンなんですが・・・ お手数かけますが宜しくお願いします。

  • yatokesa
  • ベストアンサー率40% (201/496)
回答No.1

受注番号でまとめ、金額の合計を出す集計クエリーを作っておいて、それをフォームのクエリーに追加すればできるんじゃないかな?

関連するQ&A