Consulta sql a vista diseño |
Responder |
Autor | |
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3062 |
Tema: Consulta sql a vista diseño Enviado: 02/Octubre/2019 a las 13:13 |
Por mi parte se puede cerrar. He utilizado el metodo de Mihura tambien, y una vez entendido queda una consulta bastante simple. SELECT Reservas.FechaEntrada, DateAdd('d',-1,[FechaSalida]) AS Fecha_Salida, Reservas.idOcupacion, Reservas.Habitacion FROM Reservas WHERE (((Reservas.FechaEntrada)<=DateAdd('d',-1,[Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaSalida])) AND ((DateAdd('d',-1,[FechaSalida]))>=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada]) AND ((Reservas.idOcupacion)<>[Formularios]![frmOcupacionSemanal]![SubFormReservas]![idOcupacion]) AND ((Reservas.Habitacion)=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![Habitacion])); Saludos y gracias
|
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3062 |
Enviado: 01/Octubre/2019 a las 16:41 |
Cierto tiene es "defecto", me ha salido gracias al enlace que me has puesto y a un ejemplo que tiene hay pitxiku. Aun me tengo que mirar la rutina de Mihura... Esta es la consulta que me a quedado que solventa ese defecto. SELECT Reservas.FechaEntrada, DateAdd('d',-1,[FechaSalida]) AS Fecha_Salida, [Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada] AS Expr1, Reservas.FechaSalida, Reservas.Habitacion, Reservas.idOcupacion
FROM Reservas WHERE (((Reservas.FechaEntrada) Between [Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada] And DateAdd("d",-1,[Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaSalida])) AND ((Reservas.Habitacion)=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![Habitacion]) AND ((Reservas.idOcupacion)<>[Formularios]![frmOcupacionSemanal]![SubFormReservas]![idOcupacion])) OR (((DateAdd('d',-1,[FechaSalida])) Between [Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada] And DateAdd("d",-1,[Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaSalida])) AND ((Reservas.Habitacion)=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![Habitacion]) AND ((Reservas.idOcupacion)<>[Formularios]![frmOcupacionSemanal]![SubFormReservas]![idOcupacion])) OR ((([Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada]) Between [FechaEntrada] And DateAdd("d",-1,[FechaSalida])) AND ((Reservas.Habitacion)=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![Habitacion]) AND ((Reservas.idOcupacion)<>[Formularios]![frmOcupacionSemanal]![SubFormReservas]![idOcupacion])); |
|
mounir
Colaborador Unido: 09/Febrero/2009 Localización: Asturias-España Estado: Sin conexión Puntos: 6479 |
Enviado: 30/Septiembre/2019 a las 20:53 |
Hola!
Este ejemplo en su momento tuvo un debate sobre la función de disponibilidad. echale un vistazo por si te interesa. Consulta de fecha y disponibilidad Editado por mounir - 30/Septiembre/2019 a las 20:54 |
|
Un Saludo.
|
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3062 |
Enviado: 30/Septiembre/2019 a las 20:41 |
pedazo truco!!!! En la ventana inmediato me a dado esto, lo he copiado en vista sql de la consulta y hay se ve como esta montada la consulta. Luego comparando un poco la sql en vba ves como esta hecha. SELECT * FROM Reservas WHERE IdOcupacion <> 32 AND Habitacion = 206 AND ((FechaEntrada BETWEEN #06/24/2006# AND #06/24/2006#) OR (DateAdd('d', -1, FechaSalida) BETWEEN #06/24/2006# AND #06/24/2006#)) La consulta queda asi. SELECT * FROM Reservas WHERE (((Reservas.FechaEntrada) Between [Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada] And DateAdd("d",-1,[Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaSalida])) AND ((Reservas.IdOcupacion)<>[Formularios]![frmOcupacionSemanal]![SubFormReservas]![idOcupacion]) AND ((Reservas.Habitacion)=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![Habitacion])) OR (((Reservas.IdOcupacion)<>[Formularios]![frmOcupacionSemanal]![SubFormReservas]![idOcupacion]) AND ((Reservas.Habitacion)=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![Habitacion]) AND ((DateAdd('d',-1,[FechaSalida])) Between [Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada] And DateAdd("d",-1,[Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaSalida]))); La probare mejor, pero parece que funciona!! |
|
emiliove
Administrador Unido: 16/Junio/2009 Localización: Mexico Estado: Sin conexión Puntos: 5694 |
Enviado: 30/Septiembre/2019 a las 20:06 |
Puedes poner un Debug.print ("SELECT * FROM Reservas WHERE IdOcupacion <> " & Me.IdOcupacion & " AND Habitacion = " & Me.Habitacion & _
" AND ((FechaEntrada BETWEEN #" & Format(Me.FechaEntrada, "mm/dd/yyyy") & "# AND #" & _ Format(DateAdd("d", -1, Me.FechaSalida), "mm/dd/yyyy") & "#) OR (DateAdd('d', -1, FechaSalida) BETWEEN #" & Format(Me.FechaEntrada, "mm/dd/yyyy") & _ "# AND #" & Format(DateAdd("d", -1, Me.FechaSalida), "mm/dd/yyyy") & "#))") Y lo que te de lo pegas en una sql de la consuilta. Salidos. |
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3062 |
Enviado: 30/Septiembre/2019 a las 19:37 |
Lo que quiero es hacer esa consulta SQL en una consulta normal y poder verla en vista diseño. De esta forma puedo entender su funcionamiento y ver los criterios mas facilmente para entenderlos....
|
|
happy
Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Moderador Unido: 29/Enero/2005 Localización: España Estado: Sin conexión Puntos: 3192 |
Enviado: 30/Septiembre/2019 a las 18:46 |
Si los campos están en un subformulario entonces te falta indicarlo en la consulta agregando ![Form] despues del nombre del subformulario. Por ejemplo [Formularios]![frmOcupacionSemanal]![SubFormReservas]![Form][IdOcupacion] Eso sí para el resto de la pregunta no entiendo lo que expones. Tampoco he visto ese ejemplo de Marciano que mencionas ...
|
|
Saludos,
Juan M. Afan de Ribera |
|
rokoko
Colaborador Unido: 16/Febrero/2008 Localización: Pamplona Estado: Sin conexión Puntos: 3062 |
Enviado: 30/Septiembre/2019 a las 17:42 |
Hola Estoy intentando pasar una consulta sql que esta en un formulario a una consulta normal. El objetivo es ver como hace los criterios, no consigo aclararme en SQL. La consulta es de esta base de datos, un planing hotel www.mvp-access.com/-marta-/web/Ejemplos/De%20mis%20Amigos/photel2000Marciano.zip La consulta Set rst = CurrentDb.OpenRecordset("SELECT * FROM Reservas WHERE IdOcupacion <> " & Me.IdOcupacion & " AND Habitacion = " & Me.Habitacion & _ " AND ((FechaEntrada BETWEEN #" & Format(Me.FechaEntrada, "mm/dd/yyyy") & "# AND #" & _ Format(DateAdd("d", -1, Me.FechaSalida), "mm/dd/yyyy") & "#) OR (DateAdd('d', -1, FechaSalida) BETWEEN #" & Format(Me.FechaEntrada, "mm/dd/yyyy") & _ "# AND #" & Format(DateAdd("d", -1, Me.FechaSalida), "mm/dd/yyyy") & "#))") No me queda claro cada criterio a que campo va dirigido. El bloque en rojo creo que es asi, aunque no lo tengo muy claro. La consulta pilla los datos del formulario. Del resto de la consulta no lo veo SELECT Reservas.IdOcupacion, Reservas.Habitacion, Reservas.FechaEntrada, *
FROM Reservas WHERE (((Reservas.IdOcupacion)<>[Formularios]![frmOcupacionSemanal]![SubFormReservas]![IdOcupacion]) AND ((Reservas.Habitacion)=[Formularios]![frmOcupacionSemanal]![SubFormReservas]![Habitacion]) AND ((Reservas.FechaEntrada) Between [Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaEntrada] And DateAdd("d",-1,[Formularios]![frmOcupacionSemanal]![SubFormReservas]![FechaSalida]))); Editado por rokoko - 30/Septiembre/2019 a las 17:52 |
|
Responder | |
Tweet
|
Ir al foro | Permisos de foro Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |