Tabellenanfügeabfrage als Makro mit SQL
Verfasst: Di, 09.02.2021 12:10
Hallo,
ich komme mit einer Tabellenanfügeabfrage nicht weiter und brauche Hilfe!
Habe folgendenden SQL text erstellt der auch unter SQL Ausführen funktioniert:
INSERT INTO "BestellungGesTbl" ("Hersteller","Artikelnummer","Bezeichnung","Menge","RepNr", "Ersatzteil_ID","Status" ) SELECT "Ersatzteil_Tbl"."Hersteller", "Ersatzteil_Tbl"."Artikelnummer", "Ersatzteil_Tbl"."Bezeichnung", "ReptaraturteileNeu_Tbl"."Menge", "ReptaraturteileNeu_Tbl"."RepNr", "Ersatzteil_Tbl"."Ersatzteil_ID", "ReptaraturteileNeu_Tbl"."Status" FROM "ReptaraturteileNeu_Tbl", "Ersatzteil_Tbl" WHERE "ReptaraturteileNeu_Tbl"."RTID" = "Ersatzteil_Tbl"."Ersatzteil_ID" AND "Ersatzteil_Tbl"."Hersteller" = 0 AND "ReptaraturteileNeu_Tbl"."Status" = 1
Daraus für ein Makro folgendes geschrieben:
"INSERT INTO ""BestellungGesTbl"" (""Hersteller"",""Artikelnummer"",""Bezeichnung"",""Menge"",""RepNr"", ""Ersatzteil_ID"",""Status"" ) (SELECT ""Ersatzteil_Tbl"",""Hersteller"", ""Ersatzteil_Tbl"",""Artikelnummer"", ""Ersatzteil_Tbl"",""Bezeichnung"", ""ReptaraturteileNeu_Tbl"",""Menge"", ""ReptaraturteileNeu_Tbl"",""RepNr"",""Ersatzteil_Tbl"",""Ersatzteil_ID"", ""ReptaraturteileNeu_Tbl"",""Status"" FROM ""ReptaraturteileNeu_Tbl"",""Ersatzteil_Tbl"" WHERE ""ReptaraturteileNeu_Tbl"",""RTID"" = ""Ersatzteil_Tbl"",""Ersatzteil_ID"" AND ""Ersatzteil_Tbl"",""Hersteller"" = 0 AND ""ReptaraturteileNeu_Tbl"",""Status"" = 1)"
Nun reichen meine SQL kenntnisse beiweitem nicht aus um das zukontrollieren bzw zu verbessern.
Dann habe ich hier im Forum folgendes gefunden und meinen SQL Text eingefügt:
Sub NeueBestellung
Dim oStatement As Object, oDatenbankKontext As Object, oDatenquelle As Object
Dim oVerbindung As Object
Dim sSQL As String
oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "Lokdatenbank" )
oVerbindung = oDatenquelle.getConnection( "" , "" )
oStatement = oVerbindung.createStatement()
sSQL = "INSERT INTO ""BestellungGesTbl"" (""Hersteller"",""Artikelnummer"",""Bezeichnung"",""Menge"",""RepNr"", ""Ersatzteil_ID"",""Status"" ) (SELECT ""Ersatzteil_Tbl"",""Hersteller"", ""Ersatzteil_Tbl"",""Artikelnummer"", ""Ersatzteil_Tbl"",""Bezeichnung"", ""ReptaraturteileNeu_Tbl"",""Menge"", ""ReptaraturteileNeu_Tbl"",""RepNr"",""Ersatzteil_Tbl"",""Ersatzteil_ID"", ""ReptaraturteileNeu_Tbl"",""Status"" FROM ""ReptaraturteileNeu_Tbl"",""Ersatzteil_Tbl"" WHERE ""ReptaraturteileNeu_Tbl"",""RTID"" = ""Ersatzteil_Tbl"",""Ersatzteil_ID"" AND ""Ersatzteil_Tbl"",""Hersteller"" = 0 AND ""ReptaraturteileNeu_Tbl"",""Status"" = 1)"
oStatement.execute(sSQL)
oVerbindung.close()
oStatement.close()
End Sub
es ergibt die Fehlermeldung:
.......Missing ) in Statement.......
Ich möchte Euch um Hilfe Bitten
Viele Grüße Volker
ich komme mit einer Tabellenanfügeabfrage nicht weiter und brauche Hilfe!
Habe folgendenden SQL text erstellt der auch unter SQL Ausführen funktioniert:
INSERT INTO "BestellungGesTbl" ("Hersteller","Artikelnummer","Bezeichnung","Menge","RepNr", "Ersatzteil_ID","Status" ) SELECT "Ersatzteil_Tbl"."Hersteller", "Ersatzteil_Tbl"."Artikelnummer", "Ersatzteil_Tbl"."Bezeichnung", "ReptaraturteileNeu_Tbl"."Menge", "ReptaraturteileNeu_Tbl"."RepNr", "Ersatzteil_Tbl"."Ersatzteil_ID", "ReptaraturteileNeu_Tbl"."Status" FROM "ReptaraturteileNeu_Tbl", "Ersatzteil_Tbl" WHERE "ReptaraturteileNeu_Tbl"."RTID" = "Ersatzteil_Tbl"."Ersatzteil_ID" AND "Ersatzteil_Tbl"."Hersteller" = 0 AND "ReptaraturteileNeu_Tbl"."Status" = 1
Daraus für ein Makro folgendes geschrieben:
"INSERT INTO ""BestellungGesTbl"" (""Hersteller"",""Artikelnummer"",""Bezeichnung"",""Menge"",""RepNr"", ""Ersatzteil_ID"",""Status"" ) (SELECT ""Ersatzteil_Tbl"",""Hersteller"", ""Ersatzteil_Tbl"",""Artikelnummer"", ""Ersatzteil_Tbl"",""Bezeichnung"", ""ReptaraturteileNeu_Tbl"",""Menge"", ""ReptaraturteileNeu_Tbl"",""RepNr"",""Ersatzteil_Tbl"",""Ersatzteil_ID"", ""ReptaraturteileNeu_Tbl"",""Status"" FROM ""ReptaraturteileNeu_Tbl"",""Ersatzteil_Tbl"" WHERE ""ReptaraturteileNeu_Tbl"",""RTID"" = ""Ersatzteil_Tbl"",""Ersatzteil_ID"" AND ""Ersatzteil_Tbl"",""Hersteller"" = 0 AND ""ReptaraturteileNeu_Tbl"",""Status"" = 1)"
Nun reichen meine SQL kenntnisse beiweitem nicht aus um das zukontrollieren bzw zu verbessern.
Dann habe ich hier im Forum folgendes gefunden und meinen SQL Text eingefügt:
Sub NeueBestellung
Dim oStatement As Object, oDatenbankKontext As Object, oDatenquelle As Object
Dim oVerbindung As Object
Dim sSQL As String
oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "Lokdatenbank" )
oVerbindung = oDatenquelle.getConnection( "" , "" )
oStatement = oVerbindung.createStatement()
sSQL = "INSERT INTO ""BestellungGesTbl"" (""Hersteller"",""Artikelnummer"",""Bezeichnung"",""Menge"",""RepNr"", ""Ersatzteil_ID"",""Status"" ) (SELECT ""Ersatzteil_Tbl"",""Hersteller"", ""Ersatzteil_Tbl"",""Artikelnummer"", ""Ersatzteil_Tbl"",""Bezeichnung"", ""ReptaraturteileNeu_Tbl"",""Menge"", ""ReptaraturteileNeu_Tbl"",""RepNr"",""Ersatzteil_Tbl"",""Ersatzteil_ID"", ""ReptaraturteileNeu_Tbl"",""Status"" FROM ""ReptaraturteileNeu_Tbl"",""Ersatzteil_Tbl"" WHERE ""ReptaraturteileNeu_Tbl"",""RTID"" = ""Ersatzteil_Tbl"",""Ersatzteil_ID"" AND ""Ersatzteil_Tbl"",""Hersteller"" = 0 AND ""ReptaraturteileNeu_Tbl"",""Status"" = 1)"
oStatement.execute(sSQL)
oVerbindung.close()
oStatement.close()
End Sub
es ergibt die Fehlermeldung:
.......Missing ) in Statement.......
Ich möchte Euch um Hilfe Bitten
Viele Grüße Volker