• ベストアンサー

accessのレポートで別のグループフッターの計算結果を集計したい

お世話になります。 初めて質問させていただきます。 下記のように、作家さんへ支払った原稿料の明細を、 作家別、さらに支払日別にグループ化し、 各支払日のグループフッターで計算した源泉所得税を 作家のグループフッターで合計したいのですが、計算されません。 =============『詳細』 作家 書籍名 支払日 原稿料  =============『支払日グループフッター』 ="原稿料計"__原稿料合計 ←=Sum([原稿料]) ="源泉税"__源泉税 ←=[原稿料計]*0.1 =============『作家グループフッター』 ="原稿料総計"__原稿料合計 ←=Sum([原稿料]) ="源泉税総計"__源泉税合計 ←=Sum([源泉税]) 以前に似た質問をされた方がいらしたのですが その際の解決方法を試してみてもうまくいきませんでした。 試してみたのは、下記の方法です。 作家グループフッターのフォーマット時イベントプロシージャに 書き込みました。 ---------------- Private Sub グループフッター Tmp = Tmp + Me.源泉税 Me.源泉税総計 = Tmp ----------------- この方法だと、源泉税総計の欄に、最後の支払日グループの 源泉税の額だけがが表示されてしまいました。 つたない説明で申し訳ありませんが どなたか分かる方がいらっしゃいましたら よろしくお願いします。

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

  • ベストアンサー
  • venzou
  • ベストアンサー率71% (311/435)
回答No.3

>各支払日のグループフッターで計算した源泉所得税を >作家のグループフッターで合計したいのですが、計算されません。 結局は、原稿料総計*0.1になるのでは? 元のテーブルのデータから集計できるので、 支払日のグループフッターの集計を利用する必要はないかも。 =============『作家グループフッター』 ="原稿料総計"__原稿料合計 ←=Sum([原稿料]) ="源泉税総計"__源泉税合計 ←=Sum([原稿料])*0.1 >作家グループフッターのフォーマット時イベントプロシージャ 念のため、このイベントに関する注意点。 このイベントプロシージャは複数回呼ばれる可能性があります。 FormatCountプロパティのヘルプをご覧下さい。 ヘルプには、FormatCount プロパティで何回呼ばれたか調べられる 様なことが書いてありますが、たまに不可解な現象が発生します。 http://www.penhagi.com/access/ota2003/3133.htm このイベントプロシージャの、呼ばれる順序や回数を、 把握するのは難しいです。 下記のような処理で、正しく計算できる場合が多いですが、 私自身は信用していないので、この方法は使いません。(^^; Dim Tmp As Variant Private Sub 作家グループフッター_Format(Cancel As Integer, FormatCount As Integer)  If FormatCount = 1 Then   Me.源泉税総計 = Tmp   Tmp = 0  End If End Sub Private Sub 支払日グループフッター_Format(Cancel As Integer, FormatCount As Integer)  If FormatCount = 1 Then   Tmp = Tmp + Nz(Me.源泉税)  End If End Sub

keitagon
質問者

お礼

ありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (3)

noname#79209
noname#79209
回答No.4

#1です。 > 結局は、原稿料総計*0.1になるのでは 数学的にはそうだと思いますが、円未満切り捨てを考えると 合計値の0.1だと微妙に異なることもあり得ます。 > このイベントプロシージャは複数回呼ばれる可能性があります。 確かにそうですね。 基本的に源泉徴収は書籍別、日別に算出されるべきものと考えられるので、 いっそのこと、原稿料テーブルからクエリを作成し、 このクエリで、Int(原稿料*0.1)の源泉税額フィールドを作りだし、 このクエリをレポートのレコードソースとしたうえで、 この源泉税額を各グループフッタで合計させた方が安全かも...

keitagon
質問者

お礼

皆様早速のご回答本当にありがとうございます。 おかげさまで正しく計算することができました! vizzarさんのご回答のとおりやってみたところ、 作家グループフッターだけが次のページになった際、 正しく計算されませんでした。 そこでvenzouさんのご回答とおりやってみたところ、上記の現象も出ず正しく計算されました。 やはり > このイベントプロシージャは複数回呼ばれる可能性があります。 が関係しているのでしょうか。 また源泉税の算出の方法ですが、私の説明が足りずに申し訳ございません。 支払日ごとに算出するのですが、その際支払金額が100万円を超えている場合は、100万円に対しては0.1、100万円を越える部分には0.2を かけることになっています。 そのため作家グループフッターの原稿料合計に0.1を掛けるわけにはいきませんでした。 お二人とも本当にありがとうございました。

すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.2

#1です。変数名の記述に誤りがありました。 誤: 1.変数Tempをレポートの定義部で宣言する。 正: 1.変数Tmpをレポートの定義部で宣言する。

keitagon
質問者

お礼

ありがとうございました!

すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.1

> この方法だと、源泉税総計の欄に、最後の支払日グループの > 源泉税の額だけがが表示されてしまいました。 それは当たり前です。 各日付のグループフッタで積算していないからです。 1.変数Tempをレポートの定義部で宣言する。 2.日別のレポートフッタのフォーマット時イベントプロシージャに、   Tmp = Tmp + Me.源泉税 3.作家別のレポートフッタのフォーマット時イベントプロシージャに、   Me.源泉税総計 = Tmp   Tmp = 0 で、如何でしょう。

keitagon
質問者

お礼

ありがとうございました!

すると、全ての回答が全文表示されます。

関連するQ&A