2017-11-29 7 views
0

두 가지 조건 ("s"및 "오류")을 사용하여 쿼리에서 "SCount"변수를 채우기 위해 Dlookup을 사용하려고합니다. 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 & "'")