Visual Basic - Duda con reserva entre horas

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Duda con reserva entre horas

Publicado por pablo (52 intervenciones) el 12/11/2021 15:46:50
Buenos dias. la situacion es la siguiente, estoy con un programa de reserva de salones, entonces necesito que al reservar un salon , ese mismo no este disponible entre las horas que ya se reservo.
Ej: Salon1
Fecha: 12/11 desde 12:00 hasta 15:00

Lo que necesito hacer es que no se pueda reservar entre las 12 y las 15 de esa fecha, pero no se como pensarlo o hacerlo,.

Desde ya muchas gracias.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Duda con reserva entre horas

Publicado por pablo (52 intervenciones) el 13/11/2021 15:54:31
Bueno , se me ocurrio una solucion, nose si es muy practica, pero funciona bien y no me deja reservar entre horas que ya fueron elegidas.
Lo que hago es primero lleno un datagridview que esta oculto con todas las fechas, horas de inicio y cierre del salon y luego voy comparando las horas .
Les dejo el codigo por si a alguien le sirve y si le sale de una forma mejor me avisa


Dim SALON1 As String = ComboBox1.Text
Dim FECHA1 As String = FECHA.Text

Dim dataset As New DataSet
Dim datatable As New DataTable
Dim sql As String = "SELECT SALON,FECHA, DESDE, HASTA FROM RESERVA WHERE SALON ='" & SALON1 & "' AND FECHA = '" & FECHA1 & "' "
Dim adp As New SqlDataAdapter(sql, conexionsql)

dataset.Tables.Add("TABLAS")
adp.Fill(dataset.Tables("TABLAS")) '" & NOMBRE & "'



Me.DataGridView1.DataSource = dataset.Tables("TABLAS")



For Each Row As DataGridViewRow In DataGridView1.Rows
':::Obtenemos los valores que vamos a pasar a nuestra consulta para ser guardados
Dim DESDE1 As Date = Row.Cells(2).Value
Dim HASTA1 As Date = Row.Cells(3).Value

Dim DESDE2 As Date = DESDE.Text
Dim HASTA2 As Date = HASTA.Text


If DESDE2 > DESDE1 And DESDE2 < HASTA1 Then
MsgBox("Fecha reservada")
Exit For

Else

MsgBox("OK")

End If


Next
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 355
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Duda con reserva entre horas

Publicado por raul (160 intervenciones) el 16/11/2021 15:32:41
Te adjunto un ejemplo en access de tabla y consulta que hace exactamente eso que quieres. Ahora un poco de explicación...

Lo primero que necesitas es dos campos tipo DATETIME basicamente para el inicio y terminación de la reservación; en el ejemplo FININ y FTERM... un campo extra contiene el nombre del salon este campo será vital porque nos permitirá enfocar la consulta en algo concreto por otro lado si cuentas con varios salones será ideal porque obtendremos que salon estará disponible.


Ahora bien el tema recide en comparar la fecha de inicio y terminación de la reservación con los parametros a buscar o sea que la fecha de inicio no se encuentre en el rango a buscar por ejemplo RANGO INICIO A BUSCAR (RIB) y RANGO FINAL A BUSCAR (RFB) o sea

FININ >= RIB & FININ <=RFB tambien se debe comparar la fecha final o sea

(FININ >= RIB and FININ <=RFB) or (FTERM >= RIB and FTERM <= RFB) ahora con lo que hemos realizado solo cubrimos una parte del problema 'SABER QUE SALON ESTA OCUPADO EN EL PERIODO DADO...Por ende tenemos que buscar lo contrario

ver Adjunto

SELECT DISTINCT locales
FROM Tabla1
WHERE locales not in (select locales from tabla1 where (finin >= #14/11/2021 12:00:00# and finin <=#14/11/2021 13:00:00#) or (fterm >= #14/11/2021 12:00:00# and fterm <=#14/11/2021 13:00:00#));
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 73
Ha disminuido su posición en 2 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Duda con reserva entre horas

Publicado por Pablo (52 intervenciones) el 16/11/2021 18:33:39
Gracias, lo voy a probar , por ahora esta funcionado con la solución que puse arriba, pero lo voy a probar porque es menos complicado que mi solucion.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar