Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problema con Horarios y Fechas

Estas en el tema de Problema con Horarios y Fechas en el foro de Visual Basic clásico en Foros del Web. Hola a todos, tengo 2 problemitas. El primer proble para realizar un rango entre horas Tengo 2 Variables que me traen 2 Horarios, y un ...
  #1 (permalink)  
Antiguo 16/01/2012, 20:18
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Problema con Horarios y Fechas

Hola a todos, tengo 2 problemitas.

El primer proble para realizar un rango entre horas

Tengo 2 Variables que me traen 2 Horarios, y un DTPicker que cuando inserto la hora, tiene que consultar a los valores

Ej
Código:
Private Sub DTPicker2_LostFocus()
    If DTPicker2  < diurno1.Text Or DTPicker2 > diurno2.Text Then
    HN.Visible = True
    Else
    HN.Visible = False
    End If
End Sub
El DTPicker como los datos que recibo, estan expresados en 24Hs
Desde 00:00 hasta 23:59



Segundo Problema

No me esta tomando la comparacion de una fecha

Código:
If Format$(rs!fecha_nacimiento, "dd/mm/yyyy") = "01/01/1900" Then
                cnn.Execute "UPDATE Pacientes set Fecha_Nacimiento = '" & vbNullString & _
                    "' where id_paciente = " & rs!id_paciente & ""
            End If
Aca no se porque no me hace esta funcion

Alguna idea

Muchas Gracias
  #2 (permalink)  
Antiguo 16/01/2012, 21:15
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 3 meses
Puntos: 4
Respuesta: Problema con Horarios y Fechas

Hola davchi,


a tu primer problema, una pregunta: cuando dices que te llegan como 00:00 - 23:59 ¿has probado a convertir en fecha diurno1.Text y diurno2.Text (Format(diurno1.Text, "hh:mm"))?

Quedaría algo como:
Código vb:
Ver original
  1. Private Sub DTPicker2_LostFocus()
  2.     If DTPicker2  < (Format(diurno1.Text, "hh:mm")) Or DTPicker2 > (Format(diurno1.Text, "hh:mm")) Then
  3.     HN.Visible = True
  4.     Else
  5.     HN.Visible = False
  6.     End If
  7. End Sub

Por otro lado, siempre puedes asegurarte de que lo son con un If IsDate() Then ...

En cuanto al segundo problema, prueba así y nos cuentas:

Código vb:
Ver original
  1. If Format(rs!fecha_nacimiento, "dd/mm/yyyy") = "01/01/1900" Then
  2.     cnn.Execute "UPDATE Pacientes set Fecha_Nacimiento = '" & vbNullString & "' " _
  3.                 & " where id_paciente = " & rs!id_paciente & " "
  4. End If
  #3 (permalink)  
Antiguo 16/01/2012, 21:28
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con Horarios y Fechas

Hola Uran, muchas gracias por tu tiempo
He probado el primero como me dices, pero sigue sin responder como debiera
ya que si por ejemplo

diurno1.Text = 07:00
diurno2.Text = 21:00

en en el DTPicker hago cualquier cambio, siempre me aparece
HN.Visible = True

no me respeta los rangos de hora


Y en el segundo Problema No me actualiza a vbnullstring
  #4 (permalink)  
Antiguo 16/01/2012, 21:42
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 3 meses
Puntos: 4
Respuesta: Problema con Horarios y Fechas

Un par de cosas:

¿Puedes establecer HN.Visible = False antes? (Para comprobar que el problema está en el if)

y por otro lado,

¿no puedes establecer la propiedad a NULL desde el propio SQL?

"UPDATE Pacientes set Fecha_Nacimiento = Null " _
& " where id_paciente = " & rs!id_paciente & " "
  #5 (permalink)  
Antiguo 16/01/2012, 21:58
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con Horarios y Fechas

Hola
El HN ya lo tengo delarado en False, y aparece cuando hago el LostFocus, pero ya sea que este dentro de los parametros del diurno1 y diurno2 o fuera de ellos, se declara como visible = true
  #6 (permalink)  
Antiguo 16/01/2012, 22:08
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 3 meses
Puntos: 4
Respuesta: Problema con Horarios y Fechas

Esque no entiendo, si son ambas fechas (supongo que ya habrás probado lo que te dije de If IsDate() y puede que debieras probar directamente diurno1.Text = Format(...) y luego el If) en teoría no hay nada más que negociar...

Entiendo entonces que si cambias el orden, es decir si donde tienes False en el if pones True (a la propiedad .Visible) ocurre lo contrario, nunca lo... bueno nunca lo verías (perdona es que es muy tarde y ya digo tonterías)

¿Qué me cuentas del Null?

Edito: Por si acaso prueba a formatear también el DTPicker2 al formato hh:mm y muestra tanto diurno1 como diurno2 como DTPicker2 en msgbox por si acaso. Si los datos te los muestra bien y aun así no te funciona el if, yo no te puedo ayudar, que te ayude otro porque no se cómo solucionar tu problema

Última edición por Uran; 16/01/2012 a las 22:18
  #7 (permalink)  
Antiguo 16/01/2012, 22:28
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 3 meses
Puntos: 4
Respuesta: Problema con Horarios y Fechas

Acabo de probar con vba en access (por cuestiones de velocidad) lo siguiente:

Código vb:
Ver original
  1. Private Sub Comando6_Click()
  2.     If (Format(Me!DTPicker2, "hh:mm")) < (Format(Me!diurno1, "hh:mm")) Or (Format(Me!DTPicker2, "hh:mm")) > (Format(Me!diurno2, "hh:mm")) Then
  3.         MsgBox ("Visible")
  4.     Else
  5.         MsgBox ("No Visible")
  6.     End If
  7. End Sub

y me muestra correctamente los mensajes en función de la hora que pongo...
  #8 (permalink)  
Antiguo 16/01/2012, 22:29
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con Horarios y Fechas

Ahora he pasado del diurno1.Text y diurno2.Text a

Código:
Private sub Form_load()

With MaskEdBox1
    .Format = "hh:mm"
    .Mask = "##:##"
    End With
    
    With MaskEdBox2
    .Format = "hh:mm"
    .Mask = "##:##"
    End With

End Sub


Private Sub DTPicker2_LostFocus()
    If DTPicker2 < MaskEdBox1 Or DTPicker2 > MaskEdBox2 Then
    HN.Visible = True
    Else
    HN.Visible = False
    End If
End Sub
Ya con esto no hay posibilidad que haya errores en los Formatos , pero igualmente no hace nada
  #9 (permalink)  
Antiguo 16/01/2012, 22:33
 
Fecha de Ingreso: septiembre-2009
Mensajes: 108
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Problema con Horarios y Fechas

Ya esta

Código:
Private Sub DTPicker2_LostFocus()
    If Format$(DTPicker2, "HH:mm") < MaskEdBox1 Or DTPicker2 > MaskEdBox2 Then
    HN.Visible = True
    Else
    HN.Visible = False
    End If
End Sub
Muchas Gracias Uran, un genio
  #10 (permalink)  
Antiguo 16/01/2012, 22:38
 
Fecha de Ingreso: enero-2012
Mensajes: 49
Antigüedad: 12 años, 3 meses
Puntos: 4
Respuesta: Problema con Horarios y Fechas

Menos mal porque me estaba quedando ojiplático.

De todas formas, ten ciudado porque tienes que poner el format en las dos partes, no sólo en la primera, cambia:

Código:
If Format$(DTPicker2, "HH:mm") < MaskEdBox1 Or DTPicker2 > MaskEdBox2 Then
por:

Cita:
If Format$(DTPicker2, "HH:mm") < MaskEdBox1 Or Format$(DTPicker2, "HH:mm")> MaskEdBox2 Then
En fin, no hay de qué, que te vaya

Etiquetas: horarios, vb
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 23:17.