PDA

Vollständige Version anzeigen : Felder sortieren nach gesperrt/ungesperrt


crein
27.10.2003, 08:59
Hi Leute!

Hab mal wieder was kniffliges:
In einem Unterformular (endlos) habe ich einzelne Datensätze per bedingter Formatierung gesperrt. Nun möchte ich die Datensätze sortieren. Und zwar sollen die gesperrten Datensätze ganz unten stehen.
Hat jemand ne Idee dazu?

MfG
Chris

Kevin
27.10.2003, 09:04
Denke (!) mal das müsstest Du schon in der Abfrage definieren.
Wenn die Felder durch Formatierung gesperrt werden können, kannst Du auch in der Abfrage ein extra Feld definieren, was das ermittelt und dannach sortieren lassen.
Dadurch hättest Du dann die gesperrten unten.

Gruß Kevin

crein
27.10.2003, 09:24
Das Formular baut auf einer Tabelle auf, die bedingte Formatierung habe ich direkt auf das Formular angewendet.

Ich habe jetzt einfach unter den Formulareigenschaften eine absteigende Sortierung auf das Datumsfeld angewendet, das ebenfalls die Bedingung für die Sperrung enthält. Allerdings enthalten nicht alle DS in diesem Feld einen Eintrag, so dass es zu dem unerwünschten Nebeneffekt kommt, dass alle DS mit leerem Feld ebenfalls ganz unten stehen.

Wie lässt sich das verhindern? Gibt es ein Möglichkeit, etwas komplexer zu sortieren, als nur ASC/DESC?

Kevin
27.10.2003, 09:26
Ausser geschachtelte ASC/DESC wüsste ich nix.
Im Notfall über Recordset und Array... da kannste sortieren wie Du Lustig bist ;o)

Gruß Kevin

crein
27.10.2003, 12:45
Mit recordset und array hab ich noch nie gearbeitet. Kannst du mal ein Beispiel posten, an dem ich sehe, wie man damit sortieren kann?
:eek:

Kevin
27.10.2003, 12:56
Definiere einen Type der Deiner Tab enspricht
z.B.
Public Type t_rsDaten
id as long
txt1 as strng
txt2 as string
nr3 as long
end type


Dann lädst Du die Daten in ein RS und übergibst sie dem Typearray
z.B.

dim RS as dao.recordset
dim a_t_rsDaten() as t_rsDaten
dim i as long
set rs = currentdb.openrecordset("[DeineTab]",dbopensnapshot)
redim a_t_rsdaten(rs.recorscount)

do while not rs.eof

a_t_rsdaten(i).id = rs!id
a_t_rsdaten(i).txt1 = rs!txt1
a_t_rsdaten(i).txt2 = rs!txt2
a_t_rsdaten(i).nr3 = rs!nr3
i=i+1

loop


Damit hast Du die Daten in einem Array und kannst mit eingebauten oder selbst geschriebenen Algo's sortieren.

Aber wie gesagt, die Definierung/Sortierung in der Query kann bedeutend effzienter sein.

Gruß Kevin