Bevor ich anfange, weiß ich, dass hier ein TON von Fehler 3075 Fragen sind, und ich habe einen guten Blick durch sie, um einen zu finden, der mir helfen kann, aber ich war unfähig zu.Zugriff auf VBA-Laufzeitfehler 3075
Ich habe eine Access-Datenbank in VBA geschrieben. Ich versuche, eine SQL-Anweisung auszuführen, die einfach die Datenbank abfragt. Ich bekomme den klassischen 3075-Fehler, was darauf hindeutet, dass meine SQL-Abfrage ungültig ist. Ich habe die Abfrage in ein Meldungsfeld gedruckt und für mich sieht es gut aus, aber ich benutze Inner Joins und ich bin nicht vertraut mit ihnen.
Könnte jemand bitte meinen Code überprüfen, um mir eine Hand zu geben?
My SQL zugehöriger Code VBA unter:
MsgBox strSQL
Set rs = db.OpenRecordset(strSQL, dbOpenDynaset)
If rs.RecordCount > 0 Then
rs.MoveLast
lblTotal.Caption = rs.RecordCount
Else
lblTotal.Caption = "0"
End If
ziemlichen Standard. Ich habe nicht aufgenommen, wie ich strSQL
mache, weil es auf einer komplexen Menge von if-Anweisungen basiert. Der Wert von strSQL wenn ich versuche, den Re-Cord zu setzen:
Mein Verdacht ist, dass es etwas falsch mit der Art, wie ich die Daten am referenzieren. Nur um Ihnen das ganze Bild, unten sind die drei Tabellen verwiesen:
Ich habe versucht, das Problem zu isolieren, indem ich die SQL-Anweisung bis auf den letzten Punkt durchtrenne. Ich könnte es mit einer einfachen Anweisung wie SELECT * FROM tblHistory
arbeiten, sowie einen WHERE
Parameter hinzufügen, aber sobald ich die Inner Join eingeführt habe, bekam ich den Fehler 3075 erneut.
Weiß jemand, wo ich falsch liege? Das macht mich verrückt!
Machen Sie diese 'WHERE'-Klausel zum letzten Teil Ihrer Abfrageanweisung. Ich vermute, dass Sie möglicherweise eine ähnliche Abfrage von Grund auf mit der Entwurfsansicht des Access-Abfrage-Designers erstellen können. Wenn es funktioniert, wechseln Sie zur SQL-Ansicht, um die gültige 'SELECT'-Anweisung anzuzeigen und diese als Modell zu verwenden, wenn Sie Ihren VBA-Code überarbeiten. – HansUp
Du bist ein blutiger Lebensretter, es ging darum, die WHERE-Anweisung am Ende nach dem Inner Join zu setzen. Wenn du das als Antwort aufsetzen willst, werde ich es akzeptieren. Vielen Dank! –