![]() |
||
![]() |
Fehler im Kreuztabellen-Assistenten von Access 7Ich benutze den Abfrageassistenten von Access 7.0 fⁿr die Definition von Kreuztabellen. Leider sind die Ergebnisse nicht immer zufriedenstellend. Beispielsweise zeigt Access bei einer Sortierung nach Monaten in der Kreuztabelle keine Daten fⁿr den Monat MΣrz an. Es mⁿ▀ten aber welche existieren. Handelt es sich dabei um einen Bug von Access oder mache ich etwas falsch? Die Ursache fⁿr das beschriebene Verhalten ist tatsΣchlich ein kleiner Fehler des Kreuztabellen-Assistenten. Dieser erzeugt aus den im Dialog erfragten Informationen prinzipiell eine SQL-Anweisung. Dabei wΣhlt der Assistent jedoch eine falsche Bezeichnung fⁿr die Spalte des Monats MΣrz und kann deshalb natⁿrlich dort keine Daten anzeigen. Um diesen Fehler auszugleichen, mⁿssen Sie nach dem Erzeugen der Abfrage per Assistent von Hand eine ─nderung an der SQL-Anweisung vornehmen. Definieren Sie zunΣchst wie gewohnt Ihre Kreuztabelle mit dem Access-Assistenten. Wechseln Sie anschlie▀end mit Hilfe des Befehls Ansicht û SQL zur SQL-Anweisung. In der letzten Zeile dieser Anweisung befindet sich der Ausdruck fⁿr das Format der Pivot-Tabelle mit folgendem Aussehen: PIVOT Ausdruck IN SpaltenⁿberschriftenDiese Anweisung berechnet fⁿr jeden Datensatz zunΣchst den angegebenen Ausdruck. Anhand dieses Wertes erfolgt dann die Zuordnung zu einer mit der Klausel IN definierten Spalte. Fⁿr die Sortierung nach Monaten erzeugt der Assistent einen Ausdruck, der eine drei Buchstaben lange Monatsbezeichnung ermittelt: Format([Termin],ômmmô). Diese Funktion gibt fⁿr den Monat MΣrz das Kⁿrzel Mrz zurⁿck. Der Assistent hat aber in der Klausel IN die Spalte fⁿr MΣrz mit MΣr bezeichnet. Da Access somit keine ▄bereinstimmung von Wert und Spaltenname finden kann, fallen die Daten fⁿr MΣrz in der Kreuztabelle unter den Tisch û die Spalte MΣr bleibt zwangslΣufig leer. Wenn Sie also in der Klausel IN die Bezeichnung fⁿr die dritte Spalte von MΣr in Mrz Σndern und die Anweisung erneut ausfⁿhren, erhalten Sie das korrekte Ergebnis. |
![]() |