Office: (Office 2010) #Fehler

Helfe beim Thema #Fehler in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Forum, eine sicherlich banale Frage hätte ich hier, da ich im Netz nichts passendes finden konnte. In einer Abfrage habe ich eine Spalte die das... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Prof.Adv, 15. Juni 2020.

  1. #Fehler


    Hallo Forum,
    eine sicherlich banale Frage hätte ich hier, da ich im Netz nichts passendes finden konnte.
    In einer Abfrage habe ich eine Spalte die das Ergebnis einer Zeitdifferenz (Stunden) ausgibt.
    Das geschieht auch.
    Wenn allerdings in einem Feld "keine Zeitangabe" ist dann ist das
    Ergebnis #Fehler.
    Das kann man mit "nz" irgendwie lösen glaube ich. Allerdings weiß ich
    nicht wie.
    Wie müsste der Code aussehen und wo muss er eingesetzt werden?
    Die Felder heissen STARTZEIT und ENDEZEIT.
    Das Ergebnis-Feld heisst Tourzeit.
    Die Abfrageformel ist Tourzeit: ZDate([Startzeit]-[Endezeit])

    Kann wer bitte helfend eingreifen?

    Vielen netten Dank

    :)
     
    Prof.Adv, 15. Juni 2020
    #1
  2. Code:
     
    Weigi88, 17. Juni 2020
    #2
  3. Hallo,
    Deine Formel kann so nicht stimmen.
    Die Endezeit muss ja größer sein als die Startzeit also ist die Tourzeit Endezeit-Startzeit und nicht umgekehrt. Deine Formel kann auch keine Stunden ergeben.


    Welchen Datentyp haben denn Startzeit und Endezeit in der Tabelle ?
    Und was genau steht in den Feldern ?

    Außerdem nutzt hier Nz nix, denn Nz bestimmt einen Ersatzwert und der würde eine völlig falsche Tourzeit ergeben.

    Bitte die vorliegenden Zusammenhänge ausführlicher schildern.
     
    NeuerMann1978, 17. Juni 2020
    #3
  4. #Fehler

    \@Weigi88
    Wenn du mir noch sagen kannst wo genau der Code hin muss?
    Als Ereignis ? aber wo ?
    Bei Änderung? Nach Aktualisierung?
    -
    @NeuerMann1978
    Das sehe ich genauso wie du. Aber es funktioniert trotzdem wie es soll.
    Schau die Anhänge.
    Hab es auch umgekehrt versucht, geht auch. Alles korrekt.

    Mit Nz kann man angeben was als Result ausgegeben werden soll wenn
    der Feldinhalt "leer" ist, also NULL.
    Wenn die Funktion mir eine echte Null (0) einsetzen würde wäre das schon ok.
    Es soll nichts weiter berechnet werden, wenn keine Start oder Ende Zeit
    angegeben wird.
    Ich könnte manuell 0:00 einsetzen überall, aber das ist doch sicher nicht
    im Sinne EDV.
     
    Prof.Adv, 17. Juni 2020
    #4
  5. Hallo,

    im SQL-Fenster der Abfrage wäre das z.B. einfach mit DateDiff zu machen:
    Code:
    oder aber als Ausdruck für eine Textbox im Formular:
    Code:
    Ulrich
     
    knobbi38, 17. Juni 2020
    #5
  6. Damit es nicht in eine falsche Richtung läuft..
    Einen Code habe ich bis jetzt nicht benötigt.
    Die Formel (Post1) steht in der Abfrage und funktioniert gut.

    Möchte nur die Ausgabe "#Fehler" im Formular weg haben.

    Das geht mit dem Code ?
    Soweit ich das versteh gibt der Code den Unterschied zwischen
    Start und Endezeit aus.
    Das macht doch die Abfrage schon !!.

    Oder sehe ich das falsch?
     
    Prof.Adv, 17. Juni 2020
    #6
  7. Der Fehler kommt, weil die VBA-Funktion mit NULL nicht umgehen kann.

    Code:
    Das reicht als Berechnung. Das Formularfeld bekommt noch die Formateigenschaft Zeit 24 Std., und gut ist.

    Das glaube ich nicht. Eine Differenz 0 ist eine andere Aussage als ein leeres Feld, weil eine Differenz nicht ermittelbar und somit unbekannt ist.
     
    ebs17, 17. Juni 2020
    #7
  8. #Fehler

    Der Fehler "#Fehler" im Frm kommt ohne VBA.
    Wie gesagt, bisher habe ich kein Code eingesetzt-
    Ich möchte nur diese Ausgabe "#Fehler" im Frm unterdrücken
    oder in eine beliebige Zeichenkette wandeln.
    Sieht blöd aus wenn in vielen DS dann #Fehler im Feld steht.
    Die Felder sind Datumsfelder+Zeit.
    Weil eben in vielen DS keine Angabe einer Start/Ende Zeit ist
    wird von Access eben #Fehler rein geschrieben.
    Genau das soll bitte NICHT geschehen.
    Jetzt habe ich mich glaube ich einige Male wiederholt.
    Aber bisher hat mich entweder niemand verstanden oder ich bin irgendwie
    geblockt momentan.

    Einen Hinweis WO welcher CODE hilft? (siehe auch #4)
     
    Prof.Adv, 17. Juni 2020
    #8
  9. Das Formular verwendet eine Abfrage. Die Abfrage verwendet die VBA-Funktion CDate.

    Die Abfrage alleine (SQL) kann glänzend mit NULL umgehen.
     
    ebs17, 17. Juni 2020
    #9
  10. Mhh.
    alles richtig. Im SQL Fenster steht in der Tat CDate Endezeit-Startzeit AS Tourzeit.
    Die Klammern hab ich jetzt nur hier mal weggelassen, sind aber korrekt gesetzt.

    Warum steht trotzdem dann #Fehler im Feld?
     
    Prof.Adv, 17. Juni 2020
    #10
  11. Mit NULL (dem Undefinierten, Unbekannten) kann man nicht rechnen, also wäre die Differenz auch undefiniert.

    Teste:
    Code:
    => Fehler.

    Warum wird CDate verwendet?
    Der Datentyp Date wird intern als Zahl geführt:
    Code:
    Nichts anderes zeigt Deine Differenz ohne das CDate. Also erfolgt nur einfach eine Formatierung => anderes Etikett auf die Flasche.
     
  12. Hallo,

    ich habe dir doch die Funktion DatDiff(...) schon in #5 für den Ausdrucksgenerator gegeben, was brauchst du denn noch?

    Ulrich
     
    knobbi38, 17. Juni 2020
    #12
  13. #Fehler

    Hallo,
    #Fehler entsteht ja nur während der Eingabe in ein Feld eines neuen Datensatzes.
    Das kannst Du so verhindern:
    Code:
    Du musst auch richtig rechnen, den kleineren Wert vom größeren Wert abziehen (Endezeit-Startzeit), sonst erhältst Du negative Zahlen, die durch ZDate nicht als negativ angezeigt werden.
    Welches aber bei den Zeiten/Zeitsummen >=24h zu falschen Anzeigen/Ergebnissen führt.

    Ein weiteres Problem wird dann auftauchen, wenn die Endezeit nach Mitternacht (also am nächsten Tag) liegt.
    Dann kannst Du keiner der Formeln mehr so verwenden.
    Und wenn dann noch Zeiten summiert werden >=24h kann auch das Zeitformat nicht mehr verwendet werden.
    Du musst das Vorhaben mal komplett durchdenken.

    @Ulrich
    Was machst Du mit Datediff von 13:00 - 14:30 ?
    Datediff liefert ja nur ganze Stunden was hier unbrauchbar sein dürfte.
     
    NeuerMann1978, 17. Juni 2020
    #13
  14. \@NeuerMann1978:
    Hallo,
    die Differenz aus deinem Beispiel beträgt 1 volle Stunde, das waren die Anforderungen des OP! Von Bruchteilen war nicht die Rede. Aber dein Einwand ist schon berechtigt.

    Gruß Ulrich
     
    knobbi38, 17. Juni 2020
    #14
  15. Alles richtig, meine Herren
    Also: Datediff aus Post 5 fällt aus, weil zwar die #Fehler unterdrückt werden aber nur mit vollen Stunden gerechnet wird.
    Unbrauchbar. Von 09:00 bis 10:30 = 1,00 !! ??
    -
    Was die Stellung Endezeit - Startzeit betrifft, das hab ich schön so gesetzt wie vorgeschlagen.
    #Fehler wird trotzdem angezeigt wenn Start leer ist.
    -
    Was die Berechnung >24 std betrifft, entfällt, weil das nicht vorkommen wird.
    Übrigens möchte ich mit echten Zeitenangaben arbeiten, nicht etwa mit Dezimal/Industriezeit.
    Weitere Berechnungen sollen nicht stattfinden, hatte ich schon gesagt.
    -
    Das es NUR um volle Stunden geht ist eine Annahme. Hab ich nirgens gesagt.
    Beipiel: Startzeit =10:05 Endezeit = 12:10 Ergebnis 02:05

    Ich glaube das die Lösung bisher nicht genannt wurde. Schwierig, weil auch an anderen Stellen
    vergleichbar keine Lösungen zu lesen waren. Das Problem ist im Netz nicht unbekannt.
    Daher habe ich es hier versucht. Weil ich hier auf Hilfe hoffte.

    Erstmal danke bis hier.
     
    Prof.Adv, 17. Juni 2020
    #15
Thema:

#Fehler

Die Seite wird geladen...
  1. #Fehler - Similar Threads - #Fehler

  2. Wert Fehler

    in Microsoft Excel Hilfe
    Wert Fehler: Hallo zusammen, sicher gibt es schon diverse Beiträge, leider habe ich keinen gefunden, der mein Problem los. Ich habe mal einen Auszug meiner Tabelle angehängt. Leider kriege ich in einigen...
  3. Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...

    in Microsoft Outlook Hilfe
    Outlook Fehlermeldung 0x800CCC78, Nachricht kann nicht gesendet werden ...: Hallo, habe seit der Installation von MS Office 2021 Pro ein Problem mit Outlook, dass auch nach 3-maliger Neuinstallation und mit dem MFCMAPI-Tool die Fehlermeldung auch nicht verschwindet. Bin...
  4. Fehler beim Zugriff auf Pfad/Datei

    in Microsoft Excel Hilfe
    Fehler beim Zugriff auf Pfad/Datei: Moin, Ich habe eine Excel Datei erstellt, die ziemlich viele Makros hat, die Anforderung lässt sich leider nicht anders bewerkstelligen. Kurz vor Fertigstellung des Programms bekomme ich jetzt...
  5. WeekdayName erzeugt Fehler

    in Microsoft Access Hilfe
    WeekdayName erzeugt Fehler: Ich verwende eine uralte Access-Datenbank, die mich seit Windows2000 begleitet. Die Access2000 Version konnte über alle neueren Windows-Versionen installiert werden, die Datenbank hat jeweils...
  6. Zeilen in Excel automatisch alle paar Zeilen einfügen

    in Microsoft Excel Hilfe
    Zeilen in Excel automatisch alle paar Zeilen einfügen: Hallo, ich bin über die Googlesuche hier gelandet und dachte ich hätte auch die Lösung für mein Problem schon gefunden. Doch der Beitrag war von 2006 und schon beim Eingeben in MS Office...
  7. Konten-Konfiguration schlägt fehl

    in Microsoft Outlook Hilfe
    Konten-Konfiguration schlägt fehl: Hallo zusammen. ich hatte bisher Outlook nicht verwendet, sondern lediglich den Windows 11 Kalender. Heute wurde mir mitgeteilt, dass dieser nicht länger unterstützt und von Outlook abgelöst...
  8. Macro Fehler Subscript out of Range

    in Microsoft Excel Hilfe
    Macro Fehler Subscript out of Range: Hallo Zusammen, ich muesste aus ca. 500 pdf's mit teilweise 90 oder evtl. sogar mehr Seiten, ein paar Daten auslesen. Ich habe ein Makro, dass ich vor Jahren benutzt habe, mit dem ich erst die...
  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