Sortierung nach Monat in MS-Access
Verwende ich eine MS Access db zu verfolgen einige Aufgaben während des Jahres. Jede Aufgabe hat eine durch Monat. Ich will nicht zu verwenden, genaue Termine des übereinkommens in meinem team ist, beziehen sich auf den Monat. Ich will nicht zum speichern der Daten in ein Datum-format, wie team-Mitglieder werden in die durch Monat von hand.
Ist es möglich, zu Sortieren, meine Felder in Datum um, wenn das Datum gespeichert ist, als einen text-string Monat? (zB. Januar, Februar, anstatt 31/01/2009, 28/02/2009).
Wenn ja, was wäre so eine Abfrage Aussehen?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie speichern nur den Namen des Monats, Ihr müssen zuerst konvertieren, um ein Datum, um die Nummer des Monats, die Verwendung einer lookup-Tabelle (MonthNo, MonthName), oder verwenden Sie die Switch-Funktion. Hier ist ein Beispiel der Umwandlung in ein Datum:
Jedoch, es ist wahrscheinlich ein gutes argument für die Speicherung eines Datums, basierend auf dem Namen des Monats eingetragen, dies würde verhindern, dass jede Verwirrung auf, über Jahre.
Sollte diese Arbeit
SELECT *
VON TableName
OrderBy Monat(date_field)
Ich würde store der Monat als Ganzzahl 1-12, dann können Sie leicht Sie zu Sortieren.
Ich würde ein date-Feld.
Ich würde speichern 1/1/2009 für Januar 2009, 2/1/2009, die im Februar 2009, und so weiter. Für die Anzeige, ich würde es formatieren, so dass es nur angezeigt, für den Monat (oder Monat + Jahr -- kann sich nicht vorstellen, wie Sie würde nicht wollen, das Jahr).
Dies macht es möglich, um die Vorteile der Datums-Operationen auf das Feld, ohne chaotisch Konvertierung von text zu Datum-Formate.
Danke Euch allen für Eure Antworten. Sorry für die Verzögerung bei der Reaktion - ich arbeite an diesem Problem jetzt wieder.
Zur Klarstellung, die DB wird verwendet, um zu verfolgen eine Liste der Veranstaltungen innerhalb eines Zeitraums von 12 Monaten. Das Jahr muss nicht gespeichert werden, da alles in der DB beziehen sich auf dasselbe Jahr. Eine neue Kopie der DB wird Anfang 2010.
Ich bin wirklich daran interessiert, tatsächlich lagern Sie den Monat als Wort, sondern als jede Art von Wert-oder Datumsfeld als bei der Massen-hinzufügen von Aufgaben, die ich wahrscheinlich Bearbeiten Sie die Tabelle direkt, anstatt ein Formular verwenden.
Ich weiß, dass es tot ist, aber google hat mich hierher gebracht, während ich war auf der Suche, so dachte, ich würde hinzufügen:
Ich hatte dieses problem selbst (Access 2010) und fand eine anständige Antwort hier: http://www.vbforums.com/showthread.php?503841-How-to-Convert-MonthName-to-Value(Microsoft-access-2003)
Also, was ich Tat, war eine Abfrage, die herausgezogen, die VERSCHIEDENE Monate von meinem Tisch. Dann in der design-Ansicht Hinzugefügt habe ich eine weitere Spalte mit
MonthNo: Month(CDate("1 " & [Month]))
sortiert und die Abfrage auf diese Spaltehoffe, dies hilft jemand, wenn nicht der OP.