Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

kleiner als jetzt vba
#1
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
Antworten Top
#2
Hallöchen,

wenn ich mich 30 Minuten vor Schichtbeginn eintragen kann würde ich Schichtbeginn < Now + 30 nehmen
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#3
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
Antworten Top
#4
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()?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#5
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.
Antworten Top
#6
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 ...?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste