Clever-Excel-Forum

Normale Version: kleiner als jetzt vba
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich tu mich entwas schwer in der fomulierung


ich möchte wenn ein Mitarbeiter seinen Dienstbeginn bsp um 07:00 uhr hat.

Das er sich erst ab 06:30 eintragen kann.

Der Mitarbeiter trägt zum Dienstbeginn seine Schichtbeginn und Schichtende ein.

Stehe aber total auf dem Schlauch.

Code:
If DLookup("SNummer", "Schichten", "[SNummer] = '" & GetUser() & "'" & _
     "AND [Schichtbeginn] < '" & Now - 30 & "' ") = GetUser() Then
MsgBox "test"
GoTo fin
Else
End If
Hallöchen,

wenn ich mich 30 Minuten vor Schichtbeginn eintragen kann würde ich Schichtbeginn < Now + 30 nehmen
ich hab das jetzt so versucht:


Code:
   If DLookup("[Schichtbeginn]", "Schichten", "[SNummer] = '" & GetUser() & "'") < Now + 30 Then


                       
  GoTo fin
  Else
  MsgBox "Trage dich bitte max. 30min vor Dienstbeginn ein!"

  'CurrentDb.Execute "UPDATE Schichten " & _
                         "SET [SNummer] = '' " & _
                         ", [Schichtbeginn] = '' " & _
                         ", [Schichtende] = '' " & _
                         ", [Schichtdatum] = '' " & _
                         "WHERE [SNummer] = '" & GetUser() & "'"

  GoTo fin
  End If




aber funktionieren tut es leider nicht wirklich
Hallöchen,

also, das mit dem + ist erst mal wegen dem Prinzip. Der eigentliche Starttermin liegt ja nach dem Jetzt, also wäre für die Logik + korrekt.
Du musst natürlich auch schauen ob der Rest stimmt, z.B..

- Was ergibt Now() + 30?
- Was ist das Ergebnis von Getuser()?
Code:
If DateDiff("n", Schichtbeginn, Time) > 30 Then



MsgBox "melde dich später an"
GoTo fin
Else
MsgBox "erlaubt   "
GoTo fin

End If

ich komme nicht weiter egal wie ich es versuche schaff ich es nicht mit 30minuten.
in meinem kopf macht die formel oben sinn aber funktionieren tut sie nicht.
Hallöchen,

hast Du Dir denn mal die einzelnen Teile genauer angeschaut, z.B.

Sub Test1
MsgBox Now() + 30
End Sub

oder

Sub Test1
MsgBox GetUser()
End Sub

oder ...?
ja das habe ich mir angeschaut.

bei now + 30
bekomm ich 19.06.2021 um 17:19
(also aktuelle +30 tage)

Get user sagt er mir den benutzer namen (wichtig für die db)

Code:
Dim minusfuenf As Date
minusfuenf = DateAdd("n", 30, Time)


If Schichtbeginn > minusfuenf Then



MsgBox "Trage dich bitte erst 30min vor Dienstbeginn ein! "



GoTo fin
Else
hab eine lösung die zu funktionieren scheint