Access Zeit / Minuten sortieren?

Matze7

Mitglied
Hab da mal ne Anfängerfrage...

Ich habe eine Abfrage gemacht, in der z.B. auch eine Spalte Länge / Zeit vom kleinsten zum größten Wert sortiert werden soll.
Ich habe da z.B. Werte von 1 Minute bis 999 Minuten drin. Wenn ich jetzt aufsteigend sortieren lassen, geht er leider nicht der Reihenfolge nach, wie es sonst üblich ist. (Spalte als Text formatiert)
Kann ich trotz Textfeld die Minuten so sortieren, das erst die einstelligen, dann die zweistelligen und zuletzt die dreistelligen Minuten in der richtigen Reihenfolge angezeigt werden?

Danke.
 
Du musst eben aus dem String ein Int machen.
SQL:
...ORDER BY CInt(spalte)

Ich benutze aber kein Access(muss es aber jetzt lernen für die nächsten Monate), habe nur kurz gegoogelt.
 
Moin,

erstelle eine Abfrage. Dort generierst du ein neues Feld und gibst dann über [F2] diesen Ausdruck:
Code:
NumMinuten: ZInteger( [TxtMinuten])
Dann kannst du nach dem Feld sortieren, da alle Textwerte aus dem Feld TxtMinuten in numerische Werte umgewandelt wurden.
 
Sorry, leider verstehe ich jetzt nur noch Bahnhof. ;-)

Das mit F2 klappt irgendwie nicht, bzw. weiß ich nicht genau wann ich das drücken muss und warum ich ein neues Feld brauche, wenn ich doch bereits eins in meiner Tabelle habe, was abgefragt wird.

Ich habe doch bereits eine Abfrage generiert in der ich (über den Abfrage Assistent) mein Feld "Zeit" aus der Haupttabelle ausgesucht habe.
Dieses soll jetzt aufsteigend sortiert werden. Müsste ich dazu nicht in der Entwurfsansicht unter Kriterien des gewählten Feldes einen entsprechenden Ausdruck hinschreiben?
 
Mache es so wie CPoly oben geschrieben hat.

Meiner Meinung nach am einfachsten zu lösen indem du die Abfrage öffnest und in die SQL Ansicht wechselst. Hier gibst du dann am Ende der Abfrage ein:

Code:
ORDER BY INT (deine Spalte)

Gruß Thomas
 
Mache es so wie CPoly oben geschrieben hat.

Meiner Meinung nach am einfachsten zu lösen indem du die Abfrage öffnest und in die SQL Ansicht wechselst. Hier gibst du dann am Ende der Abfrage ein:

Code:
ORDER BY INT (deine Spalte)

Gruß Thomas

Hmmm, habe in die SQL Ansicht gewechselt und dort den Code am Ende hinzugefügt. Leider kommt jetzt "Zeichen am Ende von SQL Anweisung gefunden"

Davor stand schon: (habe die Namen mal Beispielhaft angepasst...)

SELECT Liste.Spalte1, Liste.Spalte2, Liste.Spalte3
FROM Liste;
 
Und du hast es so angehängt:
SELECT Liste.Spalte1, Liste.Spalte2, Liste.Spalte3
FROM Liste ORDER BY CInt(Liste.SpalteFoo);

und nicht etwa nach dem Semikolon.
 
Und du hast es so angehängt:
SELECT Liste.Spalte1, Liste.Spalte2, Liste.Spalte3
FROM Liste ORDER BY CInt(Liste.SpalteFoo);

und nicht etwa nach dem Semikolon.

Ok, jetzt nimmt er es... Habe von SQL leider noch keine Ahnung...

Wenn ich nun aber die Abfrage aufrufe, kommt "Dateitypenkonfikt im Kriterienausdruck"... :eek:
 
Stell hier doch mal die SQL-Anweisung rein so wie du sie jetzt geschrieben hast, vielleicht finden wir dann ja die Ursache.
Du solltest aber auch prüfen ob der Fehler wirklich von der Abfrage selber ausgelöst wird. Es könnte nämlich auch sein, das du einen Rückgabewert der Abfrage an eine Variable übergibst die einen anderen Datentyp hat.

Gruß Thomas
 
Nochmal, jetzt allerdings korrekt und mit Bild:
Du hast bereits eune Abfrage mit dem Feld "Zeit".
Du gehst in die nächste leere Spalte und trägst dort ein:
Code:
ZeitSortiert: ZInteger([Zeit])
Du könntest als Assistenten auch Strg-F2 verwenden, wenn du in dem freien Feld bist. Dann unterstützt dich Access etwas mehr.
Danach Sortieren einstellen
Wenn du dann in die SQL-Ansicht gehst, siehst du, wie das SQL-Statement aussieht.

Ich bin nach wie vor der Meinung, dass für ANWENDER (insbesondere Einsteiger) der Weg über die "normale" Abfrage wesentlich hilfreicher ist als SQL-Statements zu übertragen, ohne sie wirklich zu verstehen. - Ach ja, ich kann sehr wohl mit SQL umgehen und nutze die "direkte" Methode meist selber für eigene Projekte.
 

Anhänge

  • MinutenSortiert.gif
    MinutenSortiert.gif
    12,3 KB · Aufrufe: 23
Zurück