Office: (Office 2007) Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem

Helfe beim Thema Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich hoffe, ihr habt Weihnachten gut gefeiert und überstanden.*Smilie Folgendes Problem: Aktuell kann ich Daten aus einem Archiv über... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von Chris97724, 25. Dezember 2017.

  1. Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem


    Hallo zusammen,

    ich hoffe, ihr habt Weihnachten gut gefeiert und überstanden.*Smilie

    Folgendes Problem:

    Aktuell kann ich Daten aus einem Archiv über die Spalte "Datum" mithilfe einer Parameterabfrage zu einer weiteren Tabelle hinzufügen (Dateneingrenzung).

    Es gibt noch die Spalte "Uhrzeit" die quasi die Buchungszeiten zum jeweiligen Datum angibt. Darüber kann man nun feststellen, in welcher Schicht gebucht wurde (Früh-, Spät- oder Nachtschicht).

    Der Code aktuell lautet folgendermaßen:

    Code:
    Das funktioniert soweit. Wie könnte ich da jetzt noch die Uhrzeit mit ins Spiel bringen?

    z. B. wenn der Beleg vom 2.12.2017 um 04:00:00 Uhr früh ist, dann soll das noch zum 1.12.2017 gehören, da bis 05:59:59 Uhr die Nachtschicht des Vortages läuft.
    Ist das relativ einfach zu realisieren bzw. hat jemand schon spontan eine konkrete Idee? Meine SQL-Kenntnisse sind relative begrenzt. Würde das dennoch gerne irgendwie einbauen.

    EDIT:
    Mir ist etwas eingefallen, und zwar wenn ich im Datenarchiv eine berechnete Hilfsspalte erstelle. Hierzu habe ich eine Formel erstellt, welcher nur leider gar nicht funktioniert. Irgendwas stimmt mit der Syntax nicht. Die Spalte berechnet, wenn die Uhrzeit >= 0 Uhr und kleiner als 6 Uhr ist, dann Datum minus 1, ansonsten Datum (alles zwischen 0 Uhr und 05:59:59 Uhr gehört also noch zum Vortag. Die berechnete Spalte soll also ein Datum ausgeben.

    Code:
     
    Chris97724, 25. Dezember 2017
    #1
  2. Datum und Uhrzeit zu trennen ist eher suboptimal. Wenn Du gleichlange 8-Std.-Schichten hast (6:00, 14:00, 22:00) kannst Du jeweils 6 Stunden vom Zeitpunkt subtrahieren. den neuen Zeitanteil mit 3 multiplizieren, davon den Ganzzahlwert ermitteln und 1 hinzuaddieren. Hier ein Beispiel aus dem VBA-Direktbereich: Code:
     
  3. Guten Morgen Nouba,

    vielen Dank für Deine Rückmeldung.

    Ich glaube das ist zu kompliziert für mich. Im Endeffekt reicht es mir wenn die berechnete Spalte einfach wieder ein Datum zurückgibt. Uhrzeiten zwischen 00:00:00 und 06:00:00 Datum des Vortags, ansonsten aktuelles Datum belassen. Die Aufteilung in einzelne Schichten ist gar nicht notwendig.

    Hintergrund: Über meine Parameterabfrage wenn ich über das neue Datum eingrenze, habe ich auch die Zeiträume zwischen 0 und 6 Uhr mit drin, auch wenn es eigentlich ein anderes Datum ist.

    Aktuell stimmt meine Syntax nur irgendwie nicht. Oder geht das so gar nicht mit meiner WENN-Formel aus dem Eingangspost?
     
    Chris97724, 26. Dezember 2017
    #3
  4. Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem

    Hallo Christian,
    Code:
    Code:
    Fällt dir was auf?
    Du musst die Uhrzeit SQL-konform übergeben.
    gruss ekkehard
     
    Beaker s.a., 27. Dezember 2017
    #4
  5. Hallo ekkehard,

    vielen Dank für Deine Rückmeldung.

    Ich berechne ja in der Tabelle eine neue Spalte über den Ausdrucks-Generator. Ich dachte dass das wohl die einfachste Lösung für mein Problem ist. Wenn ich die Uhrzeit so wie Du meintest mit der Raute am Anfang und am Ende der Uhrzeit anpasse, kommt immernoch eine Fehlermeldung.
     
    Chris97724, 27. Dezember 2017
    #5
  6. Code:
     
  7. Code:
    Wann lerne ich es endlich so zu denken, - einfach geil.
     
    Beaker s.a., 28. Dezember 2017
    #7
  8. Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem

    \@ekkehard: Das "Denken" ist recht oft kein eigentlicher kreativer Akt, sondern nur ein "Abschreiben" von etwas Vorhandenem, das man gesehen und nicht gleich wieder vergessen hat. Das Letztere ist wohl die eigentliche Leistung, die aber für jeden möglich sein sollte.
    Eine Lösung beinhaltet in der Regel ein Prinzip. Wenn man das erkennt und in der Lage ist, nicht nur eine Lösung so wie sie ist zu kopieren, sondern das Lösungsprinzip variabel anzuwenden (=> sinngemäß abzuschreiben), dann kommt man ein großes Stück weiter.

    Alter ermitteln ist als Lösung sicher sehr vielen vertraut. Hieraus könnte man auch das Rechnen mit Logik ableiten, unabhängig von Geburtstag und Alter.
     
  9. Hallo Eberhard,
    Möglich schon, klappt aber nicht immer. Die FAQ 2.7 kannte ich wohl,
    habe ich aber nie gebraucht und deshalb nie abgeschrieben (und
    verinnerlicht).
    Sinngemässes Abschreiben klappt aber immer besser. *Smilie
    gruss ekehard
     
    Beaker s.a., 28. Dezember 2017
    #9
  10. Hallo Eberhard,

    War leider über Silvester einige Tage weg, daher erst jetzt die späte Rückmeldung.

    Vielen Dank für Deinen Code. Leider bringt er nicht das Ergebnis welches ich benötige. Wenn ich z. B. Datum 04.12.2017 bis 04.12.2017 eingebe, dürfte er mir nur Datensätze auswählen die am 04.12.2017 um 06:00:00 Uhr losgehen (da alles davor ja noch zum Vortag gehört) und spätestens um < 06:00:00 Uhr des Folgetages aufhören. also quasi 24 Stunden von 06:00 Uhr bis 06:00 Uhr.

    Habe mal Beispiele ausgewählt, welche er mir aktuell noch selektiert aber nicht mehr selektieren dürfte (wenn ich z. b. 04.12.2017 als Parameter eingebe)

    04.12.2017 01:09:36 Uhr
    => Das Datum dürfte er nicht nehmen da es noch zum Vortag gehört (da vor 06:00:00 Uhr. Auswahl nur, wenn ich 03.12.2017 als Parameter eingebe).

    Zudem hat er im Abfrageergebnis aus dem Datum einfach den 03.12.2017 gemacht und somit den Datensatz verfälscht.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Chris97724, 3. Januar 2018
    #10
  11. ... sollte man derart erzielen, indem man den Filter geeignet setzt.. Im Beispiel ging es primär darum zu zeigen, wie man das Datum zur Schicht berechnen könnte.

    Im weiteren Verlauf sollte man sich vor Augen halten, wie eine SQL-Anweisung abgearbeitet wird: Nach dem Checken des FROM-Teils (wo kommen Daten her) wird der WHERE-Teil ausgeführt. Die Zeitraumbegrenzung erfolgt in der angezeigten Abfrage also auf das Datum so wie es in der Tabelle steht. Diesen Effekt erlebst Du.
    Erst nach Filterung wird der SELECT-Teil angezeigt und dabei auch die Berechnung nach dem Schichtdatum ausgeführt.

    Zum Vergegenwärtigen:
    Code:
    Wenn folglich die Anforderung so ist, dass man nach dem Schichtdatum filtern will, muss man erst das Schichtdatum berechnen und kann danach nach diesem filtern. Die Abfrage sieht dann ein wenig anders aus.

    Bei einem berechneten Feld steigt eine Indexnutzung aus, weswegen bei größeren Datenmengen da eher Auswirkungen auf die Abfrageperformance zu erwarten sind. Deswegen zeige ich eine solche Variante auch nicht als allererste, sondern so etwas sollte sinnvoll (spätest möglich) in den sonstigen Kontext eingebettet werden.
     
  12. Hi zusammen,

    ich habe mich gerade nochmal damit beschäftigt und bin auf eine neue Idee gestoßen, die aber wohl syntaktisch noch nicht ganz korrekt ist. Könnte das so funktionieren?

    Code:
     
    Chris97724, 6. Januar 2018
    #12
  13. Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem

    Eigentlich hätte ich ein anderes (ein) Feedback erwartet.

    Der einfachste Weg wäre, es auszuprobieren, und für den ist es am einfachsten, der die Tabellen mit den Daten bereits hat.

    (Syntaktisch) Funktionieren und eine sinnvolle zielgerichtete Maßnahme können dann zweierlei sein. Bei einem Kopieren von Daten aus einem Archiv in Rohdaten mit unbekanntem Ziel ist eine Beurteilungsmöglichkeit nicht gegeben. Mit gleichem Ergebnis könnte man auch die Würfel befragen.
     
  14. Sorry, normalerweise mache ich das doch immer :-) Das habe ich gerade in der Eile leider total vergessen. Ich wollte nur schnell meinen Geistesblitz hier kundtun *grins

    Ich danke Dir natürlich für Deine Ausführungen. Ich habe auch versucht das umzusetzen. War leider nicht von Erfolg gekrönt und es kam leider nicht das raus was ich mir erhofft hatte. Wahrscheinlich komme ich mit der Denkweise noch nicht so ganz klar und kann daher wenig mit anfange.

    Mir ist jetzt nur das noch eingefallen wie ich zur erhofften Lösung kommen könnte. Daher war mir jetzt nur wichtig, ob das syntaktisch totaler Mist ist oder ob das wirklich funktionieren könnte.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    Chris97724, 6. Januar 2018
    #14
  15. Wenn Du das nicht umsetzen kannst, dann frage ich mich, was Du umsetzen kannst.

    Mein Fehler ist sicherlich, das ich zuviel geschrieben habe und zuviele Worte und weitere ergänzende Hinweise den einen oder anderen Geist an der Stelle verwirren.

    Tastatur und Maus sind mit Hochspannung belegt oder von Pockenbakterien überzogen?

    Was auffallen sollte:
    "06:00:00" #6:00:00#
     
Thema:

Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem

Die Seite wird geladen...
  1. Parameterabfrage aus 2 Spalten (Datum, Uhrzeit) zur Selektion nach Schichtsystem - Similar Threads - Parameterabfrage Spalten Datum

  2. Anpassen einer Parameterabfrage

    in Microsoft Excel Tutorials
    Anpassen einer Parameterabfrage: Anpassen einer Parameterabfrage Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Excel 2010 Excel 2007 Mehr... Weniger...
  3. Erstellen einer Parameterabfrage

    in Microsoft Excel Tutorials
    Erstellen einer Parameterabfrage: Erstellen einer Parameterabfrage Excel für Microsoft 365 Excel 2019 Excel 2016 Excel 2013 Mehr... Weniger...
  4. Alter per Parameterabfrage ermitteln

    in Microsoft Access Hilfe
    Alter per Parameterabfrage ermitteln: Servus, ich bin neu im Forum und habe folgendes Problem, zu dem ich hier noch keine Lösung gefunden habe: Ich möchte gern das Alter ab einem frei einzugebenen Stichtags-Datum (als Parameter)...
  5. Video: Verwenden von logischen Operatoren und Platzhaltern in Parameterabfragen

    in Microsoft Access Tutorials
    Video: Verwenden von logischen Operatoren und Platzhaltern in Parameterabfragen: Video: Verwenden von logischen Operatoren und Platzhaltern in Parameterabfragen Access 2013 Mehr... Weniger...
  6. Video: Parameterabfragen in Access-Apps, Teil 1: Erstellen und Testen der Abfrage

    in Microsoft Access Tutorials
    Video: Parameterabfragen in Access-Apps, Teil 1: Erstellen und Testen der Abfrage: Video: Parameterabfragen in Access-Apps, Teil 1: Erstellen und Testen der Abfrage Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Mehr......
  7. Video: Verwenden von Parameterabfragen zum Filtern von Ergebnissen

    in Microsoft Access Tutorials
    Video: Verwenden von Parameterabfragen zum Filtern von Ergebnissen: Video: Verwenden von Parameterabfragen zum Filtern von Ergebnissen Access 2013 Mehr... Weniger...
  8. Verwenden von Parameterabfragen zum Filtern von Abfrageergebnissen

    in Microsoft Access Tutorials
    Verwenden von Parameterabfragen zum Filtern von Abfrageergebnissen: Verwenden von Parameterabfragen zum Filtern von Abfrageergebnissen Access 2013 Mehr... Weniger Übersicht...
  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