[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: 25
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: 1686
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

MaddinR
Beiträge: 25
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



Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste