• 締切済み

MicrosoftaccessVBAの計算

こんにちは。VBAで分からない点があるので教えてください。 下記なのですが、負割が[200]の時、[点数]×3で200を越えたら[負担金]フィールドの答えが200 それ以下は×3して四捨五入した数にしたいです。 それがどうしてもできません。 [負割]が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

みんなの回答

回答No.1

何がしたいのか良く判らないが、少なくとも If [点数] * 3 > 200 = X Then の文は間違っている。