2016-07-26 17 views
0

いくつかのフィールドが必要なところで私はuserformを作成しました。彼らの名前は簡単に識別するために "R"で終わります。しかし、私はどのようにブール値のフィールドでフラグが立てられた空白のフィールドの数を数えるのか分かりません。 "True"フラグの数が0より大きい場合は、エラーメッセージを表示します。ブール演算子を数えよう

For Each ctl In NewAsset.Controls 
If Right(ctl.Name, 1) = "R" Then 
    If ctl.Value = "" Then 
     flag = True 
    End If 

    If ctl.Value <> "" Then 
     flag = False 
    End If 
End If 
Next 
+0

あなたはtruesの数をカウントする必要はありません。 ctl.Value = ""ならば、メッセージボックスを投げてサブを終了します。 1つが空白になると、チェックを行うことができます。 – sous2817

+0

@ sous2817 - それはUXが貧弱です。ユーザーの観点から見ると、すべての検証エラーを同時に知ることはずっと簡単です。 – Comintern

+0

@Cominternもちろん、必要なフィールドが完成するまでユーザーがフォームを送信できない方が良いでしょうか?この猫を皮膚につける多くの方法、私は1つの選択肢を与えました。 – sous2817

答えて

0
Dim n As Long 
For Each ctl In NewAsset.Controls 
    If Right(ctl.Name, 1) = "R" And ctl.Value = "" Then 
     n = n + 1 
    End If 
Next 
If n > 0 Then MsgBox n & " required fields are not filled!" 
+0

私は別のIf Thenの代わりにandステートメントを使用して、それは完全に動作しました!ありがとうございました! – EmsBish