PDA

Vollständige Version anzeigen : Daten von Abfrage in LOGISCHER Reihenfolge in Tabelle kopieren


Sumpfmarie
23.09.2003, 13:51
[XS2000, Win2000, eng.]
Ich hab ein kliffliges Problem, an dem sich auch schon andere die Zaehne ausgebissen haben:
In meinem Bericht sollen Auftraege nach Lieferjahr und -Monat sortiert und durch entsprechende Ueberschriften geteilt werden. Also z.B. so:
Januar 2002 (Ueberschrift)
.... (DS)
Februar 2002
.... (DS)
usw.

Ich wollte das so loesen:
In einer Abfrage werden die Daten aus der Ursprungstabelle nach Jahr und dann nach Monat sortiert. Dann werden per VB-Code die Daten von der Abfrage in eine temporaere Tabelle kopiert (dabei wird gleichzeitig noch gefiltert, ob das Lieferdatum innerhalb einer vorher eingegebenen Zeitspanne liegt). Beim Kopieren wird jeweils verglichen ob Lieferjahr und -Monat des DS gleich sind wie beim vorhergehenden DS und in dem Fall werden die Felder fuer Jahr und Monat in gerade kopierten DS leer gelassen. Im Bericht ist dann fuer jeden DS ein Feld fuer Jahr und Monat vorgesehen, das aber die Eigenschaft "Can grow"/"Can shrink" hat. Somit sieht der Bericht so aus, als waeren Zwischen-Ueberschriften eingefuegt.

Das Problem ist jetzt, dass die Abfrage die DS nicht sortiert an die temporaere Tabelle uebergibt sondern so, wie sie aus der Ursprungstabelle kommen. Kann ich dem VB-Code irgendwie verklickern, dass er beim Durchgehen des Recordsets (While-Schleife) nach logischer Reihenfolge vorgehen soll? Wenn die temporaere Tabelle anschliessend sortiert wird (z.B. im Bericht) bringt es mir nichts, weil dann ja schon die Ueberschriften nicht mehr stimmen. Es muss also vor der Datenuebergabe geschehen.

Ne andere Moeglichkeit waere auch, die Felder im Bericht bedingt zu formatieren und nur dann anzeigen zu lassen, wenn sie sich vom entsprechenden Feld im vorhergehenden DS unterscheiden. Da weiss ich aber auch nicht wie's geht.

Kann mir da von Euch jemand helfen? :confused:

Johnny Loser
23.09.2003, 14:02
Hi Sandra,

grundsätzlich kannst Du doch die Abfrage, die Du für das Füllen der temporären Tabelle benutzt, auch direkt als Datenherkunft für Deinen Bericht nehmen, so daß die temporäre Tabelle überflüssig wird.

Im Bericht kannst Du nach bestimmten Feldern/Kriterien gruppieren, wobei Du in den jeweiligen Gruppenköpfen die Überschriften einfügen kannst, im Detailbereich dann sortiert die einzelnen Datensätze.

Thomas Braun
23.09.2003, 14:12
Ich würde die Funktionalität "Sortieren und Gruppieren" des Berichts nutzen.
Stell deine Daten mal in einer Abfrage zusammen und füge folgendes Felder hinzu: Format([LieferDatum];"jjjjmm")
Nach dem Feld Gruppierst du und lässt danach auch aufsteigend sortieren.
Den Gruppenkopf machst du sichtbar und fügst dort ein ungebundenes Feld mit folgendem Inhalt ein: Format([LieferDatum];"mmmm jjjj")