Access - Orderby zusammengesetzten feld?

Excelmania

Lieutenant
Registriert
Apr. 2010
Beiträge
825
Hallo.

Ich möchte gerne das die Sortierung in der folgenden SQL-Abfrage erst nachdem Titel erfolgt und dann nachdem Namen:

Code:
SELECT IIf([Personal!Titel] Is Null,[Nachname],[Titel]![Titel] & ' ' & [Personal]![Nachname]) AS Name, Personal.Vorname, Personal.Einsatzort, Personal.Wäschenummer
FROM Titel RIGHT JOIN Personal ON Titel.TitelID=Personal.Titel
WHERE (((Personal.[Wäschenummer]) Is Null));

Die ergänzung:
Code:
order by Personal.titel, Personal.Nachname

funktioniert nicht.
 
Ich möchte mich hier ja nicht aufspielen oder so, aber wie wärs wenn du all deine Fragen in einem Thread zusammenfassen würdest. Das nimmt ja bald Ausmaße an hier :D

Eventuell wärs auch nicht schlecht wenn du in deinen unzähligen Threads reinschreibst ob du schon ne Lösung hast, immerhin hast du bei manchen auch Antworten bekommen.
 
Excelmania schrieb:
Die ergänzung:
Code:
order by Personal.titel, Personal.Nachname

funktioniert nicht.

Das ist etwas pauschal formuliert. Die Frage ist nämlich in welcher Reihenfolge du das ganze sortiert haben möchtest. Ich habe mir mal deine Datenbank aus dem anderen Thread angesehen. Dort ist folgendes hinterlegt

1 - Titel ""
2 - Titel "Dr."
3 - Titel "Prof."

Da du im SQL-Code nicht definiert hast, ob aufsteigend (ASC) oder absteigend (DESC) sortiert werden soll, nimmt Access standardmäßig ASC. Du hast nun nach der Titel-ID aufsteigend sortiert. D.h. es kommt zuerst Titel "", dann Titel "Dr." und dann erst "Prof.". Ich vermute mal, dass du es genau andersherum haben willst. Dann musst du entweder deine Tabelle umsortieren oder du setzt gezielt den Parameter DESC.

Der Code wäre dann "order by Personal.titel DESC, Personal.Nachname".
Aber auch dann muss du aufpassen, wenn du später mal weitere Titel hinzufügst, wie z.B. "Prof. Dr.", dass du die Tabelle sauber hälst.


Nachtrag: Du hast hier noch ein anderes Problem. Dadurch, dass du das Feld Titel in der Tabelle Personal nicht als Pflichtfeld eingegeben hast, wird anstatt des Wertes 1 für kein Titel ein NULL-Wert gesetzt. NULL-Werte werden beim Sortieren immer als "kleinster" Wert betrachtet also kleiner als 1. Die Datenbank ist hier etwas inkonsistent.
 
Zuletzt bearbeitet:
Hallo.

Code:
Me.EinsatzortUF.Form.RecordSource = "SELECT Einsatzort.Einsatzort AS Einsatzort, IIf([Personal.Titel] Is Null,[Nachname], " & _
                                        "[Titel.Titel] & ' ' & [Nachname]) AS NName, Personal.Vorname, Personal.Wäschenummer " & _
                                        "FROM Titel RIGHT JOIN (Einsatzort INNER JOIN Personal ON Einsatzort.EinsatzortID = Personal.Einsatzort) " & _
                                        "ON Titel.TitelID = Personal.Titel " & _
                                        "WHERE EinsatzortID=" & Me.cboEinsatzort " & _
                                        "order by NName

Die folgende Ergänzung funktioniert nicht:
Code:
" & _
                                        "order by NName
 
Was heißt denn funktioniert nicht? Gibts ne Fehlermeldung? Oder sortiert er falsch? Oder was ist los? Ein bisschen Input wäre schon gut.
 
Ergänzung ()

hat sich erledigt.
 
Zuletzt bearbeitet:
Zurück
Oben