Foros del Web » Programando para Internet » ASP Clásico »

Validar horas coincidentes o dentro de rango.

Estas en el tema de Validar horas coincidentes o dentro de rango. en el foro de ASP Clásico en Foros del Web. Buenas Sres, alguien me puede orientar con un tema de fechas y horas?, paso a exponer: la idea es que el usuario tiene un form ...
  #1 (permalink)  
Antiguo 03/03/2005, 09:03
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Pregunta Validar horas coincidentes o dentro de rango.

Buenas Sres, alguien me puede orientar con un tema de fechas y horas?, paso a exponer:

la idea es que el usuario tiene un form con 2 textbox para indicar 2 fechas y 2 combos para 2 horas iguales o distintas. La idea es guardar fechas y horas en access. Pero si alguien a posteriori quiere guardar para el mismo rango de fechas horas similares el programa me avise de que ya hay algo grabado..

en base tengo este registro grabado:
fecha desde : 12/12/2005 fecha hasta : 12/12/2005
hora desde : 10:00 hora hasta : 12:00

pero alguien quiere grabar:
fecha desde : 12/12/2005 fecha hasta : 12/12/2005
hora desde : 10:00 hora hasta : 11:00

No deberia poder hacerlo, ya existe un rango de horas (10:00 a 12:00) grabado.

Alguna idea de como deberia plantearlo a nivel ASP-Access (o SQL)?

Saludos.
__________________
Carlunchos

Última edición por carlunchos; 03/03/2005 a las 09:05 Razón: me equivoque de titulo.
  #2 (permalink)  
Antiguo 03/03/2005, 10:58
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Antes de ayer estuve en una situación similar a la tuya, sólo que no me interesaban los rangos de horas.. sólo las fechas.

Te dejo como lo solucioné a ver si te sirve:


Código:
SQL = "SELECT * FROM Viat WHERE (((Viat.ID_Persona)=" & ID_Persona & ") AND ((Viat.PartidaFecha)<#" & PartidaFecha & "#) AND ((Viat.RegresoFecha)>#" & PartidaFecha & "#)) OR (((Viat.ID_Persona)=3) AND ((Viat.PartidaFecha)<#" & RegresoFecha & "#) AND ((Viat.RegresoFecha)>#" & RegresoFecha & "#))"

Si existe un registro que cumpla con esas condiciones, pués no se permite agregar el registro que se está intentando agregar.

Saludos
__________________
...___...
  #3 (permalink)  
Antiguo 03/03/2005, 11:54
Avatar de carlunchos  
Fecha de Ingreso: enero-2002
Ubicación: no tengo, soy un desubicado?.
Mensajes: 438
Antigüedad: 22 años, 4 meses
Puntos: 1
Gracias Al &%#$"?& como sea. Voy a tratar a de adaptarlo a lo mio y te cuento.

Saludos.
__________________
Carlunchos
  #4 (permalink)  
Antiguo 03/03/2005, 14:11
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Jojojo.. detecté un error en mi código ("creo" que nada que a vos te afecte, carlunchos)


SQL = "SELECT * FROM Viat WHERE (((Viat.ID_Persona)=" & ID_Persona & ") AND ((Viat.PartidaFecha)<#" & PartidaFecha & "#) AND ((Viat.RegresoFecha)>#" & PartidaFecha & "#)) OR (((Viat.ID_Persona)=3) AND ((Viat.PartidaFecha)<#" & RegresoFecha & "#) AND ((Viat.RegresoFecha)>#" & RegresoFecha & "#))"


Debería ser..

SQL = "SELECT * FROM Viat WHERE (((Viat.ID_Persona)=" & ID_Persona & ") AND ((Viat.PartidaFecha)<#" & PartidaFecha & "#) AND ((Viat.RegresoFecha)>#" & PartidaFecha & "#)) OR (((Viat.ID_Persona)=" & ID_Persona & ") AND ((Viat.PartidaFecha)<#" & RegresoFecha & "#) AND ((Viat.RegresoFecha)>#" & RegresoFecha & "#))"


Menos mal que todavía no lo comenzaron a usar
__________________
...___...
  #5 (permalink)  
Antiguo 03/03/2005, 15:10
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Bueno.. y otro error:


Código:
                |------- A ---------|
01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12
           |-------- B --------|
                          |-------- C --------|
      |-------------- D- ---------------|
Supongamos que son días (horas o sólo números.. no importa) y el registro existente es el A (el comprendido entre 4 y 8).
Al intentar guardar el B lo detecta y funciona. Lo mismo ocurre al intentar guardar el C.. pero no así al intentar guardar el D.

Ahora veo cómo solucionarlo.. debe ser un simple OR, pero ya te confirmo.
__________________
...___...

Última edición por AlZuwaga; 03/03/2005 a las 15:14
  #6 (permalink)  
Antiguo 03/03/2005, 15:15
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Código:
                |------- A ---------|
01 - 02 - 03 - 04 - 05 - 06 - 07 - 08 - 09 - 10 - 11 - 12
           |-------- B --------|
                          |-------- C --------|
      |-------------- D- ---------------|
que es eso?? ja ja
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 03/03/2005, 16:04
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
Cita:
Iniciado por u_goldman
que es eso?? ja ja

Un simple esquemita gráfico
Eso mismo que puse ahí lo tengo en un papel a mi lado, pero me da flojera escanearlo, subirlo a internet y linkear la imagen.. por eso lo puse en "modo texto". No sé uds, pero cuando ya no tengo la cabeza en "modo pensar" , agarro un papel y dibujo lo que luego tengo que escribir en el código


Bueno, finalmente era un OR (además de agregarle unos = por allí). Quedó así:


SQL = "SELECT ViatPersonas.Nombre, ViatPersonas.Apellido, Viat.* FROM Viat INNER JOIN ViatPersonas ON Viat.ID_Persona = ViatPersonas.ID_Persona WHERE ( (((Viat.ID_Persona)=" & ID_Persona & ") AND ((Viat.PartidaFecha)<=#" & dbDate(PartidaFecha) & "#) AND ((Viat.RegresoFecha)>=#" & dbDate(PartidaFecha) & "#)) OR (((Viat.ID_Persona)=" & ID_Persona & ") AND ((Viat.PartidaFecha)<=#" & dbDate(RegresoFecha) & "#) AND ((Viat.RegresoFecha)>=#" & dbDate(RegresoFecha) & "#)) ) OR (((Viat.ID_Persona)=" & ID_Persona & ") AND ((Viat.PartidaFecha)>=#" & dbDate(PartidaFecha) & "#) AND ((Viat.RegresoFecha)<=#" & dbDate(RegresoFecha) & "#))"
__________________
...___...
  #8 (permalink)  
Antiguo 03/03/2005, 16:34
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
No cabe duda, cada cabeza es un mundo, pero tu mundo estimado AZ, es un poco complejo

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:22.