...
xsql fügt Excel 3 Funktionen in einer neuen Kategorie [xsql] hinzu:
- fQuery - fColumns -Start einer SQL-Abfrage beim Öffnen der Datei oder bei Änderungen an den relevanten Zellen
- fTables -
...
- Liste von Tabellen (physischen Dateien) in Bibliotheken erstellen
- fColumns - Liste von Felder in Dateien (physische und logische) erstellen
Das Arbeiten mit diesen Funktionen wird in diesem Kapitel beschrieben.
...
Eine xsql-Funktion mithilfe des Excel-Formeleditors einfügen
Die Tabellenfunktion fQuery kann wie jede andere Funktion direkt in die Zelle oder über den Formeleditor eingegeben werden:
...
- Registerkarte "Formeln" anklicken
- "Funktion einfügen" klicken
- Im Dropdownfeld "Kategorie" [XSQL] auswählen
- "fQuery" markieren und OK klicken
...
- die gewünschte Funktion markieren und OK klicken
Die xsql-Funktionen sind Array-Funktionen
Hier eine kleine Hilfestellung, falls Sie nicht wissen, wie man Array-Funktionen erstellt:
Am einfachsten:
1. Geben Sie die Funktion einer Zelle ein (hier zum Beispiel fQuery):
2. Drücken Sie ENTER
Beachten Sie die Zelle, in der Sie die Funktion eingegeben haben.
- wenn sie jetzt die Überschrift des ersten ausgewählten Feldes hat, dann haben Sie die Funktion syntaktisch korrekt eingegeben. Fahren Sie mit Schritt 3 fort.
- wenn sie jetzt den Inhalt ##WERT hat, dann gibt es noch einen Fehler in der eingegebenen Funktion. Bitte korrigieren Sie die Funktion.
3. Markieren Sie soviele Spalten, wie Felder ausgewählt wurden und mindestens soviele Zeilen, wie Sie an Sätzen erwarten (mehr ist nicht schlimm)
4. Drücken Sie die Taste F2
5. Drücken Sie die Tastenkombination STRG+UMSCH+EINGABE
Ein vorhandenes Array erweitern
Zum Vergrössern eines Arrays (gilt für alle Arrayformeln, d. h. auch Doku zu Excel beachten):
- Zellzeiger in die linke obere Ecke der Arrayformel setzen
- Den gewünschten (vergrösserten) Bereich markieren
F2
drückenSTRG+UMSCH+EINGABE
drücken
Bitte beachten: der neue Bereich muss größer oder gleich groß wie der alte sein, dies betrifft Zeilen und Spalten! Ist dies nicht der Fall (z. B. mehr Zeilen aber weniger Spalten) erscheint die Fehlermeldung "Teile eines Arrays können nicht geändert werden".
Zum Verkleinern von Arrayformeln geht diese Methode leider nicht.
Siehe auch:
Microsoft Excel: Regeln für ein Ändern von Matrixformeln
Die Funktion fQuery
fQuery führt eine SQL-Abfrage aus und liefert das Ergebnis in die Tabelle.
Syntax von fQuery
fQuery(SQL; Optionen; DNS; P1; P2; P3; ...)
Die einzelnen Parameter sind:
SQL: Die SQL Anweisung
Optionen (wahlweise)für die Überschrift:
0 - keine Überschriften
1 - Feldnamen als Spaltenüberschriften ausgeben
2 - Feldtexte als Spaltenüberschriften ausgeben
4 Kurztexte ("COLHDG")
4 - Langtexte ("TEXT")
8 - Unbenutzte Zellen als #N/V ausgeben8 - Statt des Abfrageergebnisses wird die Beschreibung der Felder ausgegeben
Die Optionen können addiert werden.
DSN: Name der ODBC Datenquelle.
Falls leer, sucht fQuery unter den vorhandenen DSN's die erste iSeries-Verbindung.
Wenn man eine Datenquelle angeben möchte, dann ist sie in Anführungszeichen (") zu setzen.
P1, P2, P3, ... (wahlweise): Zellbezüge für Platzhalter (Parametermarker im Statement): Fragezeichen im SQL StatementBeispiel
Beispiele für fQuery:
...
=fQuery("SELECT * FROM QIWS/QCUSTCDT",1)
Voraussetzung ist das Wissen über die Eingabe/Verwendung einer Arrayformel.
Am einfachsten:
Erst Formel in eine Zelle eingeben und EINAGBE drücken. Man sieht dann gleich ein Ergebnis und weiß, ob die Syntax richtig war. Dann den gewünschten Bereich markieren, F2 drücken, dann STRG+UMSCH+EINGABE
Natürlich kann die Formel nur soviele Zeilen/SPalten zurückgeben, wie der markierte Bereich groß ist, man kann jedoch ruhig mit ein paar Tausend Zeilen etc. operieren.
Die Funktion fColumns
;1)
- holt alle Felder von allen Sätzen der Datei QIWS/QCUSTCDT und schreibt sie in die Tabelle
- es wird die erste IBM i - ODBC-Datenquelle verwendet
- als Überschriften werden die Feldnamen verwendet
=fQuery("select * from qiws/qcustcdt where cdtlmt >= ?";1;"AETOAD";$C$1)
- holt alle Felder von ausgewählten Sätzen der Datei QIWS/QCUSTCDT und schreibt sie in die Tabelle
- Es wird die Datenquelle AETOAD verwendet
- als Überschriften werden die Feldnamen verwendet
- die Auswahl wird durch den Inhalt der Zelle C1 bestimmt: alle Sätze, in denen das Feld CDTLMT grösser oder gleich dem Inhalt von C1 ist, werden geholt
Die Funktion fTables
Die Funktion liefert die Namen und Beschreibungen von Tabellen (physischen Dateien) in einer Bibliothek
Syntax von fTables
fTables(bibliothek; tabelle; spaltenüberschrift)
Die Datei liefert die Namen und Beschreibungen von Tables (physischen Tabellen) gemäss den angegebenen Auswahlkriterien in Parameter 1 (biblitohek) und Parameter 2 (tabelle).
Die Parameter sind in Grossbuchstaben einzugeben:
bibliothek: Der Name einer Bibliothek/eine Schemas
Hier können Sie auch das Prozentzeichen (%) als Wildcard verwenden.
- % liefert alle Einträge aus der Bibliotheksliste des ODBC-Verarbeitungsjobs
- Gültige Sonderwerte:
*ALL, *USRLIBL, *LIBL
tabelle: der Name der aufzulistenden physischen Datei (Table) oder Dateien
Hier können Sie auch das Prozentzeichen (%) als Wildcard verwenden
Beispiele:
ST%
- findet alle Dateien, der Name mit "ST" beginnt%KFZ%
- findet alle Dateien mit "KFZ" im Namen, egal, was davor oder dahinter steht%P
- findet alle Dateien, dern Name mit "P" endetST%P
- findet alle Dateien, deren Name mit "ST" beginnt und mit "P" endet
spaltenüberschrift: Überschriften, oder nicht
Gültige Werte:
0 - keine Überschriften
1 - Feldnamen
8 - Unbenutzte Zellen als #N/V ausgeben
Beispiele für fTables
Auswahlkriterien in den Zellen A1, A2 und A3:
Alle Dateien:
Alle, die mit "OA" beginnen:
Alle, in deren Name "MS" vorkommt:
Die Funktion fColumns
Die Funktion liefert Informationen über Felder von Dateien (physische und logische) zurück: Name, Typ, Dimensionen, Pufferposition, u.a.
Syntax von fColumns
fColumns(bibliothek; tabelle; feldname ; spaltenüberschrift)
Die Parameter sind in Grossbuchstaben einzugeben:
bibliothek: Der Name einer Bibliothek/eine Schemas
Hier können Sie auch das Prozentzeichen (%) als Wildcard verwenden.
- % liefert alle Einträge aus der Bibliotheksliste des ODBC-Verarbeitungsjobs
- Gültige Sonderwerte:
*ALL, *USRLIBL, *LIBL
tabelle: der Name einer Datei in der Bibliothek
Hier können Sie auch das Prozentzeichen (%) als Wildcard verwenden:
Beispiele:
ST%
- findet alle Dateien, der Name mit "ST" beginnt%KFZ%
- findet alle Dateien mit "KFZ" im Namen, egal, was davor oder dahinter steht%P
- findet alle Dateien, dern Name mit "P" endetST%P
- findet alle Dateien, deren Name mit "ST" beginnt und mit "P" endet
feldname: der Name der aufzulistenden physischen Datei (Table) oder Dateien
Hier können Sie auch das Prozentzeichen (%) als Wildcard verwenden:
Beispiele:
ST%
- findet alle Felder, der Name mit "ST" beginnt%KFZ%
- findet alle Felder mit "KFZ" im Namen, egal, was davor oder dahinter steht%P
- findet alle Felder, dern Name mit "P" endetST%P
- findet alle Felder, deren Name mit "ST" beginnt und mit "P" endet
spaltenüberschrift: Überschriften, oder nicht
Gültige Werte:
0 - keine Überschriften
1 - Feldnamen
8 - Unbenutzte Zellen als #N/V ausgeben
Beispiele für fColumns
Auswahlkriterien in den Zellen A1, A2, A3 und A4:
Alle Felder einer bestimmten Datei
Alle Felder aller Dateien in der Bibliothek
(hier sollte man aufpassen, dass man die Matrix gross genug aufzieht...)
Alle Felder aller Dateien, die "KDN" in ihrem Namen tragen
Alle Felder in Dateien, die auf "P" enden und deren Name "KMP" enthält