collapse

* Benutzer Info

 
 
Willkommen Gast. Bitte einloggen oder registrieren. Haben Sie Ihre Aktivierungs E-Mail übersehen?

* Wer ist Online

  • Punkt Gäste: 82
  • Punkt Versteckte: 0
  • Punkt Mitglieder: 0

Es sind keine Mitglieder online.

* Forenstatistik

  • stats Mitglieder insgesamt: 14809
  • stats Beiträge insgesamt: 76028
  • stats Themen insgesamt: 10230
  • stats Kategorien insgesamt: 5
  • stats Boards insgesamt: 17
  • stats Am meisten online: 933

Autor Thema: Bei Systemdatum MesageBox  (Gelesen 490 mal)

Offline J.D

  • Access-Profi
  • **
  • Beiträge: 129
  • Blutiger Anfänger!
Bei Systemdatum MesageBox
« am: März 06, 2020, 02:46:30 »
Hi forum,

Ich habe in einem Feld als Standard wert Datum(),
also ist auch klar das wenn sich das System Datum ändert sich das Datum ändert...
Ist es möglich einen Hinweis anzuzeigen wenn sich das Datum geändert hat?
Die MessageBox sollte ja kein Problem sein aber wie kann ich das Datum im Feld gegen das System Datum prüfen?
Bei ja soll das Datum ändern, bei nein nicht...
Bin bestimmt einfach nur zublöde,oder zumüde!?

Grüsse J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 24505
Re: Bei Systemdatum MesageBox
« Antwort #1 am: März 06, 2020, 08:50:21 »
Hallo,


?? ??

Du merkst doch auch ohne Access, dass sich ein Datum ändert.. ??

Der Standard-Wert ist doch nur ein Vorgabewert zur komfortablen Eingabe bei einem neuen Datensatz.  Der Standard-Wert ist immer auf dem aktuellen Stand und wird nirgends als solcher gespeichert.  Demzufolge ist er nicht auf Änderung prüfbar.

Offline J.D

  • Access-Profi
  • **
  • Beiträge: 129
  • Blutiger Anfänger!
Re: Bei Systemdatum MesageBox
« Antwort #2 am: März 06, 2020, 15:08:54 »
Ja, oder ist möglich vor dem Speichern das Datum des letzten eintrages zu prüfen?

Grüsse J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2
 

Offline DF6GL

  • Global Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 24505
Re: Bei Systemdatum MesageBox
« Antwort #3 am: März 06, 2020, 15:23:43 »
Hallo,

ja, klar ist es möglich, das zuletzt eingegebene Datum mit dem aktuellen Datum zu vergleichen.

Aber mir erschließt sich immer noch nicht, was das für einen Zweck haben soll..
Vielleicht willst Du an einem Tag nur einen DS eingeben wollen ??


Zitat
If DMax("Datumsfeld", "tblTabellemitDatum") = Date() Then
Msgbox "Es gibt schon einen Datensatz mit dem heutigen Datum"
End if

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 8524
Re: Bei Systemdatum MesageBox
« Antwort #4 am: März 06, 2020, 15:23:48 »
Hallo,
das Datum des letzten Eintrags ist das höchste Datum und kann mit Max() bestimmt werden.

Wer ändert denn bei Dir das Systemdatum ?
Gruß
Klaus
 

Offline ebs17

  • Access Guru
  • ****
  • Beiträge: 1321
Re: Bei Systemdatum MesageBox
« Antwort #5 am: März 06, 2020, 16:04:17 »
Zitat
ist möglich vor dem Speichern das Datum des letzten eintrages zu prüfen?
Klar, wenn man etwas in den Händen hält, kann man vergleichen.
Wenn Du Befürchtungen hast, dass jemand das Systemdatum vor und zurück stellt, kannst Du auch dieses in eine Extra-Logtabelle speichern in Verbindung mit typischen Aktionen.
Mit freundlichem Glück Auf!

Eberhard
 
Folgende Mitglieder bedankten sich: J.D

Offline J.D

  • Access-Profi
  • **
  • Beiträge: 129
  • Blutiger Anfänger!
Re: Bei Systemdatum MesageBox
« Antwort #6 am: März 06, 2020, 16:13:18 »
Ich erkläre das mal so,

Das Formular hat das Datum()
Nun ist es so das die Schicht  von 22:00 bis 06:00 also passiert folglich das ein neuer Eintrag um 01:00 Uhr nachts bereits als nächsten Tag gewertet wird, dieses gehört jedoch zum Vortag...

Daher sollte der letzte eintrag gegen geprüft werden, da ist mir das Systemdatum eingefallen.
Eine andere Lösung dazu wüsste ich jetzt nicht :?

Grüsse J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 8524
Re: Bei Systemdatum MesageBox
« Antwort #7 am: März 06, 2020, 16:54:28 »
Hallo,
dazu brauchst du kein Systemdatum.
Zeiten zwischen 00:00 Uhr und <06:00 gehören immer zum Vortag.
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: J.D

Offline J.D

  • Access-Profi
  • **
  • Beiträge: 129
  • Blutiger Anfänger!
Re: Bei Systemdatum MesageBox
« Antwort #8 am: März 06, 2020, 19:08:19 »
Hallo,
dazu brauchst du kein Systemdatum.
Zeiten zwischen 00:00 Uhr und <06:00 gehören immer zum Vortag.

hört sich einfach an, ist es aber nicht :D

Ich habe es jetzt halbwegs, aber leider wird trotzdem eingetragen egal on Ja Nein oder Abbrechen
Private Sub Form_BeforeUpdate(Cancel As Integer)
If DMax("Datum", "Produktionsdaten") < Me![Datum] Then
        MsgBox Format(Date, "DD.MM.YYYY") & " Soll das Datum geändert werden", vbYesNoCancel + vbQuestion
        If vbYes Then
' Speicher die eingaben
' DoCmd.RunCommand acCmdSaveRecord
'Gehe zum neunen Datensatz
' DoCmd.GoToRecord , , acNewRec
' Form Aktionen
Me![Form1].Requery
Me![Form2].Requery
        Else
            Exit Sub
        End If
End If
End Sub

und Me.Undo scheint keine auswirkung zu haben...

Grüsse J.D
« Letzte Änderung: März 06, 2020, 20:05:03 von MzKlMu »
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 8524
Re: Bei Systemdatum MesageBox
« Antwort #9 am: März 06, 2020, 19:19:54 »
Hallo,
ich würde am Datum in der Tabelle gar nix ändern. Das bleibt wie es ist.
In einer Abfrage ermittelts Du ob die Zeit zwischen 00:00 Uhr und <06:00 Uhr liegt, wenn ja, ziehst vom Datum einen Tag ab. Für Auswertungen verwendest Du die Abfrage.

Als Kurzfassung:
SELECT Datum, Uhrzeit, [Datum]+([Uhrzeit]>=0 And [Uhrzeit]<0.25) AS GehörtZumDatum
FROM Zeiten

Die Uhrzeit ist im Hintergrund als Dezimalzahl zwischen 0 und <1 gespeichert.
0 entspricht 00:00 Uhr und 0,25 = 1/4 = 06:00, daher kann einfach mit der Dezimalzahl verglichen werden.

Der oben gezeigte Code wird so nicht richtig funktionieren.
Soll das Datum immer zurückgesetzt werden, oder willst Du tatsächlich per MsgBox erst fragen ?
Wenn ja, warum ? Macht die Farge Sinn ?

PS:
Wenn Du im Code die Leerzeilen weg lässt, wird das deutlich übersichtlicher dargestellt.
Habe es oben mal gemacht.
« Letzte Änderung: März 06, 2020, 20:08:32 von MzKlMu »
Gruß
Klaus
 
Folgende Mitglieder bedankten sich: J.D

Offline J.D

  • Access-Profi
  • **
  • Beiträge: 129
  • Blutiger Anfänger!
Re: Bei Systemdatum MesageBox
« Antwort #10 am: März 06, 2020, 20:05:26 »
Danke Klaus,

hab gerade einen Gehirnstau...
Muss erst mal gucken wie ich das verabeiten kann :D

Grüsse J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 8524
Re: Bei Systemdatum MesageBox
« Antwort #11 am: März 06, 2020, 20:09:47 »
Hallo,
ich habe meinen Beitrag in #9 noch ergänzt.
Kannst Du das mal noch beantworten.
Gruß
Klaus
 

Offline J.D

  • Access-Profi
  • **
  • Beiträge: 129
  • Blutiger Anfänger!
Re: Bei Systemdatum MesageBox
« Antwort #12 am: März 06, 2020, 20:19:23 »
Danke Klaus!

Also nochmal,

ich möchte Prüfen ob das Datum grösser ist als das in der Datenbank, das funktioniert und die Daten werden alle eingetragen... suppie währe noch das er bei Nein das Datum einen Tag zurück setzt (LuxusVers)...
es würde aber auch reichen das er zum Form zurück geht und ich das Datum ändern kann...
Laut DonKarl mit
  ... Else
  Me.Undo  'rückgängig
  Cancel = True  'Ereignisse verhindern
  End If
Denoch wird bei der Auswahl Nein alles eingetragen :(

Grüsse J.D
Hilfe zur Selbsthilfe vs. learning by burning
Schritt 1.2
 

Offline MzKlMu

  • Moderator
  • Access-Oberguru
  • *****
  • Beiträge: 8524
Re: Bei Systemdatum MesageBox
« Antwort #13 am: März 06, 2020, 21:48:44 »
Hallo,
bitte zeige alle Prozeduren immer vollständig sonst kann man das mit dem Cancel nicht prüfen.
Gruß
Klaus
 

Offline ebs17

  • Access Guru
  • ****
  • Beiträge: 1321
Re: Bei Systemdatum MesageBox
« Antwort #14 am: März 07, 2020, 08:14:16 »
Vielleicht wäre es auch hilfreich, den Begriff Schichtdatum einzuführen und diesen vom normalen Datum abzugrenzen.
Die Nachtschicht beginnt am alten Tag und wird diesem in der Betrachtung zugerechnet. Das kann man aber durchaus auch erst bei Auswertungen berücksichtigen, nicht zwingend schon beim Tabelleneintrag.
In der normalen Zeitrechnung gehört aber eine Zeit wie 1 Uhr zum neuen Tag und wäre auch in Verbindung mit diesem auszuzeichnen.
Wenn wegen Frosteinbruch die Wasserleitung platzt und die Produktion zum Stehen kommt, kann man nicht einfach dieses Ereignis einen Tag zurück legen.
Mit freundlichem Glück Auf!

Eberhard
 

 


Advertisment / Werbung - Amazon Affiliate Links