2017-11-29 1 views
0

Ich versuche Dlookup zu verwenden, um einen Wert in einer Abfrage nach zwei Kriterien ("s" und "Fehler") zu suchen, um die Variable "SCount" aufzufüllen. s ist eine Ganzzahl für die Verschiebungsnummer und Error ist eine Zeichenfolge. Beide sind Felder in der Abfrage. Das Dlookup zieht aus einer Abfrage, die Zeichenfolgen für den Datentyp sein sollte, die Abfrage zieht aus einer Tabelle, in der die Felder Zeichenfolgen sind. Ich bin mir also nicht sicher, warum ich einen Fehler bei der Nichtübereinstimmung bekomme.Problem mit DLookup beim Vergleichen von Zeichenfolgen in Abfrage

Wenn ich den Code ausführen, erhalte ich den Fehler "Laufzeitfehler '3464' Datentyp stimmt nicht in Kriterien oder Ausdruck überein". Für die Error im SCount Dlookup.

-Code

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

Sie sollten nicht verwenden 'Error' als Variablenname - es ist Teil der VBA Sprache. – Andre

Antwort

0

Wenn die Felder Strings in der Abfrage sind, sollten sie so auch in der DLookUp sein.

In Klammern Ihre DLookUp den Fehler zu vermeiden:

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