2016-04-26 17 views
0

Soweit ich feststellen kann, ist diese strSQL Anweisung korrekt formatiert. Ich habe ähnlichen Code ohne irgendein Problem in der Vergangenheit verwendet. Allerdings, wenn ich diese laufen lasse, erhalte ich einSyntaxfehler in Access VBA

Laufzeitfehler 3075 - Syntaxfehler (fehlender Operator in Abfrage Ausdruck ‚BucketID = CA.CAD.BAX.0.3.0.CY UND MaxofMarkAsofDate = # 8/.. 20/2014 #‘

Fehlermeldung das ist frustrierend vage und ich kann nicht herausfinden, was das Problem mit meiner strSQL Formatierung ist

strSQL = "SELECT * FROM FXData WHERE BucketID=" & Forms!Correlation.cboCurve2.Value & " AND MaxOfMarkAsofDate=#" & MaxOfMarkAsofDate & "# ORDER BY MaxOfMarkasOfDate " 

Debug.Print strSQL 

Set rs = CurrentDb.OpenRecordset(strSQL, Type:=dbOpenDynaset, Options:=dbSeeChanges) 
Set rs2 = CurrentDb.OpenRecordset("HolderTable") 
+1

Fügen Sie Anführungszeichen vor und nach dem String-Wert, den Sie 'BucketID' vergleichen, so dass Stück Ihrer SQL-Anweisung wie folgt aussieht:' BucketID = 'CA.CAD.BAX.0.3.0.CY'' oder Schalter zu einer Parameter-Abfrage, und Sie müssen nicht wi kümmern th diese Zitate oder mit den '#' Datum Trennzeichen. – HansUp

+0

Wenn Ihre erste Spalte (normalerweise ausgeblendet) der ID-Wert ist, dann verwenden Sie folgendes: 'forms! Correlation.cboCurve2.column (0)' – LiamH

Antwort

2

Dieser spezifische Teil der Fehlermeldung.:

BucketID = CA.CAD.BAX.0.3.0.CY

zeigt, dass Ihre BucketID ist ein String und keine Nummer, sollten Sie damit es umgeben mit Anführungszeichen:

strSQL = "SELECT * FROM FXData WHERE BucketID='" & Forms!Correlation.cboCurve2.Value & "' AND MaxOfMarkAsofDate=#" & MaxOfMarkAsofDate & "# ORDER BY MaxOfMarkasOfDate " 
+0

danke - Ich habe diese Änderung gemacht, aber jetzt sagt es mir: RUN-TIME ERROR ' 3078 ': Das Microsoft Access-Datenbankmodul kann die Eingabetabelle oder die Abfrage' False 'nicht finden. Stellen Sie sicher, dass es existiert und dass sein Name richtig geschrieben ist. "Ich nenne nirgendwo in diesem Code nichts mit dem Namen" false ", also bin ich mir nicht sicher, worauf das Bezug nimmt – beeba