Seite 1 von 1

[gelöst] Skip while not EOF

Verfasst: Mo 19. Feb 2018, 20:27
von MaddinR
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

Re: Skip while not EOF

Verfasst: Mo 19. Feb 2018, 21:30
von RobertG
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

Re: Skip while not EOF

Verfasst: Mo 19. Feb 2018, 21:36
von MaddinR
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