Access VBA質問箱 IV

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

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


15 / 2242 ツリー ←次へ | 前へ→

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

【13093】Re:お手数をおかけします。VBAについて 亀マスター 16/10/21(金) 19:28 回答[未読]

【13093】Re:お手数をおかけします。VBAについて
回答  亀マスター  - 16/10/21(金) 19:28 -

引用なし
パスワード
   >  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
せっかく四捨五入をするための関数を用意しているのに、それを使わずに別途四捨五入のための処理をしているのが気になります。

15 / 2242 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
966109
(SS)C-BOARD v3.8 is Free