meine Adress-Datenbank funktioniert unter openSUSE und Windows 7 eigentlich einwandfrei.
Eigentlich bedeutet:
Für ein Makro brauche ich aus der LibreOffice "Tools" Bibliothek die Function "GetFileNameWithoutExtension", um einen Dateinamen ohne .odb-Erweiterung aus einer Pfadangabe zu extrahieren. Das verwende ich für die automatische Anmeldung der DB.
Der Aufruf:
Code: Alles auswählen
' die Bibliothek "Tools" laden, falls noch nicht geschehen
' wird gebraucht für "GetFileNameWithoutExtension"
If not globalScope.BasicLibraries.isLibraryLoaded("Tools") Then
globalScope.BasicLibraries.loadLibrary("Tools")
End If
' den Datenbanknamen ohne .odb aus der Pfadangabe auslesen
sDBName = Tools.Strings.GetFileNameWithoutExtension(thisDatabaseDocument.url, getPathSeparator)
Das Problem:
Windows extrahiert nicht den Dateinamen aus dem Pfad, sondern behält den ganzen Pfad bei. Eine Fehlermeldung kommt nicht. Testweise habe ich getPathSeparator weggelassen, dasselbe Ergebnis.
Wenn ich einen Fehler provoziere, indem ich aus "Tools" die Function in mein Makro kopiere, meckert mich Base an, das diese Function anderweitig definiert ist und in der IDE erscheint aus der Bibliothek "Tools" der Code von Function "GetFileNameWithoutExtension". Das versteh' ich nicht.
Die Umgebungsbedingungen:
openSUSE 12.1
LibreOffice Base 3.5.4.2
eingebettete HSQLDB 1.8
Windows 7
auf beiden Systemen Java JRE 1.6.0.21
Hat einer eine Idee wie ich die Function zum Laufen kriege?
Gruß harald