Excel Treiber

<< Click to Display Table of Contents >>

Navigation:  Anwendungen (Apps) erstellen und ändern - Berechtigung Designer > Prozessschritte in Apps erstellen und ändern > Reiter Container und Profile > Datenbanken > ODBC - Verbindung erstellen >

Excel Treiber

Über den ODBC Excel-Treiber ist es möglich, per SQL an Daten einer Excel-Datei zu gelangen. Folgend wird erläutert, welche Abfragen zulässig sind und was beachtet werden muss.

 

In Excel können einzelne Bereiche nur angesprochen werden, wenn sie im Gültigkeitsbereich "Arbeitsmappe" definiert sind (nicht als Tabelle). Beim Benennen eines Bereiches ist also unbedingt darauf zu achten, dass bei Arbeitsmappe "Bereich" eingestellt ist. Außerdem muss der Name eindeutig sein, doppelte Namen sind nicht zulässig.

 

Die erste Zeile im abgefragten Zellenbereich ist immer die Überschriftenzeile und liefert die Feldnamen, die in der Abfrage verwendet werden können. Generell ist es nicht möglich, Daten, Spalten oder Tabellen zu löschen oder zu ändern. DELETE, UPDATE oder ALTER TABLE-Anweisungen ist somit nicht zulässig.

 

Folgende Abfragen können verwendet werden, um auf die Daten zuzugreifen:

Abfrage

Erklärung

SELECT * FROM [Tabelle1$]

Die Daten werden aus einem Tabellenblatt erhoben.

 

Achtung: $ und [] sind hier Pflicht.

SELECT * FROM [Tabelle1$A1:C10]

Die Daten werden aus einem Zellenbereich eines Tabellenblatts erhoben.

 

Achtung: Die Einstellung "ParamCheck" muss auf "False" im Datenbankprofil geändert werden.

SELECT * FROM Name

Die Daten werden aus einem "Definierten Namen" im Gültigkeitsbereich "Arbeitsmappe" erhoben. Vorher muss ein Definierter Name über Formeln "Definierte Namen" "Namen definieren" in der Excel-Datei festgelegt werden.

 

Achtung: Der Bereich muss hier auf "Arbeitsmappe" gestellt sein (Default-Wert), da ansonsten der Name nicht über ODBC angesprochen werden kann.

SELECT * FROM BereichA

UNION SELECT * FROM BereichB

Die Daten werden per UNION SELECT aus zwei verschiedenen Bereichen eines Tabellenblatts erhoben.

SELECT * FROM Datei1.csv

UNION SELECT * FROM Datei2.csv

Die Daten werden per UNION SELECT aus zwei verschiedenen CSV-Dateien erhoben.

 

Achtung: In der ini-Datei wird der Ordner angegeben, in denen sich die Dateien befinden.

INSERT INTO [Tabelle1$]

VALUES (Wert1,Wert2,Wert3,...)

Es werden Daten zu einem Tabellenblatt hinzugefügt.

 

Achtung: INSERT INTO ist nur in einem Worksheet möglich (nicht in einem Bereich).

 

Gültige Spaltennamen

Der Excel-Treiber erlaubt Spaltennamen, die gültige Excel-Zeichen enthalten (einschließlich Leerzeichen), Ausrufezeichen (!) dürfen nicht in Spaltennamen verwendet werden. Außerdem erzeugen Spaltennamen, die mehr als 64 Zeichen besitzen, einen Fehler. Nicht angegebene (leere) Spaltennamen werden durch vom Treiber generierte Namen (z. B. Col1 für Spalte 1) ersetzt.

 

Behandlung von leeren Zeichenfolgen

Das zugrunde liegende Datenformat kann eine leere Zeichenfolge und NULL-Daten nicht unterscheiden. Daher wird eine Abfrage mit einer Suchbedingung, die leere Zeichen enthält, auf keinen leeren String in der Tabelle zutreffen. Dies liegt daran, da der leere String in diesem Fall als NULL behandelt wird und NULL mit nichts übereinstimmt.