2017-11-29 24 views
0

Dlookupを使用して、変数 "SCount"を設定する2つの条件( "s"と "エラー")を使用してクエリの値を検索しようとしています。 sはシフト番号の整数、Errorは文字列です。どちらもクエリのフィールドです。 Dlookupは、データ型の文字列でなければならないクエリから引き出します。クエリは、フィールドが文字列であるテーブルから取り出されています。だから私は不一致のエラーが出ている理由がわからない。クエリで文字列を比較するときDLookupの問題

コードを実行すると、エラー "ランタイムエラー '3464'基準または式のデータ型が一致しません。 'が表示されます。 SCount Dlookup内のErrorの場合。フィールドは、クエリ内の文字列である場合

コード

Dim Error As String 
Dim i As Integer 
Dim s As Integer 
Dim n As Integer 
Dim SCount As Variant 
Dim sum As Double 
sum = 0 
i = 1 
s = 1 
n = 1 
Do Until i > 5 
If Not IsNull(DLookup("[Type of Error]", "RankedSumOfErrors", "[Ranking] = " & i)) Then 
    Error = DLookup("[Type of Error]", "RankedSumOfErrors", "[Ranking] = " & i) 
    Me.Controls("lbl" & i & "").Caption = Error 
     Do Until s > 3 
      SCount = DLookup("[SumOfNumber of Errors]", "ErrorsByShift", "[Shift] = " & s & " AND [Type of Error] = '" & Error & "'") 
      Me.Controls("lbls" & s & "").Caption = SCount 
      i = i + 1 
      sum = sum + SCount 
     Loop 
      Me.Controls("Total" & i & "").Caption = sum 
      sum = 0 
Else 
    Me.Controls("lbl" & i & "").Caption = "N/A" 
    i = i + 1 
End If 

Loop 
+0

あなたは、変数名として 'ERROR'を使用してはならない - それはVBA言語の一部です。 – Andre

答えて

0

、彼らはDLookUpにようにもする必要があります。

は、エラーを回避するために、あなたのDLookUpに括弧を追加します。

SCount = DLookup("[SumOfNumber of Errors]", "ErrorsByShift", "[Shift] = '" & s & "' AND [Type of Error] = '" & Error & "'")