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. 🤗

[gelöst] Skip while not EOF

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
MaddinR
Beiträge: 42
Registriert: Fr 17. Jun 2011, 12:19

[gelöst] Skip while not EOF

Beitrag von MaddinR » Mo 19. Feb 2018, 20:27

Hallo liebe Leute

Ich habe diesen CodeSchnippsel gefunden, der fast genau das macht, was ich brauche... leider nur fast. Ich habe ein Base-Formular erzeugt, und auf diesem Formular 2 DB-Objekte (beides sind Queries) geöffnet/verbunden, die über den Formular-Navigator auch "Formular" heissen... was leider ein wenig verwirrend ist. Das erste Datenbank-Objekt ist attached zu einem Grid-Grid-Control, was auch bestens funktioniert.

Mein Problem ist das zweite DB-Objekt, für das ich kein Control auf dem Bildschirm/Formular benötige, sondern welches ich nur einmal von Record 1 bis EOF/NewRec=True durchskippen möchte.

Die Frage ist: Wie verbinde ich ein RowSet direkt mit dem DB-Form ohne das unten stehende SubForm zu haben? Falls es auich ein direktes Recordset (mit Open Query/Close) gibt, ohne den Umweg über das Formular, das wäre auch eine gute Lösung... für die ich leider ebenfalls keine Beispiele finde. Ich hoffe auf ein bisschen Hilfe und bedanke mich im voraus.

mfg
Maddin

https://forum.openoffice.org/en/forum/v ... 30#p408944

Code: Alles auswählen

Sub iterate_through_all_rows
    oMainForm = ThisComponent.Drawpage.forms.getbyName("MainForm")
    oSubForm = oMainForm.getbyName("SubForm")
    oResult = oSubForm.createResultSet
    oResult.beforefirst
    count = 0
    while oResult.next
        count = count + 1
        sSN = oResult.Columns.getbyName("SN").getstring
        sFN = oResult.Columns.getbyName("FN").getstring
        print "No. " & count & ": " & sSN & ", "& sFN
    wend
End Sub
Zuletzt geändert von MaddinR am Mo 19. Feb 2018, 21:38, insgesamt 1-mal geändert.
Gruß, Maddin

RobertG
Beiträge: 2732
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Skip while not EOF

Beitrag von RobertG » Mo 19. Feb 2018, 21:30

Hallo Maddin,

mir ist nicht klar, worauf Du hinaus willst, aber der Codeschnipsel, den Du da hast, greift direkt auf die Werte eines Formulars zu. Du kannst natürlich auch genauso eine Abfrage starten und dort dann eine entsprechende Ausgabe erzeugen:

Code: Alles auswählen

...
oDatenquelle = ThisComponent.Parent.CurrentController
If NOT (oDatenquelle.isConnected()) THEN
oDatenquelle.connect()
END IF
oVerbindung = oDatenquelle.ActiveConnection()
oSQL_Anweisung = oVerbindung.createStatement()
stSql = "SELECT * FROM ""Tabelle"""
oAbfrageergebnis = oSQL_Anweisung.executeQuery(stSql)
WHILE oAbfrageergebnis.next
string1 = oAbfrageergebnis.getString(1)
string2 = oAbfrageergebnis.getString(2)
WEND
...
Gruß

Robert
https://de.libreoffice.org/get-help/documentation/
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=base_handbuch
https://www.familiegrosskopf.de/robert/index.php?&Inhalt=xml_formulare

MaddinR
Beiträge: 42
Registriert: Fr 17. Jun 2011, 12:19

Re: Skip while not EOF

Beitrag von MaddinR » Mo 19. Feb 2018, 21:36

Genau diese Lösung habe ich einige Minuten zuvor in Deinem Link zum Base-Handbuch in einem alten Posting gefunden.... ;) .. das war die Lösung. Danke
Gruß, Maddin

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