Limitar a ocho las reservas en una hora

Me gustaría que me explicaran como hacer una tabla con un formulario con los campos

Nombre, DNI, día, hora.

La idea es crear una tabla "Clientes" con esos campos y que no me permita añadir más registros a una hora determinada cuando estos lleguen a ocho registros. Es decir que solo permita ocho reservas cada hora y cuando se intente insertar otro registro en esa hora de un aviso y no deje introducir el registro.

Respuesta
1

Si creas la tabla con esos campos, y sobre la tabla un formulario, una forma de hacerlo sería programando el evento "Antes de actualizar" del campo hora con un código como éste:

Private Sub Hora_BeforeUpdate(Cancel As Integer)
If DCount("*", "TCitas", "Dia=Forms!FCitas1!Dia AND Hour(Hora)=" & Hour(Me.Hora)) < 8 Then
    'no hacemos nada y dejamos añadir la cita
Else
    MsgBox "No quedan citas disponibles para esa hora. Por favor, escoge otra", vbInformation, "SIN CITAS"
    Cancel = True
End If
End Sub

Te lo enseño con un formulario contínuo, para que se vean los registros anteriores, pero lo mismo se aplica a cualquier tipo de formulario:

En la imagen verás que ya hay 8 registros para el día 02/09/2020 con distintas horas entre las 8:00 y las 8:59.

Si intento crear otro registro para ese día en esa franja horaria:

Salta el mensaje y no deja seguir hasta que cambias la hora o el día, o cancelas el registro.

Te dejo el archivo de ejemplo para que pruebes: http://www.filebig.net/files/wNtQDWFAmR 

¡Gracias!

Muchísimas gracias es justo lo que necesitaba. Voy a ver como funciona la función Dcount que veo es la clave para conseguir el limite de 8 citas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas