Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


218 / 9994 ←次へ | 前へ→

【13091】お手数をおかけします。VBAについて
質問  みとこんどりあ  - 16/10/21(金) 10:57 -

引用なし
パスワード
   現在、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
なたかお知恵を授けてください。

126 hits

【13091】お手数をおかけします。VBAについて みとこんどりあ 16/10/21(金) 10:57 質問[未読]
【13092】Re:お手数をおかけします。VBAについて みとこんどりあ 16/10/21(金) 11:55 質問[未読]
【13093】Re:お手数をおかけします。VBAについて 亀マスター 16/10/21(金) 19:28 回答[未読]

218 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078188
(SS)C-BOARD v3.8 is Free