Base-Handbuch - The Document Foundation Wiki
Base-Handbuch - The Document Foundation Wiki
Base-Handbuch - The Document Foundation Wiki
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Beim Ausblenden der Symbolleisten werden zwar alle Leisten berücksichtigt. Sobald aber ein<br />
Formularfeld angeklickt wird, erscheint wieder die Menüleiste. Dies ist wohl als Sicherheit gedacht,<br />
damit sich der Nutzer nicht völlig blockiert. Um das Hin- und Herschalten zu vermeiden, wurde in<br />
der Prozedur zum Ausblenden die Menüleiste wieder sichtbar gemacht.<br />
Datenbankaufgaben mit Makros erweitert<br />
Verbindung mit Datenbanken erzeugen<br />
oDatenquelle = ThisComponent.Parent.DataSource<br />
IF NOT oDatenquelle.IsPasswordRequired THEN<br />
oVerbindung = oDatenquelle.GetConnection("","")<br />
Hier wäre es möglich, fest einen Benutzernamen und ein Passwort einzugeben, wenn eine<br />
Passworteingabe erforderlich wäre. In den Klammer steht dann ("Benutzername","Passwort").<br />
Statt einen Benutzernamen und ein Passwort in Reinschrift einzutragen, wird für diesen Fall der<br />
Dialog für den Passwortschutz aufgerufen:<br />
ELSE<br />
oAuthentifizierung = createUnoService("com.sun.star.sdb.InteractionHandler")<br />
oVerbindung = oDatenquelle.ConnectWithCompletion(oAuthentifizierung)<br />
END IF<br />
Wird allerdings von einem Formular innerhalb der <strong>Base</strong>-Datei auf die Datenbank zugegriffen, so<br />
reicht bereits<br />
oDatenquelle = ThisComponent.Parent.CurrentController<br />
IF NOT (oDatenquelle.isConnected()) <strong>The</strong>n<br />
oDatenquelle.connect()<br />
End IF<br />
oVerbindung = oDatenquelle.ActiveConnection()<br />
Die Datenbank ist hier bekannt, ein Nutzername und ein Passwort sind nicht erforderlich, da diese<br />
bereits in den Grundeinstellungen der HSQLDB für die interne Version ausgeschaltet sind.<br />
Für Formulare außerhalb von <strong>Base</strong> wird die Verbindung über das erste Formular hergestellt:<br />
oDatenquelle = Thiscomponent.Drawpage.Forms(0)<br />
oVerbindung = oDatenquelle.activeConnection<br />
Datenbanksicherungen erstellen<br />
Vor allem beim Erstellen von Datenbanken kann es hin und wieder vorkommen, dass die *.odb-<br />
Datei unvermittelt beendet wird. Vor allem beim Berichtsmodul ist ein häufigeres Abspeichern nach<br />
dem Editieren sinnvoll.<br />
Ist die Datenbank erst einmal im Betrieb, so kann sie durch Betriebssystemabstürze beschädigt<br />
werden, wenn der Absturz gerade während der Beendigung der <strong>Base</strong>-Datei erfolgt. Schließlich<br />
wird in diesem Moment der Inhalt der Datenbank in die Datei zurückgeschrieben.<br />
Außerdem gibt es die üblichen Verdächtigen für plötzlich nicht mehr zu öffnende Dateien wie<br />
Festplattenfehler usw. Da kann es dann nicht schaden, eine Sicherheitskopie möglichst mit dem<br />
aktuellsten Datenstand parat zu haben. Der Datenbestand ändert sich allerdings nicht, während<br />
die *.odb-Datei geöffnet ist. Deshalb kann die Sicherung direkt mit dem Öffnen der Datei<br />
verbunden werden. Es werden einfach Kopien der Datei in das unter Extras → Optionen →<br />
LibreOffice → Pfade angegebene Backup-Verzeichnis erstellt. Dabei beginnt das Makro nach 5<br />
Kopien damit, die jeweils älteste Variante zu überschreiben.<br />
SUB Datenbankbackup<br />
REM Von der Datenbankdatei *.odb wird eine Kopie in das Backup-Verzeichnis<br />
erstellt.<br />
Makros: Datenbankaufgaben mit Makros erweitert 251