En principio tienes un problema, ya que a partir de las 12 de la noche el sistema considera las horas, del día siguiente, por lo que convendría saber como "delimitas" la jornada laboral.
Además se pueden dar los casos
1º La hora de entrada y salida son antes de las 21:00
2º La hora de entrada es antes de las 21:00 y la de salida antes de las 24:00
3º La hora de entrada es antes de las 21:00 y la de salida antes de las 06:00
4º La hora de entrada es después de las 21:00
Y ya, puestos a eso, también podría entrar a las 22:00 y salir a las 09:00 del día siguiente. Por tanto, ¿Dónde están los límites de la jornada laboral?
Mira el formulario
Contempla los 3 primeros casos
Private Sub HoraSalida_AfterUpdate()
If HoraEntrada < #9:00:00 PM# And HoraSalida < #9:00:00 PM# And HoraSalida > HoraEntrada Then
HorasDiurnas = HoraSalida - HoraEntrada
ElseIf HoraEntrada < #9:00:00 PM# And HoraSalida > #9:00:00 PM# And HoraSalida < 1 Then
HorasDiurnas = #9:00:00 PM# - HoraEntrada
HorasNocturnas = HoraSalida - #9:00:00 PM#
ElseIf HoraEntrada < #9:00:00 PM# And HoraSalida < HoraEntrada And HoraSalida < #6:00:00 AM# Then
HorasDiurnas = #9:00:00 PM# - HoraEntrada
HorasNocturnas = 1 - #9:00:00 PM# + HoraSalida
End If
End Sub