Und wieder ein neues Problem für mich
Ich würde gerne aus Writer heraus per Makro auf die Daten einer nicht registrierten Datenbank-Datei (Base) zugreifen.
Mein Buch zur OpenOffice-Programmierung zeigt mir jedoch lediglich Wege für schon registrierte Datenbanken.
Zugriffe auf die Datenbank sollten mit relativen Pfaden erfolgen, da ich die Dateien weitergeben möchte und ja nicht weiß wie deren Verzeichnisstruktur aussieht.
Folgendes habe ich im Netz gefunden:
DatenBanken = createUnoService("com.sun.star.sdb.DatabaseContext")
NeuDB=DatenBanken.getByname("file:///c:/test5.odb") <=Hier sollte der Pfad relativ sein.
DatenBanken.registerobject("NeueDB",NeuDB) <=Wofür ist der String in den Anführungszeichen?
Und würde das so gehen mit diesem Beispiel?
Öffnen einer nicht registrierten Datenbank (Base)
Moderator: Moderatoren
Re: Öffnen einer nicht registrierten Datenbank (Base)
Genauer zum relativen Pfad:
Ich möchte ein Writerdokument bearbeiten und aus Writer die Datenbank aufrufen und die Datenbank soll zum Writerdokument mittels relativem Pfad geöffnet werden.
Ich hoffe man konnte mich mit meinem Kauderwelsch verstehen
Ich möchte ein Writerdokument bearbeiten und aus Writer die Datenbank aufrufen und die Datenbank soll zum Writerdokument mittels relativem Pfad geöffnet werden.
Ich hoffe man konnte mich mit meinem Kauderwelsch verstehen

Re: Öffnen einer nicht registrierten Datenbank (Base)
Hallo rito,
so könnte es klappen: Gruß R
so könnte es klappen:
Code: Alles auswählen
Sub register_database_from_writer
odoc=thisComponent'Writer Dokument
oFolder="Folder_DB" 'Name des Ordners der Datenbank
oDBname="DBname.odb" 'Name der Datenbank, muß natürlich existieren, sonst gibt es einen Fehler
url_DB=replace(odoc.url,odoc.title,"")+oFolder+"/"+oDBname'zusammengesetzter Pfad zur Datenbank
DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
NeuDB=DatabaseContext.getByName(url_DB)
DatabaseContext.registerobject(oDBname,NeuDB)'neue Datenbank anmelden
Msgbox "Die Datenbank "+oDBname+" wurde unter dem Pfad "+url_DB+" registriert"
End Sub
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Öffnen einer nicht registrierten Datenbank (Base)
Aloha
Dazu sei noch angemerkt, dass Du die Datenbank gar nicht registrieren musst - und vielleicht auch nicht solltest -, wenn es keine Interaktion zwischen Benutzer und Datenbank geben soll in Form von z.B. Serienbriefen o.Ä.
Anstatt .registerObject kannst Du also direkt mit (in Deinem Codeschnipsel)
weitermachen.
Der String in den Anführungszeichen legt fest, unter welchem Namen die Datenbank bei Base registriert werden soll (Extras -> Optionen -> Base -> Datenbanken)rito hat geschrieben:DatenBanken.registerobject("NeueDB",NeuDB) <=Wofür ist der String in den Anführungszeichen?
Dazu sei noch angemerkt, dass Du die Datenbank gar nicht registrieren musst - und vielleicht auch nicht solltest -, wenn es keine Interaktion zwischen Benutzer und Datenbank geben soll in Form von z.B. Serienbriefen o.Ä.
Anstatt .registerObject kannst Du also direkt mit (in Deinem Codeschnipsel)
Code: Alles auswählen
oConnection = NeuDB.getConnection("","")
Re: Öffnen einer nicht registrierten Datenbank (Base)
Vielen Dank für eure Antworten! Wird gleich mal ausprobiert!
Gruß
rito
Gruß
rito