BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das OpenOffice Forum zu erhalten!

DANKE >><< DANKE

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des OpenOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als OO-SUPPORTER gekennzeichnet. 🤗

Relative Pfadangabe zu Datenbank

WRITER hat alles, was Sie von einer modernen, voll ausgestatteten Textverarbeitung erwarten.
Antworten
Joni
Beiträge: 3
Registriert: Mo 28. Mai 2018, 07:01

Relative Pfadangabe zu Datenbank

Beitrag von Joni » Fr 21. Dez 2018, 07:57

Hallo,

hier (Relative Pfade für registrierte DB für Serienbrief) wurde die Schwierigkeit bereits im Jahre 2011 ergebnislos diskutiert, aber nun ich stehe vor der gleichen Herausforderung und konnte bisher keine Lösung finden.

Ist es mittlerweile in OpenOffice 4.1.6 (Writer) möglich, einen relativen Pfad zu einer im gleichen Ordner befindlichen Datenbank anzugeben?
Auch hier soll der Zugriff nicht nur an meinem System funktionieren, sondern auch an anderen Geräten, ohne vor dem eigentlichen Gebrauch auf dem anderen System eine erneute Datenbankregistrierung vornehmen zu müssen.

In freudiger Erwartung auf mögliche Lösungsansätze :)
Schöne Grüße

Joni

F3K Total
Beiträge: 1007
Registriert: Mo 1. Aug 2011, 00:03

Re: Relative Pfadangabe zu Datenbank

Beitrag von F3K Total » Fr 21. Dez 2018, 18:00

Hi,
folgendes Makro, gebunden an das Ereignis "Dokument öffnen" der Writer Serienbriefdatei
  • schaut im gleichen Ordner nach, ob eine .odb Datei existiert, wird eine gefunden dann
  • schaut das Makro nach, ob eine .odb mit gleichem Namen schon angemeldet ist, wenn ja wird sie abgemeldet und mit der gefundenen überschrieben, wenn nein, wird die gefundene angemeldet.
Funktioniert wenigstens unter Windows, wenn Dateinamen und Pfade keine Sonderzeichen/Leerzeichen enthalten und der Ordner nur die eine gewünschte Datenbank enthält.

Code: Alles auswählen

sub registerDataBase
    sFolderUrl = ConverttoURL(replace(ThisComponent.URL,ThisComponent.Title,""))
    NextFile = Dir(sFolderUrl)
    if right(NextFile,4) = ".odb" then
       sDBFileName = NextFile
       bfound = true
    else
        While NextFile  <> ""
           NextFile  = Dir
           if right(NextFile,4) = ".odb" then
               sDBFileName = NextFile
               bfound = true
           endif
        Wend
     if not bFound Then 
         print "keine Datenbankdatei gefunden"
         exit sub
     endif
     sDBName = replace(sDBFileName,".odb","")
     endif
     DatabaseContext = createUnoService("com.sun.star.sdb.DatabaseContext")
     if not DatabaseContext.hasByName(sDBName) then
            NeuDB = DatabaseContext.getByName(sFolderUrl & sDBFileName)
            DatabaseContext.registerobject(sDBName,NeuDB)
     else
            DatabaseContext.revokeObject(sDBName)
            NeuDB = DatabaseContext.getByName(sFolderUrl & sDBFileName)
            DatabaseContext.registerobject(sDBName,NeuDB)
     endif
end sub
Damit das Makro laufen darf, stellt man unter Extras/Einstellungen/Openoffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wird man beim Öffnen von Dokumenten gefragt, ob Makros ausgeführt werden dürfen, was man bejahen sollte.
Gruß R
Windows 10: AOO, LO Linux Mint: AOO, LO

Antworten