AIと戦って、あなたの人生のリスク診断 >>

見積書の入力をしています。
メインフォームとサブフォームがあり、サブフォームでは受注明細を入力できるようになっています。
サブフォームの合計金額計算で、単純に【小計】【消費税】【総計】は計算できるのですが、非課税の受注が混ざっている場合、うまくいきません。

非課税項目にチェックを入れて区別などをし、そのチェックが入っていないものだけの消費税を計算できるようにしたいのですが、具体的にどのようにしたら良いのでしょうか?
サブフォームのフィールドは、品名・数量・単価・金額です。
過去の質問は探しましたが見つけられませんでした。
過去にあったら申し訳ないのですが、どうか宜しくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (1件)

レコード毎に課税、非課税のものが混在するのなら、レコード毎に課税区分と消費税のフィールドが要ると思います。



ですから受注明細テーブルのフィールド構成は下記の様にします。

品名
課税区分 数値・byte 1=課税 2=非課税 3=内税とする 
数量
単価
金額
消費税


サブフォームの数量と単価のプロパティ→イベント→更新後の処理に次のようなコードを記述します。(数量のイベントプロシージャだけ記述しておきます。単価のイベントプロシージャにも同様のコードを記述すれば、数量又は単価を入力したときに計算結果が金額と消費税フィールドに算出されます。

Private Sub 数量_AfterUpdate()

If 課税区分=1 Then
金額 = Nz(数量) * Nz(単価)
消費税 = Int(Nz(数量) * Nz(単価) * 0.05)
ElseIf 課税区分=2 Then
金額 = Nz(数量) * Nz(単価)
消費税 = 0
ElseIf 課税区分=3 Then
金額 = (Nz(数量) * Nz(単価)) - Int((Nz(数量) * Nz(単価)) / 1.05 * 0.05)
消費税 = Int((Nz(数量) * Nz(単価)) / 1.05 * 0.05)
Else
金額 = 0
消費税 = 0
End If

End Sub

こんなのでいかがでしょう。
    • good
    • 0
この回答へのお礼

ありがとうございます!!
コードまで教えていただいたので、すぐにできました。
助かりましたm(__)m

お礼日時:2002/11/06 16:39

このQ&Aに関連する人気のQ&A

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

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q★アクセス2000★条件付き合計金額の出し方

請求書をメインフォームとサブフォームで作っています。
サブフォームは、「商品ID」「商品名」「課税区分」「単価」「金額」からなり、受注明細を入力しています。
商品は2つに分類され(A・B)、それぞれの合計金額を計算したいのですが、どうやったらいいのか分からないので、ご回答をお願いします。
分類の仕方ですが
A⇒「商品ID」 0001~0100
B⇒「商品ID」 0101~0200 です。

そしてもう1つ、消費税の計算もうまくできません。
「課税区分」には
課税 ⇒1
非課税⇒2 と入力してあります。
どなたかご回答をお願い致します。

Aベストアンサー

最初に、サブフォームに使っている「商品ID」「商品名」等は
テーブルを元にしているんですよね?
ここでは「商品テーブル」というテーブルがあるとしておきます。

まず合計ですが、DSum関数を使ってはどうでしょうか?
合計金額を格納する変数、lngTotalA,lngTotalBがあるとします。

lngTotalA = DSum("金額","商品テーブル","商品ID >= '0001' AND 商品ID <= '0100')
lngTotalB = DSum("金額","商品テーブル","商品ID >= '0101' AND 商品ID <= '0200')
これでそれぞれの合計が変数に格納されるはずです。
最後の引数が対象を絞る条件になっているので、ここを変更すれば例えばCという分類ができても対応できると思います。

次に消費税ですが、以下の通りでできると思います。
IIf(Nz([課税区分],0) = 1,Nz([金額],0) * 0.05,0)

課税区分が 1 であれば、金額に0.05をかけて消費税を算出、
それ以外であれば、0 を返すようにしています。

最初に、サブフォームに使っている「商品ID」「商品名」等は
テーブルを元にしているんですよね?
ここでは「商品テーブル」というテーブルがあるとしておきます。

まず合計ですが、DSum関数を使ってはどうでしょうか?
合計金額を格納する変数、lngTotalA,lngTotalBがあるとします。

lngTotalA = DSum("金額","商品テーブル","商品ID >= '0001' AND 商品ID <= '0100')
lngTotalB = DSum("金額","商品テーブル","商品ID >= '0101' AND 商品ID <= '0200')
これでそれぞれの合計が変数に格納されるはずで...続きを読む

Qアクセスのレポートのヘッダーを2ページ以降にもつけるには?

アクセスでスタッフの交通費の集計をしレポートに出力しています。1ページ目に所属部署、行き先などヘッダーがあります。2ページ目にも同様のヘッダーを入れたいのですが、どうすればいいのでしょうか?初歩的な質問ですいませんが、困っています。

Aベストアンサー

レポートヘッダーにヘッダーを設定しているとレポートの最初だけ表示されます。
所属部署・行き先等のヘッダーをページヘッダーに移動してレポートヘッダの高さを0にしてください。(レポートヘッダー部に表示するラベル等があればそれに合わせて高さを設定してください。)
そうすれば各ページにヘッダーが表示されます。
ページヘッダーにある各ヘッダーを移動後レポートヘッダー・フッターに何も表示するものがなければレポートヘッダー・フッターを削除してもかまいません。

Qアクセス2010 サブフォーム集計結果を表示させる

テーブルに連結したメインフォーム取引台帳があります。
メインフォームに、入金台帳と仕入金額予定表のサブフォームが2つあります。
それぞれのサブフォームにテキストボックスで合計を表示しています。
入金台帳が取引合計
仕入金額予定表が支払合計
この2つのそれぞれの合計をメインフォームの詳細にテキストボックスを追加して表示させ
さらに集計するためのテキストボックス作って、下記の式を入れたら
エラーが出てしまいます。
レポートではうまくできたのですが、計算結果を表示させる方法を教えてください。
原価率を表示したいのです。

=Sum([取引台帳レポートのサブ出金予定入力表].[Form]![支払合計]/[入金台帳入力用].[Form]![取引合計])

Aベストアンサー

どこまでできているのかが良く分からないので全部・・・

(1)サブフォームの合計欄用テキストボックス
合計用のテキストボックスのコントロールソースに
=sub([合計したいフィールド名])
を作成

(2)メインフォームにサブフォームの合計を表示
サブフォームの合計を表示したいテストボックスのコントロールソースに
=[Forms]![メインフォーム名]![サブフォーム名]![(1)のテキストボックス名]

(3)原価率の表示
原価率を表示したいテキストボックスのコントロールソースに
=[(3)のテキストボックス(仕入用)]/[(3)のテキストボックス(入金用)]

これでできると思います。


人気Q&Aランキング