Office: (Office 2013) Uhrzeit Berechnen

Helfe beim Thema Uhrzeit Berechnen in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo Daniel! Ich mußte leider weg. Deshalb verspätet eine letzte (?) Antwort. Die Datumsfelder enthalten Datum und Zeit. Code: Public Function... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Crashbreaker, 9. November 2015.

  1. Uhrzeit Berechnen


    Hallo Daniel!
    Ich mußte leider weg.
    Deshalb verspätet eine letzte (?) Antwort.
    Die Datumsfelder enthalten Datum und Zeit.
    Code:
    Wolfgang
     
  2. Code:
    Wie oben schon einmal bemerkt: Hier kommt die Prüfung auf NULL zu spät.
    Bereits bei der Übergabe von NULL an Beginn oder Ende knallt es, weil Date-Variablen kein NULL annehmen können.
     
  3. Hallo Eberhard!
    Stimmt!
    Also raus aus der Funktion.
    Getestet habe ich leider mit vernünftigen Standardwerten.
    Und versuchsweise habe ich die Felder nicht gelöscht.
    Ich war schon in Eile.

    Wolfgang
     
  4. Uhrzeit Berechnen

    Hallo Leute,

    sorry das ich nochmal hier mit dem Thema nerfe aber bekomme die Krise mit dem andauernden "Typen unverträglich" laufzeitfehler 13 etc.

    Was ist an dieser blöden Zeile falsch:
    Code:
    Die Parameter haben Wert aber das ganze bleibt als Ergebnis "Leer" ...
    Verstehe ich nicht

    MfG
    Daniel
     
    Crashbreaker, 12. November 2015
    #34
  5. Hallo,
    immer die komplette Funktion zeigen, mit solchen Schnipsel kann man doch nichts anfangen.
     
    gpswanderer, 12. November 2015
    #35
  6. Hallo Daniel!

    Ich verwendete zum Testen eine Tabelle, deren Von-Bis Zeiträume
    als Datum definiert sind und dazu ein Testformular, welches die Funktion
    periodOfTime mittels Schaltfläche startet.
    Ich behaupte mit gutem Gewissen, daß der Code funktioniert.

    Welcher Art ist test definiert bzw. die übrigen Parameter.
    Bitte gewöhne Dir an, uns nicht nur einzelne Zeilen zu posten,
    sondern den gesamten Code, der zu dem Problem führt.

    Wolfgang
     
  7. Ja tut mir leid.
    Der Code hat sich nicht viel geändert aber hier noch mal die gesamte Funktion:

    Code:
     
    Crashbreaker, 12. November 2015
    #37
  8. Uhrzeit Berechnen

    Ist bei Deinen Klick- und AfterUpdate-Aktionen sichergestellt, dass die anderen Elemente Werte haben (=> Nicht NULL)?

    Was soll denn bei periodOfTime herauskommen, wenn Beginn oder Ende mit NULL belegt ist? Und warum?
    NULL ist das Undefinierte, das Nichts, das Unbekannte. Mit NULL rechnen kann man daher nicht. Eine Leere ist als Folge logisch, wenn es nicht schon vorher Laufzeitfehler gibt.

    Man muss die Funktion und den Aufruf dazu schon so stricken, dass dem Ablauf entsprochen wird.
     
  9. Also die Klick-und AfterUpdate-Aktion ist ja da so zu sehen wie ich das hier rein kopiert habe.

    Die Funktion bekommt die Parameter "Beginn" und "Ende" mit Werten zugewiesen. Die sind nicht leer. Nur die Variable "Test" bleibt dennoch leer.

    Also der gesamte Konstruckt "(Ende - Beginn + (Abs(Ende < Beginn) * 24))" als Ergebnis ist gleich "Leer". Verstehe ich auch nicht warum.

    Ich habe bei dem AfterUpdate-Aktion deshalb nicht nach NULL geprüft, da die Funktion "periodOfTime" bereits nach "NULL" überprüft. Und wenn die Felder NULL sind, soll die Funktion "Exit" sein.
    So wie es eigentlich dort auch steht.

    Nur die ... Typisierung f... einem echt ab ...
     
    Crashbreaker, 12. November 2015
    #39
  10. txtBeginn und txtEnde enthalten dann wirklich Zeitwerte (Datentyp Date) - oder sehen die nur so aus?
    Variant kann ja (neben NULL) alles übernehmen.

    Bei ungebundenen Feldern könnte man die Sicherstellung auf Date derart vornehmen, dass die Felder das Standardformat "Zeit, 24Std" erhalten.
     
  11. Hallo Daniel!

    Das Problem scheint der Inhalt der Felder
    Me.txtUhrzeitBeginn.Value und Me.txtUhrzeitEnde.Value zu sein.
    (Bitte schreibe besser Me! statt Me. Auch wenn die die Felder dann nicht angezeigt werden.
    Du kannst auch zuerst Me. verwenden um das nachher in Me! zu ändern)

    Was enthalten denn die Felder wirklich?
    Komplette Datumsangaben oder nur Rudimente von Datumsfeldern.
    Das kannst Du mit
    Debug.Print Beginn
    Debug.Print Ende
    Debug.Print chbDezimal
    in der Funktion periodOfTime feststellen.

    Sind
    .Fields("Beginn") und .Fields("Ende")
    Datumsfelder?
    Wenn nicht, warum nicht?
    Da kann ich nur empfehlen, die Definitionen in der Tabelle zu überarbeiten!

    Das UF Me!sfrm zeigt immer bloß einen Datensatz an?
    Ist das so richtig?
    (aus dem Code btnEdit_Click() geschlossen )
    Warum verwendest Du ungebundene Formulare?
    Das ginge mit gebundenen Forms und mit über den gemeinsamen Schlüssel verknüpftes
    HF und UF einfacher.

    Die Funktion periodOfTime liefert überhaupt nur in einem einzigen Fall ein brauchbares
    Ergebnis, nämlich dann, wenn alle Parameter gültige Werte enthalten.
    Das solltest Du bereits vorher sicherstellen.

    Wenn es Dir nützt, dann sende ich Dir nach Aufforderung meine Test-DB,
    damit Du siehst, daß der Code im Form sehr wohl funktioniert.

    Noch was: Ist in allen Modulen Option Explicit angeführt?
    Damit lassen sich eigene Fehler rascher beheben.

    Irgendwie habe ich den Eindruck, daß die DB nicht
    sorgfältig geplant wurde.

    Und jetzt bitte jede meiner Fragen beantworten.

    Wolfgang

    PS: Hast Du Eberhards Anraten berücksichtigt?
    Datumsfelder können nie Null enthalten!
    Wenn das in Deiner DB aber doch so ist, liegen
    Entwurfsfehler vor, denn dann sind die Datumsfelder
    nicht als solche definiert.
     
  12. Hallo,
    Du weist beim leeren Der Felder den Feldern für Begin und Ende einen Leerstring zu und das ist nicht Null. Daher geht Deine Prüfung auf Null in der Funktion ins Leere. Leere die Felder mit = Null so wie bei txtID = Null.
    Die Formatfunktion ist immer noch drin. Und Rückgabewert ist als String deklariert. Das sind doch Zahlen. Und 2 Werte optional ist genau so überflüssig. Du musst ja nur den dezimalen Zeitwert mit 24 multiplizieren um die dezimalen Stunden zu bekommen und dazu braucht es kein Funktion.

    Ich halte sogar die komplette Funktion für verzichtbar, beide Werte lassen sich als berechnete Felder in einer Abfrage ganz bequem rechnen. Wie ich es in #4 bereits beschrieben habe.

    Und da wir gerade bei überflüssig sind.

    Warum verwendest Du nicht einfach gebundene Formulare, dann braucht es keinen Buchstaben Code, weder zum Leeren der Felder, zum Füllen der Felder noch zum Speichern. Das kann Access serienmäßig von ganz alleine und das noch besser als Du.
     
    gpswanderer, 12. November 2015
    #42
  13. Uhrzeit Berechnen

    Hallo Leute,

    sorry das ich sehr spät Antwort. Ich war gestern etwas im Stress und unterwegs. Daher konnte ich mich nicht um Access kümmern.

    Ich werde die letzten 3 Beiträge zusammenfassend beantworten. Damit ich nicht jeden einzelnd hier zitieren brauch und den Thread hier nicht unnötig in die Länge ziehen.

    Ja die Felder "txtBeginn" und "txtEnde" sind mit Datentyp auf Date gestellt.
    Der Standardformat ist auf "Zeit, 24Std" eingestellt.

    Debug.Print etc. werde ich gleich mal ausprobieren und euch den Resultat nennen.
    Die Definitionen für die Tabellen ist soweit in der MySQL einwandfrei.

    Okay könnte ich machen, müsste ich dann nacher mal ausprobieren. Doch was wären die Unterschiede, dass dies eventuell den Fehler verursacht?

    Ja richtig. Me!sfrm liefert nur einen Datensatz. Wüsste auch jetzt nicht wie ich mehrere Datensätze mit einem Klick auslesen könnte. Hättest du dafür ein / mehrere Beispiel(e)? Weil ich bräuchte diese Möglichkeit später für das Löschen von mehreren Datensätze.

    Den Satz mit "aus dem Code btnEdit_Click() geschlossen" konnte ich nicht verstehen. Wie meinst du es denn genau?

    Warum ich ungebundene Formulare verwende hat mehrere Hintergründe. Klar ginge es mit gebundenen Forms einfacher aber das Projekt beinhaltet noch andere und noch viel mehr Hintergründe und würde jetzt den Rahmen sprengen, wenn ich dies hier Niderspreibe. Dies ist nur ein kleiner Ausschnitt vom gesammten Projekt ...

    Nun ja, wenn jemand seinen Projekt einfach nur mit per Mausklick zusammen klickert und dies dennoch als Projekt bezeichnet vertut sich in meinem Augen. Denn für kleinere Sachen wäre das provisorisch vielleicht noch okay aber das was zusammen geklickerte ist in meinem Augen immer Schrott. Denn da würden sämtliche wichtige Aspekte (was ja allein für die DB wichtig wären) nicht berücksichtigt. Ich sag mal allein nur was die Transaktion, User-Berechtigungen etc. betreffen und noch viel mehr ... Naja das ist auch hier nicht das Thema.

    Klar gerne. Denn auf Beispiele bin ich sehr interessiert.

    Ja ist es. Habe in allen Modulen im Kopfbereich "Option Explicit" drin stehen.

    Ja da hast du recht. Sollte dann lieber nicht nur auf NULL, sondern eher auf "leer" prüfen. Z.B. IsEmpty(..), richtig?
    Probiere ich gleich mal aus und vielleicht löst sich das Problem ja.
    Ja ich berücksichtige hier alles, soweit es geht. Wäre ja nicht sonst an einer Lösung interssiert.

    Stimmt, daran habe ich gar nicht gedacht und könntest recht habe. Probiere ich gleich ebenfalls aus und gebe euch Bescheid ob es daran gelegen hat.

    Ja richtig, die soll auch da bleiben. Denn wenn ich den Formatfunktion dort rausnehmen würde, bekomme ich an dieser Stelle eine komische Dezimalwert. Dabei möchte ich aber ein Uhrzeitformatwert haben. In der IF-Anweisung ist es ja unterschieden. Je nach dem möchte ich entweder Dezimalwert oder Uhrzeitwert haben und bei Dezimal habe es ja bereits mit *24 genommen.

    Die Berechnung brauche ich deshalb in einer Funktion, weil ich die Berechnung im gesamten Projekt - auch in anderen Formularen (später) - mehrfach verwende. Genau dafür sind ja auch Funktionen gedacht um den Code nicht mehrfach im gesamten Projekt unnötig wiederholt. Daher ist mein Vorgehensweise schon soweit richtig.

    Ich sage dann mal bis gleich. Ich probiere eure Tipps aus und hoffe das ich damit dann weiter komme.

    MfG
    Daniel
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Crashbreaker, 14. November 2015
    #43
  14. Hallo,
    Auch der Aufruf der Funktion muss ja in einem Feld stehen und ebenfalls mehrfach erfolgen, da kannst Du auch gleich die Formel reinschreiben. Die Funktion bringt hier doch keinen Vorteil.

    Mit hh:nn formatiert hast Du das Zeitformat.
    Code:
     
    gpswanderer, 14. November 2015
    #44
  15.  
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Crashbreaker, 14. November 2015
    #45
Thema:

Uhrzeit Berechnen

Die Seite wird geladen...
  1. Uhrzeit Berechnen - Similar Threads - Uhrzeit Berechnen

  2. Uhrzeiten berechnen

    in Microsoft Excel Hilfe
    Uhrzeiten berechnen: Hallo zusammen, ich hatte früher eine Tabelle wo ich mit Uhrzeiten gerechnet habe, Diese finde ich leider nicht mehr. Mein problem besteht darin dass ich Zeiten aus einem Erfassungs Programm in...
  3. Zeit Berechnung mit mehreren kriterien (Datum/Uhrzeit)

    in Microsoft Excel Hilfe
    Zeit Berechnung mit mehreren kriterien (Datum/Uhrzeit): Hallo zusammen, leider weiss ich nicht wie ich die Start- und Endzeit von "Datum und Uhrzeit" mit mehreren kriterienin über Summewenns einbauen kann. Hab hier im Forum nach einer Lösung geschaut...
  4. Uhrzeit subtrahieren bei mehr als 24h

    in Microsoft Excel Hilfe
    Uhrzeit subtrahieren bei mehr als 24h: Hallo, ich habe folgendes Problem: Zelle A1 = 11.10.2023 07:54 Zelle A2 = 12.10.2023 07:59 Wie berechne ich die Differenz (A3) ? Wie viele Minuten sind das? Habe es auch schon über die...
  5. Stunden aus Datum/Uhrzeit berechnen

    in Microsoft Excel Hilfe
    Stunden aus Datum/Uhrzeit berechnen: Hallo Liebe Alle ich versuche folgendes: Ich habe die Zeiten 03.10.2023 01:32 und 06.10.2023 15:48, nun will ich wissen Wieviele Stunden/Minuten vergangen sind, allerdings nur jene zwischen 08:30...
  6. Uhrzeiten aus Startzeit und Minuten berechnen und addieren

    in Microsoft Excel Hilfe
    Uhrzeiten aus Startzeit und Minuten berechnen und addieren: Hallo zusammen. Ich versuche einen Ablaufplan zu automatisieren. Das Endergebnis soll im Prinzip folgendermaßen aussehen: [ATTACH] Die Anfangszeit soll aus einer Zelle gezogen werden. Die Dauer...
  7. Mittelwert von Uhrzeiten berechnen

    in Microsoft Excel Hilfe
    Mittelwert von Uhrzeiten berechnen: Hallo Ihr Lieben, ich habe schon wieder ein Problem,und zwar habe ich in einer Spalte verschiedene Uhrzeiten untereinander stehen, so z.B.: 1:15 23:55 0:10 Wenn ich jetzt den Mittelwert dieser 3...
  8. aktuelle Uhrzeit einmalig eintragen das nicht erneuert wird beim erneuten berechnen

    in Microsoft Excel Hilfe
    aktuelle Uhrzeit einmalig eintragen das nicht erneuert wird beim erneuten berechnen: Hallo hat jemand eine Idee wie ich die Formel ändern muss? Wenn in Zelle BF4 ein Wert eingetragen wird soll in Zelle BG4 die aktuelle Uhrzeit eingetragen werden die sich nicht mehr ändern darf....
  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