Office: (Office 2010) Bug in Access Abfrage mit Format Funktion

Helfe beim Thema Bug in Access Abfrage mit Format Funktion in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo, ich glaube ich habe einen Bug entdeckt, bzw. sehe ich keinen logischen Grund für folgendes verhalten. In einer Abfrage wird ein Datum/Zeit... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von User, 22. November 2011.

  1. Bug in Access Abfrage mit Format Funktion


    Hallo,

    ich glaube ich habe einen Bug entdeckt, bzw. sehe ich keinen logischen Grund für folgendes verhalten.

    In einer Abfrage wird ein Datum/Zeit Feld eingefügt.

    Nun soll die Uhrzeit "abgeschnitten" werden. DAs geht im Prinzip ganz einfach mit dem Format Befehl. Also:

    ERGEBNIS: FORMAT([DATUMSFELD];"tt.mm.jjjj")

    Das Problem hierbei ist aber nun, dass das Ergebnis nicht als Datum sondern als Text sortiert wird !?!??! Was allein schon daran erkennbar ist, dass die Ausgabe linksbündig ist.

    Setzt man noch die Funktion ISDATE davor geht kommt ebenfalls eindeutig das Ergebnis dass die FORMAT Funktion ein Datumsfeld ausspuckt.

    Natürlich habe ich nun versucht nochmal mit CDATE (ZDATE) drüberzubügeln.
    So:
    ERGEBNIS: ZDATE(FORMAT([DATUMSFELD];"tt.mm.jjjj"))

    Dabei kommt aber ein Datentypfehler.

    Mein Fazit: Innerhalb der Abfrage spuckt FORMAT ein Datumsfeld aus, danach ist es ein Text Feld.

    Hat jemand schonmal ein ähnliches Problem gehabt??
    Woran könnte das liegen?

    viele Grüsse,
    M.

    :)
     
  2. Hallo!

    Die Format-Funktion gibt einen String zurück - somit kann nur noch nach Text sortiert werden, wenn du nach dem Ergebnis der Format-Funktion sortierst. ;-)

    Wenn du ein bestimmtes Datumsformat benötigst, könntest du das Format auch erst im Steuerelement einstellen und in der Abfrage nur das Datumsfeld verwenden.
    Oder du gestaltest die Abfrage folgendermaßen:
    Code:
    Ich selbst bevorzuge die Formaierung so spät wie möglich (also erst bei der Ausgabe im Formular bzw. Bericht) einzustellen, damit ich so lange wie möglich mit einem "echten Datum" rechnen kann.

    mfg
    Jos
     
    Josef P., 23. November 2011
    #2
  3. Hallo,

    das hab ich schon versucht. Das funktioniert nicht.
    Access 2010 Service Pack 1

    Die Format Funktion spuckt bei mir ein Datumfeld aus.

    Wenn ich dies überprüfe mit

    ERGEBNIS: IsDATE(FORMAT([DATUMSFELD];"tt.mm.jjjj")

    dann kommt als Ergebnis TRUE raus.

    Deshalb geht die CDATE Funktion auch nicht, welche einen STRING erwartet.

    DAs mysteriöse ist, dass die Ausgabe DANN aber wiederum offensichtlich ein TEXT ist, da die Sortierung falsch ist und die Spalte linksbündig ist.

    Wenn Du Zeit hast, mach mal bitte folgendes.
    Erstelle eine neue Datenbank.

    In Tabelle1 einfach mal in einem Datum/Zeit Feld folgendes eintragen:
    01.11.2011 12:00
    02.11.2011 12:00
    03.10.2011 12:00

    Dann eine Abfrage erstellen mit:

    FORMAT([DATUMSFELD];"tt.mm.jjjj")
    SORTIERUNG auf dieses FELD aufsteigend.


    Das Ergebnis ist:
    01.11.2011
    02.11.2011
    03.10.2011


    Richtig wäre:

    03.10.2011
    01.11.2011
    02.11.2011


    Da logischerweise der Oktober vor November kommt.

    Kannst DU den Fehler so nachvollziehen?

    viele Grüsse!
     
  4. Bug in Access Abfrage mit Format Funktion

    Hallo,
    dazu eignet sich auch hervorragend die Int-Funktion, sie schneidet die Nachkommastellen ab, die den Tagesbruchteil, also die Uhrzeit darstellen.
    Das Ergebnis ist außerdem noch korrekt sortierbar.
    Wie bereits gesagt, es handelt sich bei dem Ergebnis der Format-Funktion um Text und so wird dann logischerweise auch sortiert.

    PS:
    IsDate stellt lediglich fest, dass der Text einem gültigen Datum entspricht und würde auch bei IsDate("11.11.2011") dasselbe sagen.
     
    Anne Berg, 23. November 2011
    #4
  5. ZITAT: "Text und so wird dann logischerweise auch sortiert."

    Ok, das glaub ich auch. Aber warum bringt mir dann IsDate TRUE??
    Bzw. CDATE einen Datentypfehler?
     
  6. Warum auch immer.
    Die Lösung mit INT Funktioniert.

    ERGEBNIS: INT([DATUMSFELD])
    Sortierung daruf.

    Fertig.

    Danke für den Tipp!
     
  7. Weil IsDate auch Zeichenfolgen prüfen kann.

    Sind vielleicht Felder leer (NULL)?
    cdate(null) => Error


    Nein. Richtig ist die 1. Variante, weil Format IMMER einen String zurückgibt.

    BTW: falls du einen Datumsdatentyp in der Abfrage haben willst:
    Code:
    (Statt Format kannst du auch Int bzw. Fix verwenden.)

    mfg
    Josef
     
    Josef P., 23. November 2011
    #7
  8. Bug in Access Abfrage mit Format Funktion

    Hi,

    IsDate prüft nicht den Datentyp, sondern die Deutbarkeit als Datum. Ein Text ist kein Datum, kann aber als Datum gedeutet werden.

    Quizfrage: was ergibt ? Isdate(cdate(1))?
     
    Atrus2711, 23. November 2011
    #8
  9. Neben der Format-Anweisung, die wie erklärt einen String erzeugt, gibt es eine Format-Eigenschaft. Diese Eigenschaft ändert nicht den Wert (oder Datentyp), sondern nur die Anzeige.

    Diese Eigenschaft kann man in Tabellen, Abfragen und Formularen/Berichten anwenden, wobei für die Anzeige Tabellen und Abfragen uninteressant sind.
     
  10. Aus der Hilfe:
    Code:
    Man stolpert immer wieder darüber, daß VBA immer wieder mal eine automatische Typkonvertierung vornimmt, wenn VBA meint "dös passt scho"
    Beispiel:
    Code:
    Wahr *wink.gif*
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
Thema:

Bug in Access Abfrage mit Format Funktion

Die Seite wird geladen...
  1. Bug in Access Abfrage mit Format Funktion - Similar Threads - Bug Access Abfrage

  2. Neuer Update Bug

    in Microsoft Access Hilfe
    Neuer Update Bug: Hallo Miteinander, anbei ein neuer Update Bug der bei Decimal und DAO zu Problemenm führt. Es sind neben A365 auch 2016 und 2019 betroffen. (Andere VErsionen habe ich nciht) Am besten Updates...
  3. Bug nach Office-Update

    in Microsoft Access Hilfe
    Bug nach Office-Update: Nach der Installation des aktuellen Office Updates (16.0.12325.20280) kommt es sowohl in Access 2016, als auch in der 2019er Version zu MASSIVEN Problemen. Hat man verknüpfte SQL-Server-Tabellen...
  4. RIESEN Bug in Access 2010!

    in Microsoft Access Hilfe
    RIESEN Bug in Access 2010!: Ausgangspunkt folgende Tabellendefinition: Feld: ID / Type: Autowert (Inkrement) / Index: ohne Duplikate Feld: Bezeichung / Type: Text / Index: PrimaryKey Bei Datensatzeingabe läuft zu nächst...
  5. MS Teams Bug

    in Microsoft Teams Hilfe
    MS Teams Bug: Hallo liebe Community, seit gestern Abend treibt mich MS-Teams in den Wahnsinn. Ich habe im Wiki eines Teams einen Abschnitt bearbeitet. Im Zuge dessen wollte ich eine Zeile aus einer Tabelle...
  6. Teams (kostenlos) / E-Mail-Adresse abrufen fehlt plötzlich / Bug?!

    in Microsoft Teams Hilfe
    Teams (kostenlos) / E-Mail-Adresse abrufen fehlt plötzlich / Bug?!: Hallo zusammen, wir haben in unserer kostenlosen Teams-Version ca. 7 Teams angelegt. Wenn wir dort auf die drei Punkte (Weitere Optionen) klicken, haben wir u.a. auch den Punkt „E-Mail-Adresse...
  7. Bug in der Suche Office 365 Update Juni 2020, Built 12827.20336

    in Microsoft Outlook Hilfe
    Bug in der Suche Office 365 Update Juni 2020, Built 12827.20336: Bug in der Suche Office 365 Update Juni 2020, Built 12827.20336 Wir haben gestern das neue Outlook Update bekommen und haben bei mehreren Rechnern ein Problem bei der neuen Suchfunktion, die...
  8. Bug: Zellen immer wieder temporär gesperrt

    in Microsoft Excel Hilfe
    Bug: Zellen immer wieder temporär gesperrt: Hallo zusammen, vielleicht kann mir jemand helfen, da mich dieser Fehler langsam wahnsinnig macht. Egal welches Dokument ich nehme, es kommt immer wieder sporadisch vor (meist nach Zelle oder...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden