SQL-Abfrage in Macro

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: SQL-Abfrage in Macro

Re: SQL-Abfrage in Macro

von eBayer » Do, 11.12.2008 09:39

Bingoooooooo
kaum macht man´s richtig, schon funktioniert´s.
Danke, Du hast mir sehr geholfen.
DEN Fehler werde ich ganz sicher nicht wiederholen.

Re: SQL-Abfrage in Macro

von komma4 » Do, 11.12.2008 05:41

Wenn Dir eine Abfrage direkt ausgeführt keine Fehlermeldung liefert, dann hast Du noch etwas im Code falsch...

Bitte zeige uns wie sText gesetzt wird.
[Kannst Du auch selbst mit Xray debuggen: sSQL nach dem Zusammensetzen anschauen]

Welches Spaltenformat hat Abfrage-Nr?
Welche Datenbank nutzt Du? Welches OOo?

(hier [OOo3/Linux m. interner HSQLDB] klappt die Abfrage auch mit Basic und liefert ein korrektes Ergebnis]

P.S.:
Gerade nochmal Deinen Code angeschaut: Dir fehlt das Positionieren auf den ersten Datensatz des resultset:

Code: Alles auswählen

' Abfrage absetzen
oResultSet = oStatement.executeQuery( sSQL )

' xray oresultset
while oResultSet.next()
   ' erste Spalte ausgeben
   msgbox oResultSet.getString( 1 )
Wend
Hole Dir bei Andrew das BASE-Dokument!

Re: SQL-Abfrage in Macro

von eBayer » Mi, 10.12.2008 23:18

Hallo, danke für die schnelle Antwort.
Hab´s gleich mal probiert, aber leider ohne Erfolg.
Meldung: no data is availlable
Wenn ich aber gleiche Statement per SQL direkt absetze meldet er mir keinen Fehler.... allerdings sehe ich das Ergebnis ja leider dort nicht.
Wenn ich eine Abfrage über den Abfrageassistenten generiere ist das Ergebnis 9 - stimmt.
Und der von mir benutzte Code ist eine Kopie aus der Abfrage.

Hilfeeeeee, ich habe alles versucht, komme hier aber nicht weiter.

Gruß

Re: SQL-Abfrage in Macro

von komma4 » Mi, 10.12.2008 20:16

Willkommen im Forum.

Code: Alles auswählen

msgbox oResultSet.getString( 1 )
Hier wird die Nummer der Trefferspalte (diesmal ab 1 gezählt) erwartet, nicht der von Dir vergebene Alias.

Andrew hat auch ein Datenbank-Dokument
Und XRay kennst Du auch schon...?

SQL-Abfrage in Macro

von eBayer » Mi, 10.12.2008 18:41

Hallo, ich bin ein blutiger Anfänger, was SQL angeht.
Nun übe ich schon seit einigen Tagen mit Base und bin schon recht weit gekommen, hänge jetzt aber an einem kleinen Problem: Ich möchte in einem Macro einen Report aufrufen. Allerdings soll abhängig davon, ob ich in einer bestimmten Tabelle Daten finde, entweder der eine oder der andere report aufgerufen werden.
Wie kann ich nachdem ich ein SQL-Statement ausgeführt habe, das Ergebnis abfragen? In diesem Fall also die Anzahl Rows. Ich habe mal mein Coding beigefügt. Darin will ich für Testzwecke das ergebnis in einer MsgBox aufzeigen.

Danke für Eure Hilfe im Voraus.


oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
' Datenquelle auswählen
oDatenquelle = oDatenbankKontext.getByName( "Kunden" )
' Verbindung zur DB herstellen
oVerbindung = oDatenquelle.getConnection( "" , "" )
' Statement erzeugen
oStatement = oVerbindung.createStatement
' Abfrage absetzen
sSQL = "SELECT COUNT( * ) AS Anzahl FROM ""Kinder"" AS ""Kinder"" WHERE ""Ausweis-Nr"" = " + sText
msgbox(sSQL)
oResultSet = oStatement.executeQuery( sSQL )
msgbox(oResultSet.getString("Anzahl")

Nach oben