none
Kassenschnitt von Mitternacht verschieben

    Frage

  • Hallo allerseits,

    ich habe eine Anwendung, in der ich Umsätze mit Datum und Uhrzeit in einer Access-Tabellen (Access 2010) speichere. Ich werte diese Tabelle tageweise aus, mit Schnitt um Mitternacht. Das funktioniert problemlos.

    Es gibt 2-tägige Veranstaltungen die über Mitternacht des 1. Tages andauern. D.h. der "logische" Tag geht von ca. 20.00 Uhr bis 4.00 Uhr des nächsten Tages.  Der Tag 2 beginnt dann "logisch" um 10.00 Uhr und dann dann auch wieder über Mitternacht hinaus gehen. Ich möchte Auswertungen (Kassenschnitte) nach "logischen" Tagen erreichen.

    Wie kann ich das in den Griff kiegen. Ich habe keine Idee! Ich weiß, dass Datum/Uhrzeit als Zahl gespeichert werden (Datum vor dem Komma, Uhrzeit nach dem Komma). Aber das hilft mir auch nicht weiter.

    Jetzt hoffe ich mal auf eine zündende Idee von Euch. Vielen Dank im Voraus.

    Grüße

    Wilhelm Hanselmann

    Montag, 23. Juli 2012 21:56

Antworten

  • Hallo,

    WHans wrote:

    Aber mit dem SELECt komme ich nicht klar. Problem ist wohl, dass in der
    Ausgangstabelle Datum und Uhrzeit in getrennten Feldern gespeichert
    sind. Wie kriege ich die wieder vereint? Datum & " " & Zeit sieht zwar
    optisch richtig aus, aber rechnen lässt isch damit wohl nicht.

    Mit & wird aus dem Datum ein String, damit kann man nicht rechnen. Aber du
    kannst einfach addieren:

    SELECT Format(Int(Datumsfeld + Zeitfeld - TimeSerial(4,0,0)), "TT-MM-JJJJ")
    AS Schnitt...

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 26. Juli 2012 13:59
    Moderator

Alle Antworten

  • Hallo,

    WHans wrote:

    Es gibt 2-tägige Veranstaltungen die über Mitternacht des 1. Tages
    andauern. D.h. der "logische" Tag geht von ca. 20.00 Uhr bis 4.00 Uhr
    des nächsten Tages.  Der Tag 2 beginnt dann "logisch" um 10.00 Uhr und
    dann dann auch wieder über Mitternacht hinaus gehen. Ich möchte
    Auswertungen (Kassenschnitte) nach "logischen" Tagen erreichen.

    Wenn du die Uhrzeit kennst, im aktuellen Beispiel 4:00 Uhr, kannst du diese
    zu den Datumsfeldern addieren bzw. subtrahieren und wieder nach Datum
    gruppieren. Es verhaelt sich danach wie der Schnitt um Mitternacht:

    SELECT Format(Int(DatumZeit - TimeSerial(4, 0, 0)), "TT-MM-JJJJ") AS
    Schnitt ...

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Dienstag, 24. Juli 2012 15:37
    Moderator
  • Hallo Peter,

    vielen Dank. Nach einigem Nachdenken kapiere ich auch den Code. Wenn ich mit ein paar Steuerelement in einem Formular probiere, krieg ich die "Umwandlung" hin.

    Aber mit dem SELECt komme ich nicht klar. Problem ist wohl, dass in der Ausgangstabelle Datum und Uhrzeit in getrennten Feldern gespeichert sind. Wie kriege ich die wieder vereint? Datum & " " & Zeit sieht zwar optisch richtig aus, aber rechnen lässt isch damit wohl nicht.

    Bitte nochmal um Deine Hilfe - Vielen Dank

    Grüße

    Wilhelm

    Donnerstag, 26. Juli 2012 13:29
  • Hallo,

    WHans wrote:

    Aber mit dem SELECt komme ich nicht klar. Problem ist wohl, dass in der
    Ausgangstabelle Datum und Uhrzeit in getrennten Feldern gespeichert
    sind. Wie kriege ich die wieder vereint? Datum & " " & Zeit sieht zwar
    optisch richtig aus, aber rechnen lässt isch damit wohl nicht.

    Mit & wird aus dem Datum ein String, damit kann man nicht rechnen. Aber du
    kannst einfach addieren:

    SELECT Format(Int(Datumsfeld + Zeitfeld - TimeSerial(4,0,0)), "TT-MM-JJJJ")
    AS Schnitt...

    Gruss - Peter


    Mitglied im http://www.dbdev.org
    FAQ: http://www.donkarl.com

    Donnerstag, 26. Juli 2012 13:59
    Moderator
  • Hallo Peter,

    juhuuuuuuuuuuuuuuu!! Es funktioniert. Soeben habe ich die erste Abrechnung erfolgreich umgestellt.
    Noch einmal ein RIESSIGES Dankeschön.

    Gruß - Wilhelm

    Samstag, 28. Juli 2012 08:34