Ich denke, ich bin fast mit diesem Projekt da, aber ich brauche Hilfe mit dem SQL-Teil meines Codes. Ich habe begrenzte Erfahrung mit dem SQL-Teil und brauche etwas Hilfe bei der Syntax, da ich 'Laufzeitfehler 3075 Syntaxfehler fehlt Operator im Abfrageausdruck' bekomme. Und wenn ich die SQL korrekt mit dem Query SQL inkorporiere. Die SQL aus der Abfragetabelle ist.Multiple Multi Select Listenfelder VBA/SQL Query
SELECT warehouseMetrics.Date, warehouseMetrics.Client, Teammates.[User ID], JobDescriptions.[Job Code Description], warehouseMetrics.[Perf Percent], Supervisors.Supervisor
FROM ((Teammates INNER JOIN warehouseMetrics ON Teammates.[User ID] = warehouseMetrics.[User ID]) INNER JOIN Supervisors ON Teammates.Supervisor = Supervisors.Supervisor) INNER JOIN JobDescriptions ON warehouseMetrics.[Job Code Description] = JobDescriptions.[Job Code Description]
WHERE (((warehouseMetrics.Date) Between [Forms]![MasterForm]![txtBeginDate] And [Forms]![MasterForm]![txtEndDate]))
ORDER BY warehouseMetrics.Date;
Und der Code, der die Abfrage ausgeführt wird ... ist
Dim Q As QueryDef, DB As Database
Dim Criteria1 As String
Dim Criteria2 As String
Dim Criteria3 As String
Dim Criteria4 As String
Dim itm As Variant
Dim strSQL As String
Set DB = CurrentDb()
Set QueryDef = DB.QueryDefs("MasterReportQuery")
For Each itm In Me!lstSupervisor.ItemsSelected
Criteria1 = Criteria1 & "," & Me!lstSupervisor.ItemData(itm) & ""
Next itm
For Each itm In Me!lstClient.ItemsSelected
Criteria2 = Criteria2 & "," & Me!lstClient.ItemData(itm) & ""
Next itm
For Each itm In Me!lstTeammates.ItemsSelected
Criteria3 = Criteria3 & "," & Me!lstTeammates.ItemData(itm) & ""
Next itm
For Each itm In Me!lstJobs.ItemsSelected
Criteria4 = Criteria4 & "," & Me!lstJobs.ItemData(itm) & ""
Next itm
If Len(Criteria1) = 0 Or Len(Criteria2) = 0 Or Len(Criteria3) = 0 Or Len(Criteria4) = 0 Then
MsgBox "You did not select anything"
Exit Sub
End If
Criteria1 = Right(Criteria1, Len(Criteria1) - 1)
Criteria2 = Right(Criteria2, Len(Criteria2) - 1)
Criteria3 = Right(Criteria3, Len(Criteria3) - 1)
Cirteria4 = Right(Criteria4, Len(Criteria4) - 1)
MsgBox (Criteria1)
MsgBox (Criteria2)
MsgBox (Criteria3)
MsgBox (Criteria4)
strSQL = "SELECT warehouseMetrics.Date, warehouseMetrics.Client, Teammates. [User ID]," & _
"JobDescriptions.[Job Code Description], warehouseMetrics.[Perf Percent], Supervisors.Supervisor" & _
"FROM ((Teammates INNER JOIN warehouseMetrics ON Teammates.[User ID] = warehouseMetrics.[User ID])" & _
"INNER JOIN Supervisors ON Teammates.Supervisor = Supervisors.Supervisor) INNER JOIN" & _
"JobDescriptions ON warehouseMetrics.[Job Code Description] = JobDescriptions.[Job Code Description]" & _
"WHERE warehouseMetrics.Client IN (" & Criteria2 & ")" & _
"Supervisors.Supervisor IN (" & Criteria1 & ")" & _
"Teammates.[User ID] IN (" & Criteria3 & ")" & _
"JobDescriptions.[Job Code Description] IN (" & Criteria4 & ");"
QueryDef.SQL = strSQL
DoCmd.OpenQuery "MasterReportQuery"
Set DB = Nothing
Set QueryDef = Nothing
End Sub
Haben Sie Ihre letzte strSQL überprüft, um herauszufinden, ob es gültige SQL ist? Ich frage mich zum Beispiel, ob Ihre Kriterien1, 2, 3 usw. als Zeichenfolge enden, die mit einem Komma beginnt, da die erste Schleife ein Komma mit einer leeren Variablen verkettet. – Ambulare
Sind alle Felder Ihrer Kriterien numerisch? – SunKnight0
Alle Kriterien sind als Kurztext eingerichtet. – lPaclMan