none
Sortierung Datum Absteigend - NULL aber oben

    Frage

  • Hallo

    Ich möchte in einem endlosformular eine sortierung nach datum absteigende sortierung haben - aber mit der besondereit das ich die ohne datum oben stehen haben möchte.

    jemand eine idee oder gar lösung

    Danke

    Michael

    Donnerstag, 10. März 2011 13:42

Antworten

  • Hallo Stefan,

    absteigend, wie es gewünscht ist, wäre DESCanding. Kann MS Access Datumswerte bis 9999? Weiß ich gerade nicht, andernfall muss man den Max-Wert anpassen.

    SELECT  *

    FROM    [deineTabelle]

    ORDER BY Nz([deinDatumsfeld], #12/31/9999#) DESC ;

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    • Als Antwort markiert MCDPone Donnerstag, 10. März 2011 15:24
    Donnerstag, 10. März 2011 14:36

Alle Antworten

  • hi Michael,

    das geht nur über eine zusätzliche berechnete Spalte, z.B.

    SELECT  *,
            Nz([deinDatumsfeld], #1/1/1899#) AS SortNullDatum
    FROM    [deineTabelle]
    ORDER BY Nz([deinDatumsfeld], #1/1/1899#) ASC ;

    oder

    SELECT  *,
            Iif([deinDatumsfeld] Is Null, 0, 1) AS SortNull
    FROM    [deineTabelle]
    ORDER BY Iif([deinDatumsfeld] Is Null, 0, 1) ASC, [deinDatumsfeld] ASC ;

    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Donnerstag, 10. März 2011 13:46
    Moderator
  • Hallo Stefan,

    absteigend, wie es gewünscht ist, wäre DESCanding. Kann MS Access Datumswerte bis 9999? Weiß ich gerade nicht, andernfall muss man den Max-Wert anpassen.

    SELECT  *

    FROM    [deineTabelle]

    ORDER BY Nz([deinDatumsfeld], #12/31/9999#) DESC ;

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    • Als Antwort markiert MCDPone Donnerstag, 10. März 2011 15:24
    Donnerstag, 10. März 2011 14:36
  • Hi Olaf,

    stimmt. Manchmal ist Lesen ein unterschätzte Fähigkeit ;)

    Gute Frage, VBA kanns:

    http://msdn.microsoft.com/en-us/library/gg278460.aspx

    Access habe ich keinen Link zur Hand, aber 9999 sollte zuviel sein.


    Microsoft MVP Office Access
    https://mvp.support.microsoft.com/profile/Stefan.Hoffmann
    Donnerstag, 10. März 2011 15:19
    Moderator
  • Hallo, Stefan!
     
    Stefan Hoffmann [MVP] wrote:
    > ...
    > Access habe ich keinen Link zur Hand, aber 9999 sollte zuviel sein.
     
    Naa, das passt schon. Die Grenzjahre in Access seit 1.0 (bzw. JET/ACE)
    sind 100 und 9999. Zu finden z.B. in der OH für die Felddatentypen.
     
    --
    Servus
    Karl
    *********
     
     
     
    Donnerstag, 10. März 2011 15:49
  •  

    kleiner "fehler" war da noch die Sortierung nach datum funktioniert nach nz nicht mehr

    somit habe ich dann das feld wieder in ein datumsfeld formatiert

    ORDER BY Format(nz([AngebotsDatum],#12/31/9999#),"yyyy/mm/dd") DESC

     

    danke euch

    Donnerstag, 10. März 2011 18:01
  • Hallo Olaf
     
    Aus der OH zum Date Datentypen:
     
    (c) Microsoft "1 January 100 to 31 December 9999"
     
    Gruss
    Henry
     

    Hallo Stefan,

    absteigend, wie es gewünscht ist, wäre DESCanding. Kann MS Access Datumswerte bis 9999? Wei�? ich gerade nicht, andernfall muss man den Max-Wert anpassen.

    SELECT  *

    FROM    [deineTabelle]

    ORDER BY Nz([deinDatumsfeld], #12/31/9999#) DESC ;

     


    Olaf Helper
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich
    Blog Xing
    Freitag, 11. März 2011 06:25
  • Hallo MCDPone
    ORDER BY Nz([deinDatumsfeld], #1/1/1899#) ASC ;

     

    kleiner "fehler" war da noch die Sortierung nach datum funktioniert nach nz nicht mehr

    somit habe ich dann das feld wieder in ein datumsfeld formatiert

    ORDER BY Format(nz([AngebotsDatum],#12/31/9999#),"yyyy/mm/dd") DESC

     

    danke euch

    Freitag, 11. März 2011 06:27
  • Wenn Du Nz() verwendest, dann passiert es dann und wann, dass da ein String draus gemacht wird. Das kannst Du umgehen, indem du sicherstellst, dass nach Datum oder Zahl sortiert wird, wobei Datum sicherer ist, weil u.U. Jet den erzeugten String nicht als Datum erkennt, das es dann in eine Zahl umgewandelt werden kann.
     
    ORDER BY CDate(Nz([deinDatumsfeld], #9999/12/31#)) DESC
     
    Gruss
    Henry

     

    kleiner "fehler" war da noch die Sortierung nach datum funktioniert nach nz nicht mehr

    somit habe ich dann das feld wieder in ein datumsfeld formatiert

    ORDER BY Format(nz([AngebotsDatum],#12/31/9999#),"yyyy/mm/dd") DESC

     

    danke euch

    Freitag, 11. März 2011 06:31