Access: NZ Funktion funktioniert nicht mehr. Abfrage konnte wegen Gültigkeitsverletzungen nicht ausgeführt werden.

Anonym
2023-06-12T10:29:06+00:00

Hallo Alle,

scheinbar ist seit dem letzten Office 365 Update mit der Funktion NZ etwas nicht mehr in Ordnung.

Ich habe diverse Abfragen wo ich im Abfrage Entwurf Leerfelder und NULL mit NZ abgefangen habe. Seit Freitag ( Ich habe Donnerstag ein Office 365 Update gemacht ) funktioniert die NZ funktion nicht mehr.

Ausdr5: NZ([TYP_WERT])

hat vorher funktioniert.

Nun musste ich als bugfix den Code so anpassen.

Ausdr5: Wenn([TYP_WERT]="";" ";[TYP_WERT])

Ich bin kein Profi, man möge mir verzeihen wenn ich machen Fachbegriff nicht richtig interpretiere.

Hat noch jemand Probleme ? Ist das bekannt und gibt es einen Link zum Fehler ?

Microsoft 365 und Office | Access | Geschäftlich | Andere

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare
Antwort, die vom Frageautor angenommen wurde
Anonym
2023-06-23T09:38:10+00:00

Hallo!

Dann müsste Ausdr5: NZ([TYP_WERT])  wenn es ein NULL enthält ein "" zurück geben oder ?

Ja, wenn der Datentyp von [TYP_WERT] Text ist. Bei einer Zahl würde es die Zahl 0 zurückgeben. Steht auch so in der gelinkten Doku.

Und wenn es ein " " Enthält ja sowieso ?!

Nein. Damit hat Nz() nichts zu tun sondern nur mit nicht vorhandenen Werten (NULL). Wenn vorher schon "" oder " " im Feld ist, dann macht Nz() gar nichts und liefert den bestehenden Wert zurück, also "" bzw. " ".

Oder muss ich noch angeben was zurück gegeben werden muss? Ausdr5: NZ([TYP_WERT],"") dann habe ich es natürlich nicht richtig gemacht.

Nein. Es geht nicht um den Ausgabewert sondern um den für Nz() relevanten Eingabewert, wie o.a.

Da Nz() weiterhin funktioniert und dein (etwas anderes tuender) Workaround funktioniert, ist eine Datenänderung die wahrscheinlichste Ursache. Da ich weder deine Anwendung noch deine Daten kenne, ist das aber nur eine detektivische Vermutung. ;-)

Servus
Karl
****************
Access Bug Trackers
Access News
Access DevCon

War diese Antwort hilfreich?

Eine Person fand diese Antwort hilfreich.
0 Kommentare Keine Kommentare

2 zusätzliche Antworten

Sortieren nach: Neueste
  1. Anonym
    2023-06-23T09:10:40+00:00

    Hallo Karl,

    da ich den Code seit ca 4 Jahren unverändert benutze (und plötzlich meckert Access rum) war ein Update das naheliegenste. Leider habe ich nicht geschaut welche Version den Tag gerade auf meinem PC Installiert war.

    Die Daten die verarbeitet werden sind quasi auch immer die gleichen. Es kann natürlich mal vorkommen das ein Wert warum auch immer den Tag nicht ok war und daher die Fehlermeldung kam.

    Mit NULL und Leerzeichen komme ich immer durcheinander. Im täglichen gebrauch "sieht" man leider nicht ob es ein NULL Wert oder ein Leerzeichen ist.

    Wenn ich das hier richtig verstehe :

    Sie können die Nz- Funktion verwenden, um null, eine Leere Zeichenfolge (" ") oder einen anderen angegebenen Wert zurück zu geben, wenn ein Variant gleich Null

    ist. Sie können diese Funktion beispielsweise verwenden, um einen Nullwert in einen anderen Wert zu konvertieren und zu verhindern, dass er über einen Ausdruck verbreitet wird.

    https://support.microsoft.com/de-de/office/nz-funktion-8ef85549-cc9c-438b-860a-7fd9f4c69b6c

    Dann müsste Ausdr5: NZ([TYP_WERT])  wenn es ein NULL enthält ein "" zurück geben oder ?

    Und wenn es ein " " Enthält ja sowieso ?!

    Oder muss ich noch angeben was zurück gegeben werden muss? Ausdr5: NZ([TYP_WERT],"") dann habe ich es natürlich nicht richtig gemacht.

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2023-06-12T11:20:40+00:00

    Hallo!

    Wenn du ein Update verdächtigst, solltest du die genaue Office-Build-Nummer angeben, die du unter Datei - Konto - irgendwo rechts, z.B. bei "Info zu Access" findest.

    Ich habe Nz() gerade in der neuesten Version 2305 im "Aktuellen Kanal" mit Build 16501.20196 getestet und sehe keine Fehler damit. Dein Workaround:

    Wenn([TYP_WERT]="";" ";[TYP_WERT])

    bezieht sich mit dem "" nicht auf leere Felder (mit dem "Wert" NULL) für den Nz() zuständig ist, sondern auf leere Zeichenfolgen (Leerstrings). Das ist etwas anderes und dafür ist Nz() nicht gedacht und hat dafür nie funktioniert.

    Hat sich vielleicht etwas an den Daten in [TYP_WERT] geändert? Hat jemand (oder ein Code/Makro) "" eingegeben oder wurden Daten mit Leerstrings importiert?

    Servus
    Karl
    ****************
    Access Bug Trackers
    Access News
    Access DevCon

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare