2017-07-17 11 views
1

のロジックを探すのに苦労しています。テーブルをループして、1〜4の値を含む特定の列が4行あるかどうかを確認する必要があります。Forループ - 特定の状況

テーブルの例:

| cty | st | val |

| 03 | 23 | 1 |

| 03 | 23 | 2 |

| 03 | 23 | 3 |

| 03 | 23 | 4 |

カラムvalに1〜4の値が含まれているかどうかを確認する必要があります。テーブルは常にval ASCによってソートされますが、テーブルには常に4つの値がすべて含まれているとは限りません。この表に1〜4がない場合は、ユーザーにエラーメッセージを発行する必要があります。 (問題ではない)。

私の問題はこれをチェックするループロジックです。

私はいくつかの方法を試しましたが、これは現在私が探しているものが得られていません。

For i As Integer = 1 To 4 Step 1 
    For Each dr As DataRow In dt.Rows 

     'if not all 4 growing season per county are entered, show error message 
     If i <> dr("grows") Then 

      FillErrorResultObject("ERROR00139", "", "", strCountyName, "", "", "", "", "", dtErrorTable, objErrorResult) 
      blnError = True 
      Exit For 

     End If 

    Next 
    If blnError = True Then Exit For 
Next 

****私のサンプルテーブルのEDIT - 'val'は、コード例で 'grows'と同じ列です。私はそれをそのまま残して、このコメントを追加することを考えました。

+0

dr( "Grows")<0またはdr( "Grows")> 4 Then Error ... 'のように辞書を使用することはできますか? 'i'ループを取り除く。 – LarsTech

+0

私は1、2、3、4のすべての値を持っていることを確認する必要があります。私は1と2、または1,2,3を持っていればこのステートメントはエラーになりません。 – madmike

答えて

2

4つの値がすべて表に存在するかどうかを知る必要があるので、4つの値が存在するかどうかを調べる必要があります。

+0

ありがとう。まさに私が必要としたもので、魅力のように働くものです。私は前に辞書を使ったことはありません。 – madmike

関連する問題