fratac ha scritto:
Ciao. Cosa hai utilizzato.
Ho creato una semplicissima query denominata "Controllo" con le due tabelle collegate "Straordinari" e "Dettagli_Straordinari" da cui ho estratto IDPersonale, DataOraInizio e DataOraFine.
Poi sull'evento BeforeUpdate della sottomaschera "Dettaglio_Straordinari" ho inserito:
Private Sub Form_BeforeUpdate(Cancel As Integer)
If DCount("*", "Controllo", "[IDPersonale] =" & [Forms]![Straordinari]![IDPersonale] & _
" AND [DataOraInizio] < #" & _
Format(Me!DataOraFine, "mm/dd/yyyy hh:mm") & _
"# AND [DataOraFine] > #" & _
Format(Me!DataOraInizio, "mm/dd/yyyy hh:mm") & "#") > 0 Then
MsgBox "Prestazione già inserita o a cavallo di una esistente", _
vbCritical, "Verifica periodo di inserimento"
Me.Undo
Cancel = True
Me.DataOraInizio.SetFocus
End If
End Sub
Il tutto funziona alla grande consentendo anche di inserire una DataOraInizio uguale ad una DataOraFine di un periodo già inserito, p.e. (7/8/2022 09:00 > 7/8/2022 10:00) e poi (7/8/2022 10:00 > 7/8/2022 11:00).
Buona giornata a tutti.