- ベストアンサー
Access 2000での消費税計算方法変更について助言をお願いします!
- Microsoft Access 2000で作成された「見積請求納品システム」を使っています。来月から取引先の一社のみ消費税の計算方法を四捨五入に変更します。
- マクロ名:計算、アクション:値の代入、アイテム:[Forms]![請新フォーム]![消費税額]、式:Int(CCur([Forms]![請新フォーム]![税抜金額]*0.05))で計算しています。
- 得意先名テーブルに消費税の扱い方区分を持たせることを検討していますが、具体的な連携方法が分かりません。アドバイスをいただきたいです!
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
「消費税区分」が仮に"D"(切り下げ)、"R"(四捨五入)とします。 式は以下のようになります。 IIf([Forms]![請新フォーム]![消費税区分]="D", _ Int(CCur([Forms]![請新フォーム]![税抜金額]*0.05)), _ CLng(CCur([Forms]![請新フォーム]![税抜金額]*0.05))) _(下線)は継続を意味します。実際の定義では続けて1行で 指定してください。IIfはIIf(条件,真の場合,偽の場合)の ように、条件により返す値が違う場合に使います。 「切り上げ」はちょっと難しい(式が長くなる)ので、今回は 記載しませんが、IIfを入れ子にすることで実現できます。
その他の回答 (2)
- nda23
- ベストアンサー率54% (777/1415)
もしかして、まさかとは思うんですが、 =IIf(~)を入れたのは[消費税額]の方ですよね? [税抜金額]ではありませんね? [消費税額]の方には何かイベントはありますか? 提示した数式は「消費税額」を「税抜金額」から求めるもので、 「税抜金額」自体の求め方は私は知りません。また、知ったと しても、業務に絡む仕様の問題なので、申し上げることも ありません。
お礼
=IIF(~)を入れたのは[消費税額]のほうです! [消費税額]の方にはイベントは無かったです・・・ 請求書コマンドマクロだけでも100個以上あるのでどこの情報をお伝えして助言頂いたら良いのかも分かりません・・・ 知識が無さ過ぎたので今はシステム自体は変えずにその都度四捨五入の式に変えて印刷だけすることにします!! 少しずつ勉強してシステムも更新していきたいのでまたよろしくお願い致します!! nda23さんありがとうございました!!
- nda23
- ベストアンサー率54% (777/1415)
[税抜金額]がNullになるからでしょう。 普通は金額なので規定値を0にしておくかと思いました。 Nullの場合は計算しないようにする必要があります。 更に外側にIIfをかぶせます。 IIf(IsNull([Forms]![請新フォーム]![税抜金額]),Null, _ IIf([Forms]![請新フォーム]![消費税区分]="D", _ Int(CCur([Forms]![請新フォーム]![税抜金額]*0.05)), _ CLng(CCur([Forms]![請新フォーム]![税抜金額]*0.05)))) >値を代入したところ >型が一致しません。 既に税抜金額が入力されている所は正しく表示されていますか? 何を入力したのでしょう?入力した結果エラーになるとすれば、 他のVBAとかマクロの処理がオカシイのであって、それを調べる べきです。単にNullでエラーなら、該当フィールドに"#エラー"と 表示されるだけです。
補足
nda23さんご回答ありがとうございます! 何を伝えたらいいのか分からないので分かりにくくて申し訳ないです! アクション:値の代入 アイテム:[Forms]![請新フォーム]![税抜金額] 式:[15]+[610] というマクロもあります! 請新フォームの税抜き金額のプロパティのイベントプロージャを見たら Private Sub 税抜金額_BeforeUpdate(Cancel As Integer) End Sub というものが入っていただけで[15]と[610]が何なのかはわかりませんでした・・・ 自信がないのでまた数式はnda23さんの文章からコピーしました! 税抜き金額を計算する前に 型が一致しません。 とエラーがでます! 入力したのは勤務時間です! 勤務時間を入力すると入力済みの単価と自動的に計算されて小計がでます。 小計の合計が税抜き金額です。 #エラー ではないので請求書コマンドマクロの処理から調べようと思います! 何度も申し訳ありませんが、何を調べたら良いのか教えていただきたいです!
補足
ありがとうございます!! 数式はnda23さんの文章からコピーしてアンダーバーを消して入力したのであっていると思います!! 請新フォームを開き値を代入したところ ! 型が一致しません。 というエラーが発生しました。 Dについてのことだと思ったので確認しましたが、両方半角で統一されていました。 分かりやすく教えてくださったので申し訳ないですが再度助けていただきたいです!!