# Mit Excel-VBA auf Access auf Sharepoint zugreifen



## Baxist (10. September 2008)

Hallo zusammen,

folgendes Problem:
Habe ein Excel-Makro als FrontEnd programmiert zur Bearbeitung von Daten aus einer Access-Datenbank.
Beide Dateien liegen im gleichen Verzeichnis in der Dokumentbibliothek auf Sharepoint.
Wenn ich nun über ADO von Excel auf die Datenbank zugreifen möchte, bekomme ich die Fehlermeldung:
"kein zulässiger Dateiname".
Wenn ich mir jedoch den Dateinamen, den ich in vba erstellen lasse 

```
ActiveWorkbook.Path & "/Test.accdb"
```
,
in meinen Explorer kopiere, öffnet Access mir die Datenbank ohne Probleme - der Link ist also korrert.
Lokal hatte ich auch keine Probleme, aber liegt es irgendwie an Sharepoint. Aber wie?

Danke für eure Hilfe!


----------



## Zvoni (10. September 2008)

Bist du dir sicher mit dem Vorwärts-Schrägstrich "/"?

Ich habe in Erinnerung, dass bei Pfad-Angaben der Rückwärts-Schrägstrich "\" verwendet wird.


----------



## Baxist (10. September 2008)

da sharepoint eine webbasierte anwendung ist, sollte der pfad so stimmen (und beim "händigen" aufrufen des link funktioniert es ja auch.) 
:-(


----------



## Zvoni (10. September 2008)

Korrekt! Da du aber den Pfad innerhalb von Excel (einer Win-basierten Anwendung) aus aufrufst/verwendest, erwartet der VBA-Code die Windows-Konforme-Schreibweise anstatt der Web-basierten Schreibweise. Dabei ist es egal, ob das Excel-Frontend lokal oder auf diesem Sharepoint sitzt, da in beiden Fällen die Excel-Datei (und damit dein VBA-Code) in deinem lokalen Adressraum (Sprich auf deiner Win-Maschine) ausgeführt wird.

Ausserdem: Wenn du wie im genannten Beispiel auf eine Datei zugreifen willst, ist es egal, wo diese liegt: Egal ob sie lokal ist, auf nem Netzwerk-server, im Internet oder unter Grossmutters Bett, es gilt immer die Schreibweise des Systems (siehe Absatz vorher), welches die Datei haben will.

In deinem Fall ist es Windows.

Tip: Setz mal nen Haltepunkt auf die Zeile. und werte mal

ActiveWorkbook.Path separat aus ohne das "Test.accdb".

Du wirst feststellen, dass in .Path der Backslash verwendet wird.


----------



## Baxist (10. September 2008)

leider eben nicht:

ActiveWorkbook.Path = 
http://servername.net:33333/d/demo/demonstration/Dokumentbibliothek/test


ps:aus spaß/verzweiflung auch mal mit replace die "/" durch "\" ersetzt... geht auch nicht


----------



## Zvoni (10. September 2008)

hmmm, man lernt doch immer wieder noch was neues (*AlteÜberzeugungeninAbfalltreten*). Ich hätte schwören können, es lag am Backslash.

hmm, das einzige was mir noch einfällt ist eine eventuelle Zugriffsberechtigung für den Ordner, wo die DB liegt.

Oder wirklich ein Fehler im Dateinamen. Der Hinweis "kein zulässiger Dateiname" ist meistens ein Hinweis, dass verbotene Sonderzeichen im Dateinamen vorkommen.

EDIT: Hmmm, ich sehe gerade, dass Doppelpunkte im gesamten Dateinamen vorkommen. Und soweit ich weiss, kann es damit Probleme geben. Hast du mal URLEncode versucht? Also dieses Dingsbums, womit man vorkommende Sonderzeichen in "normale" zulässige umwandelt (ich erinner mich da an so ein "%20" für ne Leerstelle glaube ich)


----------



## Baxist (10. September 2008)

auch schon probiert.

bin inzwischen fest davon überzeugt, dass es an berechtigungen liegt.


----------

