Hallo ihr klugen Köpfe
Ich habe eine Abfrage deren SQL deren sql aus der Abfage ist so
SELECT DISTINCTROW Format$([Kassabuch].[Datum],'mm yyyy') AS [Datum nach Monaten], Sum(Kassabuch.BetragEin) AS SUEinz, Sum(Kassabuch.BetragAus) AS SUAusz, Sum(Nz([BetragEin])-Nz([BetragAus])) AS Saldo
FROM Kassabuch
GROUP BY Format$([Kassabuch].[Datum],'mm yyyy'), Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1
ORDER BY Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1;
in VBA hab ich folgendes
sql1 = "SELECT DISTINCTROW Format$([Kassabuch].[Datum],'mm yyyy') AS [Datum nach Monaten], Sum(Kassabuch.BetragEin) AS SUEinz, Sum(Kassabuch.BetragAus) AS SUAusz, Sum(Nz([BetragEin])-Nz([BetragAus])) AS Saldo"
SQL2 = "FROM Kassabuch"
SQL3 = "GROUP BY Format$([Kassabuch].[Datum],'mm yyyy'), Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1"
SQL4 = "ORDER BY Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1"
SQL = sql1 & SQL2 & SQL3 & SQL4
Fehlermeldung
Die Selectanweisung schließt ein reserviertes Wort oder einen Argumentnamenein, das/der falsch, mit falscher Zeichensetzung oder überhaupt nicht eingegeben wurde.
Wo ist denn da der Fehler?
Vielen Dank für eure Hilfe
Wolfgang
Hallo,
da fehlen einige Leerzeichen.
Lasse Dir mit Debug.Print den SQL String im Direktberich ausgeben, dann siehst Du wo.
Und vermeide SQL als Variablenname. Vor Strings macht man ein str, dann hat man dieses Problem nicht.
Dim strSQL As String z.B. Sinngemäß auch für die anderen Variablen.
Funktioniert leider noch nicht
untenstehender SQL ist aus debug.print
SELECT DISTINCTROW Format$([Kassabuch].[Datum],'mm yyyy') AS [Datum nach Monaten], Sum(Kassabuch.BetragEin) AS SUEinz, Sum(Kassabuch.BetragAus) AS SUAusz, Sum(Nz([BetragEin])-Nz([BetragAus])) AS Saldo FROM Kassabuch GROUP BY Format$([Kassabuch].[Datum],'mm yyyy'), Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1 ORDER BY Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1;
Der SQL funktioniert wenn ich ihn in eine Abfrage kopiere.
VB meldet Fehler 2342
Eine ausführen SQL-Aktion erfordrtt ein Argument, das aus einer SQL-Anweisung besteht.
Hab keinen Plan wo es da noch hakt?
Wolfgang
Hallo Wolfgang,
ZitatVB meldet Fehler 2342
Eine ausführen SQL-Aktion erfordrtt ein Argument, das aus einer SQL-Anweisung besteht.
Was machst Du denn in VBA mit dem zusammengesetzten SQL-String?
Will fragen, welche Zeile wird den gelb unterlegt wenn's diesen Fehler wirft?
Kann es sein, dass Du damit ein DoCmd.RunSQL oder ein CurrentDb.Execute fütterst?
Falls Ja, - vergiss es ;). Das geht nur mit Aktionsabfragen (UPDATE/INSERT).
gruss ekkehard
Hallo,
Und wie geht es mit dem SQL String weiter, bzw. was hat er für eine Aufgabe?
Und zeige mal die komplette VBA Prozedur.
ZitatUnd wie geht es mit dem SQL String weiter, bzw. was hat er für eine Aufgabe?
Weiss er wohl selber nicht ;)
Hallo,
Private Sub cmdAusgabe_Click()
Dim rst As DAO.Recordset
Dim strSQL As String
strSQL = "SELECT DISTINCTROW Format$([Kassabuch].[Datum],'mm yyyy') AS [Datum nach Monaten], " & _
"Sum(Kassabuch.BetragEin) AS SUEinz, Sum(Kassabuch.BetragAus) AS SUAusz, " & _
"Sum(Nz([BetragEin])-Nz([BetragAus])) AS Saldo " & _
"FROM Kassabuch " & _
"GROUP BY Format$([Kassabuch].[Datum],'mm yyyy'), Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1 " & _
"ORDER BY Year([Kassabuch].[Datum])*12+DatePart('m',[Kassabuch].[Datum])-1;"
Set rst = CurrentDb.OpenRecordset(strSQL, dbOpenSnapshot)
Do While Not rst.EOF
Debug.Print rst![Datum nach Monaten], rst!SUEinz, rst!SUAusz, rst!Saldo
rst.MoveNext
Loop
Set rst = Nothing
End Sub
Die obenstehende Routine läuft OHNE Fehler ab.
In den Verweisen muß DAO 3.6 gesetzt werden!
ZitatEine ausführen SQL-Aktion erfordrtt ...
Das Absetzen eines 'SELECT-Statements' mit RunSQL oder Execute ist ausgeschlossen, hierbei wird der Fehler 2342 erzeugt.
Dieses ist die Aussage der Fehlermeldung - wenns auch nicht explizit angegeben wird. ::)
Im Anhang ein kleines Beispiel - setze da einen Haltepunkt auf die Sub und lass den Code schrittweise ablaufen.
Ausgabefenster anzeigen!
ZitatWeiss er wohl selber nicht
Kann wohl eher nur eine unpassend leichtfertig abgegebene Vermutung sein - hoffentlich
HTH
[Anhang gelöscht durch Administrator]