Si, dice que uses la fecha completa. Y me parece buena idea, pero justo anoche le vi un para problema (o al menos no le encontré solución)... veamos si puedo recrearlo. Al momento tenemos 3 posibilidades: Comercios que abren y cierran el mismo día. Los que abren un día y cierran al siguiente -pero trabajan menos de 24 horas corridas-. Y finalmente los que no cierran nunca.
- Para caso 1 (abierto de 8 a 18):
campo_abre: 01/01/1900 08:00:00
campo_cierra: 01/01/1900 18:00:00
- Para caso 2 (abierto de 16 a 3 del día siguiente):
campo_abre: 01/01/1900 16:00:00
campo_cierra: 0
2/01/1900 03:00:00
- Para caso 3 (abierto las 24 horas):
campo_abre: 01/01/1900 00:00:00
campo_cierra: 01/01/1900 23:59:59
Tanto para caso 1 como caso 3, usando un between de la hora actual entre los campos abre y cierra te sirve. Pero le encuentro un problema al caso 2 (y justo eso es lo que te lleva a preguntar aquí)
Código:
if "01/01/1900" & hora_actual >= campo_abre AND "01/01/1900" & hora_actual <= campo_cierra then
abierto()
else
cerrado()
end if
para hora_actual = 17:00:00 da abierto... OK
para hora_actual = 15:00:00 da cerrado... OK
para hora_actual = 02:00:00 da cerrado... OK
Perdón, no dije nada... funciona