so, zu meinem Problem:
Ich habe diverse Excel-Dokumente und Access-Datenbanken verknüpft.
Diese starten gegenseitige Abfragen mit übergreifenden Datenzugriffen.
Meist auf der Basis von Makros.
Da ich oft an meinem System bastle ändern sich die
Laufwerksbezeichnungen und Buchstaben öfter. (Bsp. x:\Eigene
Dateien\Excel --> t:\Eigene Dateien\Excel)
bisher musste ich sämtliche Pfade jedesmal ändern und habe regelmässig
die eine oder andere Stelle übersehen.
Meine Vorstellung ist, dass ich die Makros dynamisch anpassen lasse.
Wie bei einem Web-Auftritt alles in dem Ordner gehört dazu. Wo der
ordner sich befindet ist dabei egal.
Ist ein solcher Aufruf machbar?
Wenn ja, wie ist er umzusetzen.
Danke für eure Hilfe!
Greetz!
Harald
> Ich habe diverse Excel-Dokumente und Access-Datenbanken verknüpft.
> Diese starten gegenseitige Abfragen mit übergreifenden Datenzugriffen.
> Meist auf der Basis von Makros.
> Da ich oft an meinem System bastle ändern sich die
> Laufwerksbezeichnungen und Buchstaben öfter. (Bsp. x:\Eigene
> Dateien\Excel --> t:\Eigene Dateien\Excel)
> bisher musste ich sämtliche Pfade jedesmal ändern und habe regelmässig
> die eine oder andere Stelle übersehen.
> Meine Vorstellung ist, dass ich die Makros dynamisch anpassen lasse.
> Wie bei einem Web-Auftritt alles in dem Ordner gehört dazu. Wo der
> ordner sich befindet ist dabei egal.
> Ist ein solcher Aufruf machbar?
Das ist einfach zu beantworten: Ja.
> Wenn ja, wie ist er umzusetzen.
Die Frage ist wiederum gar nicht einfach zu beantworten. Es gibt einfach
viele verschiedene Möglichkeiten:
1.
Du kannst die Pfadangabe in einer Konstanten abspeichern:
Const constVerzeichnis = "T:\Eigene Dateien\Excel"
und in Deinem späteren Programmcode dich darauf beziehen:
xlApp.Workbooks.Open constVerzeichnis & "\Dateiname.xls"
So bräuchtest Du die Pfade nur noch an einer Stelle in Excel und einer
Stelle in Access ändern.
2.
Wenn Dir die 2 Stellen (bei mehreren Dateien wären es natürlich noch mehr)
nicht zusagen oder immer noch zu viele sind, kannst Du die Information auch
zentral woanders abspeichern. ZB in der Registry, in einer INI-Datei oder
in einer Datenbank (wiederum zB in einer MDB). Wie das geht und was davon
problemlos auch bei mehreren Benutzerprofilen funktioniert, kann ich Dir
erzählen, wenn Du an dieser Variante interesse hast.
3.
Du hast evtl. die Möglichkeit den Pfad überhaupt nicht fest einzustellen
und ausschließlich mit "relativen" Bezügen zu arbeiten. Dazu könntest Du
den Speicherort der aktuellen Datei abfragen und in einer Variablen
speichern, die Du dann so benutzt wie die Konstante unter Variante 1:
Dim strVerzeichnis As String
strVerzeichnis = ThisWorkbook.Path
Workbooks.Open strVerzeichnis & "\Dateiname.xls"
Prinzipielles zu Variablen und Konstanten findest Du in der OnlineHilfe.
Ich freue mich auf weitere Nachfragen.
Greetinx aus Kiel
Reiner
--
Ich sei, gewähret mir die Bitte, in eurem Netzwerk der Dritte.
(frei nach Schiller)
Reiner, Danke!
ich hab jetzt den Dynamischen Pfad eingebaut. Klappt Prima!
Damit lässt sich wesentlich besser arbeiten, als zuvor!
Danke nochmal.
> Reiner, Danke!
> ich hab jetzt den Dynamischen Pfad eingebaut. Klappt Prima!
> Damit lässt sich wesentlich besser arbeiten, als zuvor!
> Danke nochmal.
Freut mich, dass es funktioniert und danke für die Rückmeldung.
Sonnigen Tag noch
Greetinx aus Kiel
Reiner
--
All Computers wait at the same speed !