❤️ Helfen Sie noch heute, unser LibreOffice Forum zu erhalten! ❤️
Unterstützen Sie das LibreOffice-Forum und helfen Sie uns, unser Ziel für 2025 zu erreichen!

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱


❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Wert aus Abfrage in msgbox anzeigen lassen

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
Oisse
Beiträge: 3
Registriert: Sa 3. Okt 2015, 15:23

Wert aus Abfrage in msgbox anzeigen lassen

Beitrag von Oisse » Mo 2. Apr 2018, 11:35

Hallo Zusammen,
folgenden Code habe ich mir geschrieben, um die Anzahl von Datensätzen anzeigen zu lassen, der aber leider nicht funktioniert.
Warum bitte nicht und was muss ich ändern?

Code: Alles auswählen

Sub open_Query
Dim oDatenbankKontext as Object
DIM oDatenquelle AS OBJECT
Dim oVerbindung as Object
DIM oAbfragen AS OBJECT
DIM loRow AS LONG
DIM loRowMax AS LONG
DIM inStart AS INTEGER
Dim stQuery as string
Rem Dim InErgebnis as Integer

oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "Hausservice" )
oVerbindung = oDatenquelle.getConnection( "" , "" )

oAbfragen = oVerbindung.createStatement()
stQuery = "SELECT COUNT (""ID"") FROM ""Abfrage_Pauschalaufträge"""

InErgebnis = oAbfragen.executeQuery(stQuery)

msgbox InErgebnis

Fehler:

End Sub
Danke schon mal für eure Hilfe
Oisse

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Wert aus Abfrage in msgbox anzeigen lassen

Beitrag von F3K Total » Mo 2. Apr 2018, 12:45

Hi,
das Ergebnis der Abfrage ist ein ResultSet mit nur einer Zeile und einer Spalte, deren Wert du auslesen musst.

Code: Alles auswählen

Sub open_Query
Dim oDatenbankKontext as Object
DIM oDatenquelle AS OBJECT
Dim oVerbindung as Object
DIM oAbfragen AS OBJECT
DIM loRow AS LONG
DIM loRowMax AS LONG
DIM inStart AS INTEGER
Dim stQuery as string
Rem Dim InErgebnis as Integer

oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "Hausservice" )
oVerbindung = oDatenquelle.getConnection( "" , "" )

oAbfragen = oVerbindung.createStatement()
stQuery = "SELECT COUNT (""ID"") AS ANZAHL FROM ""Abfrage_Pauschalaufträge"""

InErgebnis = oAbfragen.executeQuery(stQuery)

if InErgebnis.next then
    Ergebnis = InErgebnis.columns.getbyNAME("ANZAHL").getint
    'oder 
    'Ergebnis = InErgebnis.getint(1)'erste Spalte
endif
msgbox Ergebnis

Fehler:

End Sub
Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Oisse
Beiträge: 3
Registriert: Sa 3. Okt 2015, 15:23

Re: Wert aus Abfrage in msgbox anzeigen lassen

Beitrag von Oisse » Mo 2. Apr 2018, 12:56

Danke für die Antwort, die auch funktioniert :-)
Aber warum brauche ich hier eine if-Anweisung und was hat das mit dem .Next auf sich?
Was bitte macht er hier?
Gruß Oisse

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Wert aus Abfrage in msgbox anzeigen lassen

Beitrag von F3K Total » Di 3. Apr 2018, 11:24

Versuche mal dies:

Code: Alles auswählen

Sub open_Query
Dim oDatenbankKontext as Object
DIM oDatenquelle AS OBJECT
Dim oVerbindung as Object
DIM oAbfragen AS OBJECT
DIM loRow AS LONG
DIM loRowMax AS LONG
DIM inStart AS INTEGER
Dim stQuery as string
Rem Dim InErgebnis as Integer

oDatenbankKontext = CreateUnoService ( "com.sun.star.sdb.DatabaseContext" )
oDatenquelle = oDatenbankKontext.getByName( "Hausservice" )
oVerbindung = oDatenquelle.getConnection( "" , "" )

oAbfragen = oVerbindung.createStatement()
stQuery = "SELECT  (""ID"")  FROM ""Abfrage_Pauschalaufträge"""'viele Zeilen als Ergebnis

SQL_Result = oAbfragen.executeQuery(stQuery)

While SQL_Result.next
    nID = SQL_Result.columns.getbyNAME("ID").getint
    print nID
wend

Fehler:

End Sub
Hoffe es wird klarer, IF benutze ich dann, wenn das Abfragergebnis nur eine Zeile beinhaltet.
Mit NEXT springt der Cursor im ResultSet auf die nächste Zeile. Bei einem einzeiligen Ergebnis eben auf die erste.

Gruß R
Windows 11: AOO, LO Linux Mint: AOO, LO

Oisse
Beiträge: 3
Registriert: Sa 3. Okt 2015, 15:23

Re: Wert aus Abfrage in msgbox anzeigen lassen

Beitrag von Oisse » Di 3. Apr 2018, 20:18

Super, vielen Dank.
Jetzt ist es um einiges klarer.
Herzliche Grüße
Oisse


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten