PDA

Vollständige Version anzeigen : Datenbankpfad in Langform (ohne Tilde)


kaosqlco
16.01.2003, 16:30
Hallo Forum,

für Access97 benötige ich eine Funktion zum Auslasen des Pfades in dem sich meine Datenbank befindet.

Pfad = Left(CurrentDb.Name, Len(CurrentDb.Name) - Len(Dir(CurrentDb.Name)))
liefert mir nur die Kurzform des Pfades (mit Tilde), da ein Verzeichnisname länger als 8 Zeichen ist.

Wie komme ich an die Langform.

Danke und Gruß, Jan

Sascha Trowitzsch
16.01.2003, 16:55
Du arbeitest aber nicht etwa unter Windows 3.11 ? Sondern?

Ich hab in CurrentDb.Name noch nie ne Tilde gesehen, egal wie lang die Verzeichnisnamen waren.

Ansonsten wüsste ich nur, dass es eine Konversion kurz<>lang per WinAPI gibt.

Ciao, Sascha

kaosqlco
16.01.2003, 17:00
Hallo Sasche,

nein ich nutze WinNT und war auch etwas verblüfft, als ich die Tilde sah.

Gruß Jan

Nouba
16.01.2003, 17:26
Hallo Jan,

vielleicht läßt sich die Ausgabe wandeln: Get Short and Long file names (http://www.mvps.org/access/api/api0020.htm)

kaosqlco
16.01.2003, 18:26
Hallo,

ich habe meine Datenbank mal in mehreren Verzeichnissen getestet und bekomme, wenn der Baum Verzeichnisnamen mit Bindestrichen oder Leerzeichen enthält, die Tilde angezeigt.
Das hat man wohl davon, wenn man in einer Firma arbeitet, bei der jeder Verzeichnisse nach Gutdünken benennen kann.
So habe ich mir ein Verzeichnis gesucht, das nichts dergleichen enthält, und schon klappt es wie gewünscht.

Danke für die Mithilfe.

Gruß Jan

Nouba
16.01.2003, 20:05
Hallo Jan

setze die Pfadangabe in zusätzliche Anführungszeichen. <code>Shell("DeinProgramm.exe ""Pfad zu Datei mit Leer- und Sonderzeichen.abc""")</code>

kaosqlco
16.01.2003, 20:25
Hallo Nouba,

das funktioniert, wenn ich den Datenbankpfad kenne und ihn im Klartext reinschreibe.
Ich will den Pfad aber nicht starr vorgeben, weil die DBs auch verschoben werden könnten und dann stimmt ja der Pfad nicht mehr.

Was komischerweise klappt ist, dass mein Frontend beim Starten im Datenbankverzeichnis nach dem Backend sucht und sich damit verbindet, auch in Verzeichnissen mit Sonderzeichen im Namen.

So wie Du es vorschlägst, habe ich es schon in anderen Datenbanken gehandhabt und mußte beim Umziehen immer etliche Codes ändern bzw. Tabellen neu verbinden.
Diesmal habe ich nach einer flexibleren Lösung gesucht, die ja grundsätzlich auch funktioniert.

Nun mache ich es eben andersrum, lese das Verzeichnis aus und wenn eine Tilde drin vorkommt, bekommt der Nutzer einen Hinweis, dass die Aktion nicht ausgeführt werden kann (nicht sonderlich elegant, ist aber erzieherisch).

Gruß Jan