BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 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
Beiträge: 2410
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 10: 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
Beiträge: 2410
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 10: 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 nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten