🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

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

Variablen über Programmstart hinaus definieren

Base ermöglicht es Ihnen, Ihre Daten in einer Datenbank direkt mit LibreOffice zu bearbeiten.
Antworten
RobertG
* LO-Experte *
Beiträge: 2884
Registriert: Sa 19. Mai 2012, 17:37
Kontaktdaten:

Re: Variablen über Programmstart hinaus definieren

Beitrag von RobertG » Mi 5. Jun 2019, 16:23

Hallo Theophilus,

würde ich auch mit der Tabelle machen. Weißt Du jetzt nicht, wie Du aus einer Tabelle einen Wert mit Makro ausliest? Dann klappt das Folgende:

Code: Alles auswählen

SUB Startvariable
DIM oDatasource AS OBJECT
DIM oConnection AS OBJECT
DIM oSQL_Statement AS OBJECT
DIM stSql AS STRING
DIM oResult AS OBJECT
oDatasource = thisDatabaseDocument.CurrentController
IF NOT (oDatasource.isConnected()) THEN oDatasource.connect()
oConnection = oDatasource.ActiveConnection()
oSQL_Statement = oConnection.createStatement()
stSql = "SELECT ""Var"" FROM ""Varspeicher"" WHERE ""ID"" = TRUE"
oResult = oSQL_Statement.executeQuery(stSql)
WHILE oResult.next
stGlobalVar = oResult.getString(1)
WEND
END SUB
Ich bin davon ausgegangen, dass die Tabelle "Varspeicher" einen Primärschlüssel "ID" als Ja/Nein-Feld hat, also maximal 2 Zeilen speichern kann. In der Zeile, in der das Feld "ID" angeklickt ist, wird der Wert der Variablen im Feld "Var" als Text gespeichert. Mit der WHILE - WEND-Schleife wird durch das Ergebnis der Abfrage gegangen. Diese Schleife benötigst Du eigentlich nicht, da nur ein Wert abgefragt wird. Es reicht, oResult.next und anschließend oResult.getString(1). Das Ergebnis der Abfrage wird in stGobalVar geschrieben. Das Makro sollte dann mit dem Start der Datenbankdatei gestartet werden, also mit "Ansicht wurde erzeugt" oder "Dokument öffnen" (einzige Möglichkeit bei aktuellen LO-Versionen und Base) unter Extras > Anpassen > Ereignisse verbinden.

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


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