Ich habe eine Liste von Benutzern (als String-Variable) und möchte sie als Kriterium verwenden (ein Benutzer nach dem anderen), damit mein SQL den Code des ersten Elements auswählt. Daher habe ich eine SQL-Abfrage als Zeichenfolge eingefügt, um sie später im Code auszuführen.Zugriff auf VBA: Variable und Zeichenfolge in SQL-Abfrage kann nicht kombiniert werden
Ich habe dies versucht:
strSQL = "SELECT TOP 1 Item.Code FROM Item WHERE Item.User = '"
strSQL = strSQL & strUserName & "' ORDER BY ID DESC"
Wenn die strUserName = "A-Benutzer" zum Beispiel, ich dieses SQL-Zeichenfolge nur erhalten, nach "Schnell Uhr ...":
SELECT TOP 1 Item.Code FROM Item WHERE Item.User = 'A-user
Der Teil mit "' ORDER BY ID DESC"
ist überhaupt nicht im SQL-String enthalten!
Und durch die Verwendung "Set rst = CurrentDb.OpenRecordset(strSQL)"
die SQL-Abfrage ausgeführt wird, bekomme ich diesen Fehler:
Run-time error '3075': Syntax error (missing operator) in query expression 'Item.User = "A-user"
Wie kann ich das Problem lösen?
Bitte mehr von Ihrem Code als die Verkettung von Saiten zeigen sollte den aktuell angezeigten Code entsprechend arbeiten. um jedoch eine SQL-Anweisung Aufbau wie so das ist klassische Art der SQL-Injektion ... – DAXaholic