Excel-Daten richtig verknüpfen

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

Abb. 2: Exceltabelle mit formatierten Beispieldaten

Im ersten Beispiel haben wir alle Spalten entsprechend formatiert. Deshalb sieht die Entwurfsansicht der verknüpften Tabelle auch wie in Abb. 4 aus: Alle Datentypen wurden nach den Vorgaben übernommen. Im Falle der Werte Wahr und Falsch hat Access sogar den Datentyp Ja/Nein erkannt und umgesetzt; bei der Spalte, welche die Werte Ja und Nein enthielt, geschah dies leider nicht.

pic004.png

Abb. 4: Eine verknüpfte Tabelle in der Entwurfsansicht

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar