|
> If [点数] * 3 > 200 = X Then
ここがまずおかしいですね。200で上手くいかない場合の直接的な原因はここでしょう。「= X」が余計です。
>If [負割] = 200 Then
>If [負割] < 199 Then
これらに対するEnd Ifがないように思えますが、転記漏れでしょうか?
そのままだと、[負割]が200かどうか以前に、エラーで止まると思いますが。
あと、
Private Sub 負担金_BeforeUpdate(Cancel As Integer)
に対するEnd Subもありませんね。
>If [負割] < 199 Then
> If [点数] * [負割] Then
> Else
(上記のEnd If漏れがなかったとして)これだと[負割]が199のときのパターンが含まれなくなるので、期待した結果が得られませんよ。
あと、わざわざ[負割]が199以下かどうかを判定しているようですが、説明を見ると、200とそれ以外のパターンしかないのではないでしょうか。だったら、199以下かどうかを改めて判定するのではなく、200の場合とそれ以外の場合という形での判定がスマートです。
(例)
If [負割] = 200 Then
<-- 200丁度の場合の処理 -->
Else
<-- それ以外の場合の処理 -->
End If
X という変数は最終的に [負担金] = X とでもしているのでしょうか。
でしたら構わないのですが、このままだと[負担金]が何も変化しないように思えました。それに、わざわざ X という変数を挟まなくても、直接[負担金]を操作すればいいのではないでしょうか。
>Public Function Rounds
せっかく四捨五入をするための関数を用意しているのに、それを使わずに別途四捨五入のための処理をしているのが気になります。
|
|