Verknüpfung auf xls-Datei per VBA aktualisieren

13/03/2008 - 11:30 von Andreas Gauer | Report spam
Hallo NG,

ich habe folgendes Problem: In einem Frontend einer DB habe ich eine
verknüpfte Excel-Tabelle. Jeder User legt jetzt die Excel-Datei mit einem
anderen Namen auf einem anderem Ordner aber immer im gleichen Format ab.

Kann ich jetzt mittels VBA die Verknüpfung im Frontend dahingehend àndern,
dass ich jede Verknüpfung auf die jeweilige Exceldatei àndere ???
Wenn das funktioniert, wie kann ich das umsetzen ???

Importieren möchte ich die Exceldatei nicht, da die User sowohl in der
Excel-Datei arbeiten als auch in der DB und ich benötige immer aktuell die
Daten aus der Exceldatei, deshalb verküpft.

System: Windows XP, Office 2003, Access 2000

Vielen Dank im voraus

Viele Grüße
Andreas Gauer
 

Lesen sie die antworten

#1 Henry Habermacher
13/03/2008 - 11:50 | Warnen spam
Hallo Andreas

Andreas Gauer wrote:
ich habe folgendes Problem: In einem Frontend einer DB habe ich eine
verknüpfte Excel-Tabelle. Jeder User legt jetzt die Excel-Datei mit einem
anderen Namen auf einem anderem Ordner aber immer im gleichen Format ab.

Kann ich jetzt mittels VBA die Verknüpfung im Frontend dahingehend àndern,
dass ich jede Verknüpfung auf die jeweilige Exceldatei àndere ???
Wenn das funktioniert, wie kann ich das umsetzen ???

Importieren möchte ich die Exceldatei nicht, da die User sowohl in der
Excel-Datei arbeiten als auch in der DB und ich benötige immer aktuell die
Daten aus der Exceldatei, deshalb verküpft.



Zuerst mal: Dir ist bewusst, dass die Excel Datei in Access so eingebunden
nur gelesen, nicht bearbeitet werden kann.
Wenn die Bearbeitung ebenfalls notwendig ist, dann wirst Du das z.B. über
eine Query der Art:

(für Excel Tabelle mit Daten Tabelle/Range, automatische Range Erweiterung
beim Hinzufügen von Datensàtzen)
SELECT [DeineTabelle].*
FROM [excel 8.0;HDR=NO;imex=0;DATABASE=C:\ExcelFile.xls].DeineTabelle;

(für Excel Tabelle mit absoluter Zellangaben)
SELECT [Sheet1$A1:C13].*
FROM [excel 8.0;HDR=NO;imex=0;DATABASE=C:\ExcelFile.xls].[Sheet1$A1:C13];

Per VBA Code làsst sich das SQL Statement hinter einer Abfrage mit wenig
String Manipulation leicht àndern, indem Du einfach das SQL Statement wie
oben zusammensetzt und dann der Abfrage zuweist:

CurrentDB.QueryDefs("DeineXLSAbfrage").SQL = strXLQuery

Wenn Du es mit vernküpfter Tabelle machen willst, dann làuft das ziemlich
àhnlich.

Gib im Direktfenster folgendes ein:

? CurrentDB.QueryDefs("DeineExcelTabelle").Connect

Dann erhàlst Du den Connect String für das Excel File. Dort kannst Du nun
den Pfad und den Dateinamen durch den ersetzen, den der Benutzer gerade
haben will.

CurrentDB.TableDefs("DeineExcelTabelle").Connect = strChangedConnectString
CurrentDB.TableDefs("DeineExcelTabelle").RefreshLink

Das zweite Statement ist notwendig, damit Access seine intern abgelegte
Struktur über die Datenfelder aktualisiert.

Gruss
Henry




SEK2 Anmeldung: http://donkarl.com/?SEK
Microsoft MVP Office Access
Keine E-Mails auf Postings in NGs. Danke.
Access FAQ www.donkarl.com

Ähnliche fragen