Sortierung in einer Abfrage zur Laufzeit ändern

01/09/2009 - 19:33 von Michael Alexander | Report spam
Hallo NG!

Ich habe ein Problem, welches ich nicht lösen kann.

Ein Button auf einem frm öffnet eine Abfrage mit einer bestimmten Sortierung
von einer bestimmten Spalte.

Nun soll aber der User die Möglichkeit haben mittels Kontext-Menü eine A-Z
bzw. Z-A Sortierung über JEDE Spalte machen zu können.

Wie stelle ich fest, welche Spalte er markiert hat und übergebe den
Spaltennamen dem SQL-String für die Sortierung?

Ich brauche eine Tabelle und kann es nicht mit einer Liste lösen, weil der
User dann die ganze Abfrage markieren und z.B. nach Excel kopieren kann.

Oder habt Ihr eine ganz andere Idee?

Danke
Michael

A2k SP3
 

Lesen sie die antworten

#1 Raimo Becker
01/09/2009 - 20:41 | Warnen spam
Hallo Michael,

öffnest Du ein Subform als DataSheet-View oder wirklich eine Abfrage?
Bei ersterem könntest Du über

OnCurrent Deines Subforms

strAktFeld=Me.ActiveControl.Properties(1) den Namen des Feldes herauskriegen
und den dann in einer (temporàren) Abfrage über
"SELECT * FROM tblXXX ORDER BY " & strAktFeld & " " & fctSort
in einen Querydefs("tblTempBLABLA").SQL schreibst

wobei fctSort als Funktion definiert ist

Function fctSort (qryWasAuchImmer as String, strAktfield as String) as String

' das übliche db/rs Geraffel

Set rs=db.Openrecordset(qryWasAuchImmer)
rs.MoveFirst
sort1 = rs!strAktFeld
rsMoveNext
Sort2 =rs!strAktFeld
If Sort1> Sort2 then
fctSort = "DESC"
else
fctSort = "ASC"
end if
'Aufràumen und raus
end function

Alles Luftcode

Wie du das jetzt in ein Kontextmenü kriegst...
Das weiß ich nicht.

Grüße aus Hannover

Raimo

"Michael Alexander" wrote:

Hallo NG!

Ich habe ein Problem, welches ich nicht lösen kann.

Ein Button auf einem frm öffnet eine Abfrage mit einer bestimmten Sortierung
von einer bestimmten Spalte.

Nun soll aber der User die Möglichkeit haben mittels Kontext-Menü eine A-Z
bzw. Z-A Sortierung über JEDE Spalte machen zu können.

Wie stelle ich fest, welche Spalte er markiert hat und übergebe den
Spaltennamen dem SQL-String für die Sortierung?

Ich brauche eine Tabelle und kann es nicht mit einer Liste lösen, weil der
User dann die ganze Abfrage markieren und z.B. nach Excel kopieren kann.

Oder habt Ihr eine ganz andere Idee?

Danke
Michael

A2k SP3



Ähnliche fragen