none
Obtener Fecha RRS feed

  • Pregunta

  • Buenos días, la pregunta es: Tengo un objeto MonthCalendar y quiero que al seleccionar un día de este calendario se me llene un TextBox para realizar una busqueda en una base de datos, quiero que el TextBox se llene con el dd/mm/aaaa para poder hacer la búsqueda cada vez que el usuario seleccione un día del calendario. Gracias por su ayuda.

    Saludos desde Hidalgo.

    miércoles, 20 de abril de 2016 11:12

Respuestas

  • "Edgar Martínez" preguntó:

    > Tengo un objeto MonthCalendar y quiero que al seleccionar un día de este calendario
    > se me llene un TextBox para realizar una busqueda en una base de datos, quiero que
    > el TextBox se llene con el dd/mm/aaaa para poder hacer la búsqueda cada vez que el
    > usuario seleccione un día del calendario.

    Hola, Edgar:

    Tan solo tienes que interceptar el evento DateSelected para obtener la fecha seleccionada por el usuario en el control MonthCalendar:

       Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected
    
            ' Mostramos en el control TextBox el primer valor
            ' de fecha seleccionado por el usuario en el
            ' control MonthCalendar.
            '
            TextBox1.Text = e.Start.ToShortDateString()
    
        End Sub

    ¿Que en lugar de la primera fecha seleccionada deseas mostrar la última fecha seleccionada?

        TextBox1.Text = e.End.ToShortDateString()

    Pero debes de tener en cuenta que si tomas el valor de la fecha existente en el control TextBox, éste será un valor ALFANUMÉRICO, que aunque parezca una fecha, no lo es, por tanto, si los valores que deseas buscar en tu base de datos son valores de fecha/hora válidos, tendrías que convertir el valor alfanumérico en un valor de fecha y hora correcto.

    Cuando desees realizar la búsqueda, el valor alfanumérico lo tendrías que convertir a DateTime de la siguiente manera:

            Dim fecha As DateTime
            Dim bln As Boolean = DateTime.TryParse(TextBox1.Text, fecha)
    
            If (bln) Then
                MessageBox.Show("Es un valor de fecha y hora válido.", fecha.ToShortDateString())
            Else
                MessageBox.Show("En el control TextBox no hay escrito un valor de fecha y hora válido.")
            End If
    

    En la variable fecha tienes el valor DateTime válido correspondiente con el valor alfanumérico escrito en el control TextBox1.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    miércoles, 20 de abril de 2016 11:24
    Moderador

Todas las respuestas

  • "Edgar Martínez" preguntó:

    > Tengo un objeto MonthCalendar y quiero que al seleccionar un día de este calendario
    > se me llene un TextBox para realizar una busqueda en una base de datos, quiero que
    > el TextBox se llene con el dd/mm/aaaa para poder hacer la búsqueda cada vez que el
    > usuario seleccione un día del calendario.

    Hola, Edgar:

    Tan solo tienes que interceptar el evento DateSelected para obtener la fecha seleccionada por el usuario en el control MonthCalendar:

       Private Sub MonthCalendar1_DateSelected(sender As Object, e As DateRangeEventArgs) Handles MonthCalendar1.DateSelected
    
            ' Mostramos en el control TextBox el primer valor
            ' de fecha seleccionado por el usuario en el
            ' control MonthCalendar.
            '
            TextBox1.Text = e.Start.ToShortDateString()
    
        End Sub

    ¿Que en lugar de la primera fecha seleccionada deseas mostrar la última fecha seleccionada?

        TextBox1.Text = e.End.ToShortDateString()

    Pero debes de tener en cuenta que si tomas el valor de la fecha existente en el control TextBox, éste será un valor ALFANUMÉRICO, que aunque parezca una fecha, no lo es, por tanto, si los valores que deseas buscar en tu base de datos son valores de fecha/hora válidos, tendrías que convertir el valor alfanumérico en un valor de fecha y hora correcto.

    Cuando desees realizar la búsqueda, el valor alfanumérico lo tendrías que convertir a DateTime de la siguiente manera:

            Dim fecha As DateTime
            Dim bln As Boolean = DateTime.TryParse(TextBox1.Text, fecha)
    
            If (bln) Then
                MessageBox.Show("Es un valor de fecha y hora válido.", fecha.ToShortDateString())
            Else
                MessageBox.Show("En el control TextBox no hay escrito un valor de fecha y hora válido.")
            End If
    

    En la variable fecha tienes el valor DateTime válido correspondiente con el valor alfanumérico escrito en el control TextBox1.

    Un saludo


    Enrique Martínez Montejo
    [MS MVP - Visual Studio y Tecnologías de Desarrollo]

    Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.

    Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.

    Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción
    Option Strict.


    miércoles, 20 de abril de 2016 11:24
    Moderador
  • Muchas gracias por la aportación de como convertir a un dato a tipo fecha/hora ya que he tenido muchos problemas con eso, Muchas Gracias y Saludos
    miércoles, 20 de abril de 2016 12:22