dポイントプレゼントキャンペーン実施中!

MicrsoftAccess2000「見積請求納品システム」を使用しています。
取引先の消費税の計算方法を四捨五入と切り捨てに区別したいです。
以前にも同じ質問をしたのですが、難しい為諦めました・・・。
ですが、やはりシステムの変更が必要なので教えてください!

Module1に以下の式があります。
Public Function funcSG(xCy As Currency) As Currency
If xCy > 0 Then
xCy = Int(xCy + 0.55)
Else
xCy = Int(xCy - 0.55)
End If
funcSG = xCy
End Function

請求書コマンドマクロは以下のようになっています。
マクロ名 計算
アクション 値の代入

アイテム [Forms]![請新フォーム]![消費税額]
式 funcSG([Forms]![請新フォーム]![税抜金額]*0.05)

アイテム [Forms]![請修フォーム]![消費税額]
式 funcSG([Forms]![請修フォーム]![税抜金額]*0.05)

今は全て四捨五入されるようになっていると思うので、切り捨てもできるようにしたいです。
得意先テーブルに消費税区分を設けて区別したいです!
宜しくお願い致します!

A 回答 (24件中21~24件)

#2です



頑張っていますね。

関数を用意しても、それを使う/使わない、の判別が必要になりますよね。
この判別が邪魔かな?って思ったので、前回の回答になってました。

> 得意先テーブルに消費税区分を設けて区別したいです
これに従って考えてみると、以下に例)

得意先テーブルに新設する消費税区分(整数型)に
1 : 切り捨て
2 : 四捨五入
3 : ・・・・
という値で意味付けしておきます。(1~の連番にします)

計算したいフィールド名が「金額」だとした場合、

Int(Choose([消費税区分],[金額],funcSG([金額]),XXXXXXX))

XXXXXXX 部分は、消費税区分に3以上があったら記述を追加していきます。


消費税区分を1~の連番にしたのは、Choose を使いたかったから。
ヘルプで機能を見てください。

検証していませんが、こんな感じだったと思います。


また、funcSG の様に関数にしても良いと思います。
その時の引数は、消費税区分、金額 になるのでしょうか。
関数にするのなら、Choose にこだわる必要はありません。


※※
ただ単に、得意先テーブルに消費税区分フィールドを追加しただけでは、
消費税率の様な履歴を見ることができません。
(現時点での適用しかわかりません)
厳密にするのなら、消費税率のように
適用日、得意先ID、消費税区分 などの項目をもったテーブルが必要になると思います。

前回の回答では、この点を考慮したものにはなっていませんでした。
失礼しました。

この回答への補足

30246kikuさんありがとうございます!

得意先テーブルに消費税区分を設けると区別できると他で調べたのでその方法しかないと思っていました・・・
ので「funcSG の様に関数にしても良いと思います。」というような方法があれば教えていただきたいです。

請求書コマンドマクロ
アクション 値の代入
アイテム [forms]![請新フォーム]![消費税額]
式 Int(Choose([消費税区分],CCur([Forms]![請新フォーム]![税抜金額]*0.05),funcSG([Forms]![請新フォーム]![税抜金額]*0.05)))

上記のように変更して請求書を新規作成したところ「このオブジェクトにはオートメーションオブジェクト'消費税区分’は含まれません」というエラーになります。
引数は、消費税区分だと考えて進めているつもりです・・・

宜しくお願いします!!!

補足日時:2010/04/15 17:23
    • good
    • 0

お尋ねしたいこと。



(1)
返品とかの場合はマイナス伝票を
発行されますか。その場合は
現在どのようにされていますか。

(2)
切り上げは考えておられますか。
切り上げが必要な場合があるならば、
切り上げの場合、端数の切り上げ位置は
どこでしますか。
例えば小数点第一で行なうか、あるいは
小数点第二で行なうか、など。

この回答への補足

piroin654さんありがとうございます!!

(1)マイナス伝票は発行しないです!

(2)現在は切り上げの取引先は無いので、端数の切り上げ位置をどこでするかなどは未定です・・・
計算方法などは取引先に決めていただいてるのでどうしたらよろしいでしょうか?

補足日時:2010/04/13 17:26
    • good
    • 0

前のご質問で、どう発展され解決されたのでしょうか。

判断できません。
http://oshiete1.goo.ne.jp/qa5792370.html

他のご質問も同様で、判断できません。

そもそも、今回作ろうとしているものの消費税部分は、0.05 の定数(即値)を使うのでしょうか。

今回作ったものを何年使おうとしていますか?

その間に消費税は変わらないのですか?
変わったとして、過去履歴を見る際に当時の消費税換算のものを見たい等要求は無視しますか?

消費税が変わるまで・・・でOKとしますか?

変わる可能性のある定数は浮かしておくものと、私は考えます。
以下参考になると思います。(消費税率の例になりますが)
ただ、データを整数、実数で持つ、は考え方だと思います

参考QA
http://www.accessclub.jp/bbs/0198/beginers61905. …

この回答への補足

30246kikuさんありがとうございます!!

http://oshiete1.goo.ne.jp/qa5792370.html
上記の質問後には取引先テーブルの項目に「加算」を追加して進める
つもりでしたが、上司と相談した結果、0.5で操作するのは
データ管理や引継ぎなど何かと不安なので、やはり四捨五入を
しているということが分かりやすいやり方で進めようという話に
なっての再度の質問です・・・

今回作ったものはこれからずっと使う予定です。
消費税も変わると思いますし、まだまだ手直しの必要な
システムなので他にも変更箇所が出てくると思います。
変わった際には当時の消費税換算のものを見たいです。

まず参考QAをもとにやってみようと思います!

補足日時:2010/04/13 17:16
    • good
    • 0
この回答へのお礼

アクション 値の代入
アイテム [Forms]![請新フォーム]![消費税額]
式 Int(CCur([Forms]![請新フォーム]![税抜金額]*DLookUp("税率","消費税率","適用日付=#" & DMax("適用日付","消費税率","適用日付<=#" & [Forms]![請新フォーム]![日付] & "#") & "#")))

上記で消費税率テーブルを作り、それと関係させることには成功しました!!
次は客先によって消費税の計算方法(切捨て、四捨五入)を区別したいです!
30246kikuさんありがとうございました!

お礼日時:2010/04/14 16:01

消費税の1円未満は切り捨てです四捨五入ではありません

この回答への補足

debukuroさんご指摘ありがとうございます!
現在は以下のようになっているので全て切り捨てです・・・

アイテム [Forms]![請新フォーム]![消費税額]
式 Int(CCur([Forms]![請新フォーム]![税抜金額]*0.05))

アイテム [Forms]![請修フォーム]![消費税額]
式 Int(CCur([Forms]![請修フォーム]![税抜金額]*0.05))

こちらを得意先によって切捨てと四捨五入に振り分ける式にしたいです!

補足日時:2010/04/13 16:59
    • good
    • 0

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