Discussion:
Keine Lesezugriff auf Excel-Datei bei Verknüpfung zu Access
(zu alt für eine Antwort)
Roger Friederich
2004-10-15 15:13:26 UTC
Permalink
Hallo,

ich habe eine Excel(2003)-Tabelle als verknüpfte Tabelle in eine
Access-Datenbank eingebunden. Immer wenn ich auf die in Access
verknüpfte Tabelle direkt oder via Abfragen zugreife führt dies dazu,
dass ich die Exceldatei nicht mehr öffnen kann. In Excel heisst es
dann nur "Zugriff auf die Datei ...xls verweigert".

Ich habe nicht vor, Daten in der Exceltabelle von Access aus zu
verändern sondern nur zu lesen. Gibt es eine Möglichkeit entweder
Access oder Excel beizubringen, dass in Access Abfragen gestartet und
zugleich von einem anderen Nutzer in der Exceltabelle gearbeitet
werder kann.

Freigabe der Exceltabelle für gemeinsame Nutzung habe ich schon
versucht - leider erfolglos. In Access finde ich keinen Weg nur
schreibgeschützt auf die Exceltabelle zuzugreifen.

Bin für jeden Hinweis dankbar.
Gruß,
Roger
Michael Schüller
2004-10-15 17:30:07 UTC
Permalink
Hallo Roger,

[...bisschen was gelöscht...]
Post by Roger Friederich
Ich habe nicht vor, Daten in der Exceltabelle von Access aus zu
verändern sondern nur zu lesen. Gibt es eine Möglichkeit entweder
Access oder Excel beizubringen, dass in Access Abfragen gestartet und
zugleich von einem anderen Nutzer in der Exceltabelle gearbeitet
werder kann.
IMHO nein.

Mir fällt nur der folgende (obskure?) Workaround ein:

- Du speicherst die verknüpfte Test.xls zusätzlich als Dummy.xls
- Du verweist in Access auf die Dummy.xls
- Du baust folgendes Makro in die Test.xls ein:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As
Boolean)
Static sFlag As Boolean
Dim vName As String

If Not sFlag Then
sFlag = True

With ThisWorkbook
'bisherigen Namen merken
vName = .Name

'Warnungen ausschalten (z.B. "Datei überschreiben?")
Application.DisplayAlerts = False

'Dummy speichern
.SaveAs .Path & "\Dummy.xls"

'"normal" speichern
.SaveAs .Path & "\" & vName

'Warnungen wieder ausschalten
Application.DisplayAlerts = True

'ursprünglichen Speichervorgang abbrechen
Cancel = True

End With
sFlag = False

End If

End Sub

Damit wird die (Access-verknüpfte) Dummy.xls bei jedem Speichern der
Test.xls aktualisiert und Du hast die aktuellen Daten auch in Access.

Knackig wird's
- wenn Du die Test.xls irgendwann mal über "Speichern unter..." in
einem _anderen Pfad_ speichern willst
- wenn Du in Access Verknüpfungen auf _mehrere_ xls hast

Poste ggf. nochmal.


Hoffe, ich konnte Dir helfen.

Schönen Gruß
--
Michael
***@gmx.de
Loading...