Zur Hauptseite ... Zum Onlinearchiv ... Zum Abonnement ... Zum Newsletter ... Zu den Tools ... Zum Impressum ... Zum Login ...

Achtung: Dies ist nicht der vollständige Artikel, sondern nur ein paar Seiten davon. Wenn Sie hier nicht erfahren, was Sie wissen möchten, finden Sie am Ende Informationen darüber, wie Sie den ganzen Artikel lesen können.

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

Gedrucktes Heft

Diesen Beitrag finden Sie in Ausgabe 3/2011.

Unser Angebot für Sie!

Lesen Sie diesen Beitrag und 500 andere sofort im Onlinearchiv, und erhalten Sie alle zwei Monate brandheißes Access-Know-how auf 72 gedruckten Seiten! Plus attraktive Präsente, zum Beispiel das bald erscheinende Buch 'Access 2010 - Das Grundlagenbuch für Entwickler'!

Diesen Beitrag twittern

Zusammenfassung

Erfahren Sie, welche Probleme es beim Verknüpfen von Excel- oder Textdateien geben kann und wie Sie diese umgehen.

Techniken

Verknüpfungen, VBA

Voraussetzungen

Access 2000 und höher

Beispieldateien

Verknuepfungen.mdb

Shortlink

www.access-im-unternehmen.de/781

Excel-Daten richtig verknüpfen

André Minhorst, Duisburg

Immer wieder mal benötigt man Daten aus externen Quellen wie Excel-Tabellen. Bei Quellen, die selbst noch keine Information über das Datenformat der jeweiligen Spalten mitliefern, kann es manchmal zu Problemen beim Verknüpfen kommen. Dieser Beitrag zeigt, wo es hakt und wie Sie solche Probleme umgehen können.

Das Verknüpfen von Daten aus Excel-Tabellen erledigen Sie beispielsweise mit dem dafür vorgesehenen Assistenten oder per VBA.

Beide Varianten können wie gewünscht funktionieren, aber gerade wenn die Daten von Dritten stammen, ist deren Integrität nicht unbedingt gewährleistet.

Die folgenden Abschnitte zeigen, wie Sie im Optimalfall auf die Daten zugreifen, ohne diese gleich nach Access zu importieren, und wie Sie vorgehen können, wenn nicht gleich alles nach Wunsch gelingt.

Verknüpfung per Assistent

Da die Möglichkeiten für den Aufruf der Assistenten zum Importieren etwa von Excel- oder Textdateien sich bei den aktuellen Access-Versionen stark unterscheiden, beschreiben wir hier einfach deren Aufruf per VBA. Sie können jedes Menü- oder Ribbonelement unter Access mit der RunCommand-Methode aufrufen. Dazu müssen Sie nur die entsprechende Konstante angeben, die in diesem Fall immer mit acCmdImportAttach... beginnt (s. Abb. 1).

pic001.png

Abb. 1: Aufruf des Import- und Verknüpfungsdialogs per VBA

Zum Importieren oder Verknüpfen einer Excel-Tabelle verwenden Sie also beispielsweise die Anweisung RunCommand acCmdImportAttachExcel, für den Import einer Textdatei RunCommand acCmdImportAttachText.

Mit dem Assistenten zum Verknüpfen von Excel-Tabellen führen Sie nach der Auswahl der Quelldatei nur drei Schritte durch:

  • Auswahl des Bereichs,
  • festlegen, ob die erste Zeile Spaltenüberschriften enthält, und
  • Angabe des Namens der verknüpften Tabelle.

Das bedeutet, dass Access selbstständig erkennen muss, welchen Datentyp die Excel-Daten haben. Access ist dabei relativ faul: Es liest gerade mal die ersten paar Zeilen ein und entscheidet anhand der enthaltenen Daten, welchen Datentyp eine Spalte liefert. Dieser Datentyp wird dann für die Verknüpfung verwendet, was dazu führt, dass etwa eine Spalte, die in den ersten paar Zeilen nur Zahlen enthält, auch mit dem Datentyp Zahl versehen wird. Taucht dann ein paar Zeilen weiter unten eine Zeichenfolge auf, wird diese schlicht nicht importiert.

Verknüpfung per TransferSpreadsheet

Zum Verknüpfen von Excel-Tabellen verwenden Sie alternativ die DoCmd-Methode TransferSpreadsheet. Diese Methode erwartet die folgenden Parameter:

  • TransferType: Gibt die Transfermethode an, zum Beispiel acExport, acImport oder acLink. Zum Verknüpfen verwenden Sie acLink.
  • SpreadsheetType: Typ der Datenherkunft, für Excel 2007 beispielsweise acSpreadsheetTypeExcel12
  • TableName: Name der zu erstellenden Verknüpfung
  • FileName: Pfad und Name der Excel-Datei
  • HasFieldNames: Gibt an, ob die erste Zeile Feldnamen enthält
  • Range: Bereich, zum Beispiel Tabelle1, Tabelle1$A:A oder Tabelle2$A1:C3
  • UseOA: wird nicht unterstützt

Damit können Sie das Verknüpfen mit einer Excel-Tabelle genau so abbilden, wie Sie es sonst mit dem Assistenten erledigen würden.

Probleme mit dem Datentyp

Access legt auch beim Verknüpfen von Daten entsprechende Datentypen fest.

Dies können Sie prüfen, indem Sie die erste Tabelle der Beispieldatei Verknuepfungen.xls aus Abb. 2 mit der folgenden Anweisung verknüpfen:

pic003.png

Abb. 3: Formatieren der Zellen einer Excel-Tabelle

DoCmd.TransferSpreadsheet acLink,

acSpreadsheetTypeExcel9,

"tblBeispiele",

CurrentProject.Path

& "\Verknuepfung.xls",

True, "Tabelle1$"

Die Spalten dieser Tabelle sind jeweils wie im Spaltenkopf beschrieben formatiert. Die spaltenweise Formatierung nehmen Sie vor, indem Sie den Spaltenkopf markieren und den Eintrag Zellen formatieren aus dem Kontextmenü auswählen. Daraufhin erscheint der Dialog aus Abb. 3, mit dem Sie die gewünschte Formatierung festlegen können.

pic002.png

Sie haben das Ende des frei verfügbaren Teils des Artikels erreicht. Lesen Sie weiter, um zu erfahren, wie Sie den vollständigen Artikel lesen und auf viele hundert weitere Artikel zugreifen können.

Sind Sie Abonnent?Jetzt einloggen ...
 

Kompletten Artikel lesen?

Einfach für den Newsletter anmelden, dann lesen Sie schon in einer Minute den kompletten Artikel und erhalten die Beispieldatenbanken.

E-Mail:

© 2003-2015 André Minhorst Alle Rechte vorbehalten.