Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

SQL Query per VBA

Begonnen von skip2mylou, Dezember 14, 2022, 12:53:17

⏪ vorheriges - nächstes ⏩

skip2mylou

Ich habe folgendes SQL, das ich per Button(über VBA) anstoßen möchte.
Leider kommen immer Laufzeitfehler 3075: Syntaxfehler in Abfrageausdruck 'SELECT 1'

Das eigentliche SQL, das auch funktioniert (SQL Server getestet)

INSERT INTO tmp_KSTRechnung
SELECT
    1
  , kad.Kostenstelle
  , kad.Kostenart
  ,  '20221001'
  , SUM((-s.soll -s.Haben)*kad.Anteil/100) AS Betrag
  , 'Addison' AS AngelegtProgramm
  , 'dh' AS AngelegtVon
  , getDate() AS AngelegtAm
FROM __EOG_AddisonSaldo s
INNER JOIN __EOG_KSTZuordnungAddison kad ON kad.Mandant=s.Mandant AND kad.Kostenart=s.Kontonummer
WHERE s.Kalendermonat = '20221001'
GROUP BY kad.Kostenart, kad.Kostenstelle



IN VBA:

StrSQL = "INSERT INTO dbo_tmp_KSTRechnung VALUES " & _
" (SELECT 1, kad.Kostenstelle, kad.Kostenart,'20221001', " & _
" SUM((-s.soll -s.Haben)*kad.Anteil/100) AS Betrag, " & _
" 'Addison' AS AngelegtProgramm, " & _
"'eeh' AS AngelegtVon, " & _
" getDate() AS AngelegtAm " & _
" FROM __EOG_AddisonSaldo s " & _
" INNER JOIN __EOG_KSTZuordnungAddison kad ON kad.Mandant=s.Mandant AND kad.Kostenart=s.Kontonummer " & _
" WHERE s.Kalendermonat = '20221001' " & _
" GROUP BY kad.Kostenart, kad.Kostenstelle);"

Ich hoffe einer kann mir helfen. Vielen Dank :-)

ebs17

Mit freundlichem Glück Auf!

Eberhard

markusxy

Warum verwendest du Values, entspricht ja nicht dem Beispiel?

Machst du das in Access per Passthrough Abfrage oder adodb.command?
Was spricht gegen eine Prozedur am Server, anstatt der Murxerei mit VBA?

Abgesehen davon frage ich mich, warum beim funktionierenden SQL Statement kein Schema verwendet wird.

skip2mylou

Hallo zusammen,

danke für eure Rückmeldung. Habs jetzt doch über SP auf dem Server gelöst und in VBA diese dann mit Parameter ausgeführt.

VG
skip

Josef P.

Hallo!

Grundsätzlicher Tipp zu Fehlersuche:
Wenn du weißt, wie die fertige SQL-Anweisung aussehen soll:
StrSQL = "INSE...."
debug.Print StrSQL
Der Inhalt der Variablen steht dann im Direktbereich vom VBA-Editor. Den Text von dort kopieren und z. B. im SQL-Server-Managementstudio testen.

Gruß
Josef