ayuda con acces y visual basic
Publicado por jose escudero (1 intervención) el 22/02/2008 18:02:18
Muy buenas señores:
Tengo una base de datos que encontre por la red y la he modificado. Trataba sobre la ocupacion de habitaciones en un hotel y yo la he modificado para la ocupacion de pistas en un club de tenis. El problema que tengo es que cuando tengo una pista ocupada entre las 16:30 y las 17:30 de un día, si le solicito esa misma pista entre las 17:00 y las 18:00 no me avisa que está ocupada. En la base de datos original esa función si la cumplía ya que la sentencia en visual basic estaba destinada a días, pero al intentar pasarla a días y horas no la cumple. No tengo mucha idea, por no decir ninguna, de visual basic. ¿Alguien me puede ayudar?.
La sentencia transformada es esta:
Function CompruebaDisponibilidad() As Boolean
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM Reservas WHERE IdOcupacion <> " & Me.IdOcupacion & " AND Habitacion = ' " & Me.Habitacion & _ "' AND ((FechaEntrada BETWEEN #" & Format(Me.FechaEntrada, "dd/mm/yyyy hh:nn") & "# AND #" & _Format(DateAdd("h", -1, Me.FechaSalida), "dd/mm/yyyy hh:nn") & "#) OR (DateAdd('h', -1, FechaSalida) BETWEEN #" & Format(Me.FechaEntrada, "dd/mm/yyyy hh:nn") & _
"# AND #" & Format(DateAdd("h", -1, Me.FechaSalida), "dd/mm/yyyy hh:nn") & "#))")
If Not rst.EOF And Not rst.BOF Then
MsgBox "OCUPADO"
CompruebaDisponibilidad = False Else
CompruebaDisponibilidad = True
End If
rst.Close
Set rst = Nothing
End Function
Alguien puede corregirmela para que funcione?
Campos: IdOcupacion es autonumérico
Habitacion es de texto. En original era numérico
FechaEntrada: dd/mm/aa hh:mm en original era dd/mm/aaaa
FechaSalida: dd/mm/aa hh:mm en original era dd/mm/aaaa
Creo que eso es todo. Gracias por anticipado
Tengo una base de datos que encontre por la red y la he modificado. Trataba sobre la ocupacion de habitaciones en un hotel y yo la he modificado para la ocupacion de pistas en un club de tenis. El problema que tengo es que cuando tengo una pista ocupada entre las 16:30 y las 17:30 de un día, si le solicito esa misma pista entre las 17:00 y las 18:00 no me avisa que está ocupada. En la base de datos original esa función si la cumplía ya que la sentencia en visual basic estaba destinada a días, pero al intentar pasarla a días y horas no la cumple. No tengo mucha idea, por no decir ninguna, de visual basic. ¿Alguien me puede ayudar?.
La sentencia transformada es esta:
Function CompruebaDisponibilidad() As Boolean
Dim rst As DAO.Recordset
Set rst = CurrentDb.OpenRecordset("SELECT * FROM Reservas WHERE IdOcupacion <> " & Me.IdOcupacion & " AND Habitacion = ' " & Me.Habitacion & _ "' AND ((FechaEntrada BETWEEN #" & Format(Me.FechaEntrada, "dd/mm/yyyy hh:nn") & "# AND #" & _Format(DateAdd("h", -1, Me.FechaSalida), "dd/mm/yyyy hh:nn") & "#) OR (DateAdd('h', -1, FechaSalida) BETWEEN #" & Format(Me.FechaEntrada, "dd/mm/yyyy hh:nn") & _
"# AND #" & Format(DateAdd("h", -1, Me.FechaSalida), "dd/mm/yyyy hh:nn") & "#))")
If Not rst.EOF And Not rst.BOF Then
MsgBox "OCUPADO"
CompruebaDisponibilidad = False Else
CompruebaDisponibilidad = True
End If
rst.Close
Set rst = Nothing
End Function
Alguien puede corregirmela para que funcione?
Campos: IdOcupacion es autonumérico
Habitacion es de texto. En original era numérico
FechaEntrada: dd/mm/aa hh:mm en original era dd/mm/aaaa
FechaSalida: dd/mm/aa hh:mm en original era dd/mm/aaaa
Creo que eso es todo. Gracias por anticipado
Valora esta pregunta


0