21.08.2013 Aufrufe

Base-Handbuch - The Document Foundation Wiki

Base-Handbuch - The Document Foundation Wiki

Base-Handbuch - The Document Foundation Wiki

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!