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?
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 ?
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. :'(
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!
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!
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.
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
hi mit welchem befehl kann man bestimmte datensätze rausfiltern.sodass nur bestimmte daten angezeigt werden.
mfg chris :)
Hallo,
mit einem SQL-Befehl....