Access-o-Mania

Access-Forum (Deutsch/German) => Tabelle/Abfrage => Thema gestartet von: Elwood am August 11, 2011, 19:05:40

Titel: SQL - die dritte Runde
Beitrag von: Elwood am August 11, 2011, 19:05:40
Diesmal geht es ums sortieren.

Ich will ein UFo in endlos-Darstellung sortieren.

Das geht ja prima, indem ich die Datensatzherkunft ändere - also so:
Me.[FA_Kontakte Unterformular].Form.RecordSource = "SELECT Kontakte.* FROM Kontakte ORDER BY Kontakte.Wann DESC;
beziehungsweise
Me.[FA_Kontakte Unterformular].Form.RecordSource = "SELECT Kontakte.* FROM Kontakte ORDER BY Kontakte.Wann;

Das SELECT Statement basiert auf der im UFo eingestellten Datensatzquelle,

Dummerweise bekommt das UFo die Daten aus einem anderen UFo:
Also ist das FA_Kontakte Unterformular verknüpft über die ID_AP  mit der FA_Ansprechpartner Unterformular].Form![ID]  des anderen UFos.
Hauptformular   --          UFo1         --        UFo2
    Kunden         -- Kontaktpersonen -- Kontaktprotokoll

In dem UFo2, das ich nach Datum sortieren will steht also ein SELECT Statement, das, wenn ich es neu reinschreibe, nicht mehr funktioniert.
Vermutlich, weil die Daten über das Dynaset kommen und dann nicht mehr?

Wie auch immer - gibt es da eine Lösung oder hab ich mal wieder einen Knoten im Hirn?
Titel: Re: SQL - die dritte Runde
Beitrag von: DF6GL am August 11, 2011, 19:16:39
Hallo,

Du mußt halt auch die UFO-Verknüpfungsfelder in das SQL-Statement (in der Where-Condition) einfließen lassen...




"Ich will ein UFo in endlos-Darstellung sortieren."

und warum machst Du das nicht gleich in diesem (Unter-)Form ?
Titel: Re: SQL - die dritte Runde
Beitrag von: Elwood am August 11, 2011, 19:19:38
Ah - vergessen - das Sortieren mach ich interaktiv über eine Optionsgruppe (Radio-Buttons)
Wenn ich die anderen Felder ins Statement übernehme, krieg ich dann keine Probleme, wenn im UFo2 Daten eingegeben / geändert werden?

EDIT:
So SELECT Kontakte.* FROM Ansprechpartner LEFT JOIN Kontakte ON Ansprechpartner.ID = Kontakte.ID_AP ORDER BY Kontakte.Wann DESC;
wird es auch nicht besser.  :'(
Titel: Re: SQL - die dritte Runde
Beitrag von: Elwood am August 11, 2011, 21:08:49
Ich hab es jetzt über einen Filter gemacht.
Auf die Spur gebracht hat mich der Thread hier:
http://www.access-o-mania.de/forum/index.php?topic=13031.0 (http://www.access-o-mania.de/forum/index.php?topic=13031.0)

Bei mir sieht das nun so aus:
Private Sub Anzeige_AfterUpdate()

   'Anzeige im Unterformular 'absteigend' oder 'aufsteigend' wählen....
   If Me.Anzeige = 1 Then
       [FA_Kontakte Unterformular].Form.OrderBy = "[Wann] DESC"
       [FA_Kontakte Unterformular].Form.OrderByOn = True
       Else
       [FA_Kontakte Unterformular].Form.OrderBy = "[Wann]"
       [FA_Kontakte Unterformular].Form.OrderByOn = True
   End If
   
End Sub

Den Filter schalte ich beim Öffnen des Formulars aus, dann ist die ursprüngliche Sortierung, die über das SQL kommt, wieder aktiv.


Wenn jemand noch Tipps / Warnungen dazu hat: gerne!
Titel: Re: SQL - die dritte Runde
Beitrag von: database am August 12, 2011, 13:30:53
Hallo,

ZitatIch hab es jetzt über einen Filter gemacht.

Bitte die Begriffe Filter und Sortierung nicht verwechseln oder vermischen.

Mit einem Filter wird eine bestimmte Datensatzgruppe angezeigt und mit Sortierugn die Reihenfolge der Anzeige geändert!
Titel: Re: SQL - die dritte Runde
Beitrag von: Elwood am August 12, 2011, 13:55:03
ZitatMit einem Filter wird eine bestimmte Datensatzgruppe angezeigt und mit Sortierugn die Reihenfolge der Anzeige geändert!
Klaro. Aber mit Filter kann ich auch nur sortieren.
Das hat hier geholfen.
Titel: Re: SQL - die dritte Runde
Beitrag von: database am August 12, 2011, 14:20:39
Hallo,

ZitatAber mit Filter kann ich auch nur sortieren

NEIN!
Mit einem Filter wird lediglich eine bestimmte Gruppe von Datensätzen angezeigt.
Es werden sozusagen bestimmte Datensätze aus der gesamten Menge ausgefiltert.
Das hat mit einer Sortierung rein gar nichts zu tun.
Die gefilterte Gruppe kann jedoch ihrerseits sortiert werden.

Mit dem von dir zitierten Code wird nicht gefiltert, mit dem wird SORTIERT
Titel: Re: SQL - die dritte Runde
Beitrag von: user2100 am August 26, 2011, 08:24:58
hi mit welchem befehl kann man bestimmte datensätze rausfiltern.sodass nur bestimmte daten angezeigt werden.
mfg chris :)
Titel: Re: SQL - die dritte Runde
Beitrag von: DF6GL am August 26, 2011, 08:50:49
Hallo,

mit einem SQL-Befehl....