von Devil » Di, 08.09.2015 09:21
Hallo, Ich registriere eine Datenbank per Makro in OpenOffice. Diese Datenbank existriert bereits vorher als .odb. Das funktioniert auch soweit. Nur wenn ich die Datenbank ansehen will im Writer (F4), dann wird mir folgende Fehlermeldung ausgeworfen:
Die Verbindung zur Datenquelle Adressen konnte nicht Hergestellt werden.
Die URL 'file:///../Adressen.0003/' ist ungültig. es Kann keine Verbindung hergestellt werden.
Die Datei Adressen.0003 ist die (von der Endung her umbenannte) TXT-Datei, aus welcher ich die Datenbank erstellt habe.
Ich registriere die Datenbank mit folgendem Code:
Code: Alles auswählen
DatenBanken = createUnoService("com.sun.star.sdb.DatabaseContext")
NeuDB=DatenBanken.getByname("file:///"+PfadODBDatei)
DatenBanken.registerobject("Adressen",NeuDB)
Wenn ich die Datenbank manuell registriere besteht kein Problem.
Erstellt habe ich die Datenbankdatei auch Per Makro, allerdings nicht im Selben makro.
Erstellen der Datenbankdate:
Code: Alles auswählen
function CREATE_SBRIEF_DATABASE(DOC_Path as String)
Dim DP as String
Dim ExtensionPos as Integer
Dim DPOhneExtension as String
Dim DPODB as String
Dim DPTXT as String
Dim Extension as String
DP = DOC_Path
REM DokumentenPfad
ExtensionPos = InStr(DP,".")
REM Position des Punktes im String
DPohneExtension = mid(DP, 1, ExtensionPos)
REM Reiner Dateipfad ohne Extension aber mit einem Punkt am Ende
Extension = mid(DP, ExtensionPos - 4, 4)
REM Endung für TXT-Datei ausfiltern
DPODB = DPOhneExtension + "odb"
REM Speicherpfad der ODB-Datei
DPTXT = mid(DPOhneExtension, 1, ExtensionPos - 11)+ "Adressen." + Extension
REM Pfad der TXT-Datei auf "Pfad+Adressen.Endung" ändern
DPODB = Replace(DPODB,"\","/")
REM in ODB-Pfad \ durch / ersetzen
DatenBanken = createUnoService("com.sun.star.sdb.DatabaseContext")
REM Service zur Datenbankerstellung
NeueDatenBank= DatenBanken.createinstance()
REM Datenbank-Instanz erstellen
NeueDatenBank.url="sdbc:flat:"+DPTXT
REM Datenquelle für die Datenbank
Dim myProps(1) as New com.sun.star.beans.PropertyValue
REM Einstellungen der Propertys zum einlesen der TXT-Datei
myProps(0).Name="Extension"
REM Property Endung
myProps(0).Value=Extension
REM Eingeben der Endung
myProps(1).Name="FieldDelimiter"
REM Feldtrenner in der TXT-Datei
myProps(1).Value=";"
REM Feldtrenner auf ";" setzen
NeueDatenBank.Info=myProps()
REM Propertys setzen
dim getargs()
Print DPODB
NeueDatenBank.DatabaseDocument.storeAsURL("file:///"+DPODB,getArgs())
REM Datenbank Speichern
DatenBanken.registerObject("Adressen", NeueDatenBank)
REM Datenbank Registrieren (Datenbankname, Datenbankpfad)
END Function
Hallo, Ich registriere eine Datenbank per Makro in OpenOffice. Diese Datenbank existriert bereits vorher als .odb. Das funktioniert auch soweit. Nur wenn ich die Datenbank ansehen will im Writer (F4), dann wird mir folgende Fehlermeldung ausgeworfen:
Die Verbindung zur Datenquelle Adressen konnte nicht Hergestellt werden.
Die URL 'file:///../Adressen.0003/' ist ungültig. es Kann keine Verbindung hergestellt werden.
Die Datei Adressen.0003 ist die (von der Endung her umbenannte) TXT-Datei, aus welcher ich die Datenbank erstellt habe.
Ich registriere die Datenbank mit folgendem Code:
[code] DatenBanken = createUnoService("com.sun.star.sdb.DatabaseContext")
NeuDB=DatenBanken.getByname("file:///"+PfadODBDatei)
DatenBanken.registerobject("Adressen",NeuDB)[/code]
Wenn ich die Datenbank manuell registriere besteht kein Problem.
Erstellt habe ich die Datenbankdatei auch Per Makro, allerdings nicht im Selben makro.
Erstellen der Datenbankdate:
[code]function CREATE_SBRIEF_DATABASE(DOC_Path as String)
Dim DP as String
Dim ExtensionPos as Integer
Dim DPOhneExtension as String
Dim DPODB as String
Dim DPTXT as String
Dim Extension as String
DP = DOC_Path
REM DokumentenPfad
ExtensionPos = InStr(DP,".")
REM Position des Punktes im String
DPohneExtension = mid(DP, 1, ExtensionPos)
REM Reiner Dateipfad ohne Extension aber mit einem Punkt am Ende
Extension = mid(DP, ExtensionPos - 4, 4)
REM Endung für TXT-Datei ausfiltern
DPODB = DPOhneExtension + "odb"
REM Speicherpfad der ODB-Datei
DPTXT = mid(DPOhneExtension, 1, ExtensionPos - 11)+ "Adressen." + Extension
REM Pfad der TXT-Datei auf "Pfad+Adressen.Endung" ändern
DPODB = Replace(DPODB,"\","/")
REM in ODB-Pfad \ durch / ersetzen
DatenBanken = createUnoService("com.sun.star.sdb.DatabaseContext")
REM Service zur Datenbankerstellung
NeueDatenBank= DatenBanken.createinstance()
REM Datenbank-Instanz erstellen
NeueDatenBank.url="sdbc:flat:"+DPTXT
REM Datenquelle für die Datenbank
Dim myProps(1) as New com.sun.star.beans.PropertyValue
REM Einstellungen der Propertys zum einlesen der TXT-Datei
myProps(0).Name="Extension"
REM Property Endung
myProps(0).Value=Extension
REM Eingeben der Endung
myProps(1).Name="FieldDelimiter"
REM Feldtrenner in der TXT-Datei
myProps(1).Value=";"
REM Feldtrenner auf ";" setzen
NeueDatenBank.Info=myProps()
REM Propertys setzen
dim getargs()
Print DPODB
NeueDatenBank.DatabaseDocument.storeAsURL("file:///"+DPODB,getArgs())
REM Datenbank Speichern
DatenBanken.registerObject("Adressen", NeueDatenBank)
REM Datenbank Registrieren (Datenbankname, Datenbankpfad)
END Function[/code]