|
現在、access勉強中です。
現職の会社にデータベースを依頼されたのですが、なかなかうまくいきません。
もしよろしければどこんにちは。VBAで分からない点があるので教えてください。
下記なのですが、負割が[200]の時、[点数]×3 の答えが200を越えたら[負担金]フィールドの答えが[200]で固定。
答えが[199]か[199]以下の場合、そのまま四捨五入。
これができません。
[負割]が200以外の場合は、[点数]×[負割]の出た数を四捨五入した答えを負担金フィールドに表示したいです。
お手数ですがどなたか教えてください。
Private Sub 負担金_BeforeUpdate(Cancel As Integer)
If [負割] = 200 Then
If [点数] * 3 > 200 = X Then
X = 200
Else
If ([点数] * 3 Mod 10) < 5 Then
X = [点数] * 3 - ([点数] * 3 Mod 10)
Else
X = [点数] * 3 - ([点数] * 3 Mod 10) + 10
End If
If [負割] < 199 Then
If [点数] * [負割] Then
Else
If ([点数] * [負割] Mod 10) < 5 Then
X = [点数] * [負割] - ([点数] * [負割] Mod 10)
Else
X = [点数] * [負割] - ([点数] * [負割] Mod 10) + 10
End If
Public Function Rounds(ByVal M As Currency, _
ByVal A As Integer, _
Optional D As Integer = 0) As Variant
Dim R As Currency
Select Case A
Case 0 ' 四捨五入
R = Fix(M * 10 ^ D + 0.5@)
Case 1 '切り捨て
R = Fix(M * 10 ^ D)
Case 2 ' 切り上げ
R = Rounds(M * 10 ^ D + 0.4@, 0)
End Select
Rounds = Sgn(M) * (R / 10 ^ D)
End Function
なたかお知恵を授けてください。
|
|