SQL Befehl per Makro ausführen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Civilatio
Beiträge: 3
Registriert: Di, 14.04.2009 17:50

SQL Befehl per Makro ausführen

Beitrag von Civilatio »

Hallo,
ich habe mich bereits durch Google und dieses Forum gepflügt, aber entweder bin ich zu blöd, oder ich habe wirklich nichts brauchbares gefunden...
Ich erstelle eine Datenbank für unsere Feuerwehr und möchte nun diesen einfachen SQL-Code in ein Makro einbinden, damit ich die Abfrage über ein Formular ausführen kann

Code: Alles auswählen

INSERT INTO "Atemschutz" ("ID") SELECT "ID" FROM "Mitglieder" WHERE "Atemschutz" = true
An sich funktioniert diese Abfrage über Extras --> SQL einwandfrei, nur kann ich sie hier nicht speichern, weshalb ich ein Makro bräuchte.

Vielen Dank für eure Hilfe,
Civi
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: SQL Befehl per Makro ausführen

Beitrag von eBayer »

So etwa müsste Dein Makro aussehen.
Du mußt das SQL-Statement in eine Variable bringen und diese dann mit execute ausführen.
Beachte bitte auch die doppelten Hochkommas..... ich hoffe, ich habe keinen Tippfehler reingebracht.
Was das Makro macht, dokumentiert sich hoffentlich aus den sprechenden Namen. Deshalb habe ich auf Kommentare verzichtet.
Gruß eBayer

Sub LoadTable
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( "DeineDatenbank" )
oVerbindung = oDatenquelle.getConnection( "" , "" )
oStatement = oVerbindung.createStatement()
sSQL = "INSERT INTO ""Atemschutz"" (""ID"") SELECT ""ID"" FROM ""Mitglieder"" WHERE ""Atemschutz"" = true"
oStatement.execute(sSQL)
oVerbindung.close()
oStatement.close()
End Sub
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Civilatio
Beiträge: 3
Registriert: Di, 14.04.2009 17:50

Re: SQL Befehl per Makro ausführen

Beitrag von Civilatio »

oDatenquelle = oDatenbankKontext.getByName( "DeineDatenbank" )

Hier tritt ein Fehler auf (habe den Namen natürlich ausgetauscht :) )...

Text:
"Hier ist eine Exception aufgetreten
Type: com.sun.star.container.NoSuchElementException
Message: Feuerwehr.odb."

Habe es auch ohne die Dateiendung versucht...
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: SQL Befehl per Makro ausführen

Beitrag von eBayer »

hast du die Datenbank registriert?
Extras - Optionen - OpenOffice.org Base - Datenbanken......
Dann sollte es laufen..... mögliche Tippfehler mußt Du selbst herausfinden.
viel Spaß
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Civilatio
Beiträge: 3
Registriert: Di, 14.04.2009 17:50

Re: SQL Befehl per Makro ausführen

Beitrag von Civilatio »

Jetzt funktioniert es :) herzlichen Dank!
Antworten