none
TOMAR UNA FECHA DE ACCESS Y COMPARARLA CON LA FECHA DEL SISTEMA RRS feed

  • Pregunta

  • COMO PUEDO TOMAR UNA FECHA DE ACCESS Y COMPARAR CON LA FECHA ACTUAL DEL SISTEMA?

    tengo este codigo pero no me funciona

    conexion.open()

    Dim sql1 = "SELECT fechaentrada from registros"
               dim fechai = CDate(cmd.ExecuteScalar)
                dim fechaf = DateString
                If fechai = fechaf Then
                    MessageBox.Show("ES EL MISMO DIA")
                Else
                    MessageBox.Show("ES DIFERENTE DIA")
                    MessageBox.Show("FECHA INICIAL" + fechai + "FECHA FINAL" + fechaf)
                End If


                conexion.Close()

    si los dias son diferentes como calculo cuantos dias hay de diferencia?

    • Editado felipeagm sábado, 31 de julio de 2010 15:16 complemento
    sábado, 31 de julio de 2010 15:12

Respuestas

  • hola

    prueba algo como esto

     

    conexion.open()

    Dim sql1 = "SELECT fechaentrada from registros"
    dim fechai As DateTime = CDate(cmd.ExecuteScalar())

    dim fechaf As DateTime = DateTime.Now.Date

    If fechai.Date = fechaf Then
        MessageBox.Show("ES EL MISMO DIA")
    Else
        MessageBox.Show("ES DIFERENTE DIA")
        MessageBox.Show("FECHA INICIAL" + fechai + "FECHA FINAL" + fechaf)
    End If

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta felipeagm sábado, 31 de julio de 2010 22:31
    sábado, 31 de julio de 2010 15:18

Todas las respuestas

  • hola

    prueba algo como esto

     

    conexion.open()

    Dim sql1 = "SELECT fechaentrada from registros"
    dim fechai As DateTime = CDate(cmd.ExecuteScalar())

    dim fechaf As DateTime = DateTime.Now.Date

    If fechai.Date = fechaf Then
        MessageBox.Show("ES EL MISMO DIA")
    Else
        MessageBox.Show("ES DIFERENTE DIA")
        MessageBox.Show("FECHA INICIAL" + fechai + "FECHA FINAL" + fechaf)
    End If

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta felipeagm sábado, 31 de julio de 2010 22:31
    sábado, 31 de julio de 2010 15:18
  • "felipeagm" escribió:

    >
    > tengo este codigo pero no me funciona
    >
    > Dim sql1 = "SELECT fechaentrada from registros"
    >
    > dim fechai = CDate(cmd.ExecuteScalar)

    Ignoro la estructura de tu tabla Registros. Pero como estás usando el método ExecuteScalar con la consulta SQL de selección que  nos has indicado, me parece a mí que lo normal es que no te funcione.

    Si la consulta devuelve varios registros, el método ExecuteScalar te va a devolver siempre un único registro, que se corresponderá con el primer registro de la tabla Registros.

    Si tu intención es devolver un único registro, lo normal es que añadas una cláusula WHERE a la consulta SQL de selección, de tal manera que la consulta devuelva un único registro o ninguno, si tienes intención de utilizar el método ExecuteScalar, claro está.

    > COMO PUEDO TOMAR UNA FECHA DE ACCESS Y COMPARAR CON LA FECHA ACTUAL DEL SISTEMA?

    Suponiendo que la fecha obtenida de la base de Access está en formato DateTime válido, la compararías con la fecha actual de la siguiente manera:

            ' Fecha obtenida de la base de Access
            Dim fechaEntrada As DateTime = ObtenerFecha()

            ' Fecha actual
            Dim fechaActual As DateTime = DateTime.Now.Date

            If (fechaEntrada = fechaActual) Then
                MessageBox.Show("Las fechas son iguales.")

            ElseIf (fechaEntrada > fechaActual) Then
                MessageBox.Show("La fecha de entrada es mayor que la fecha actual.")

            Else
                MessageBox.Show("La fecha de entrada es menor que la fecha actual.")
            End If

    Se comprende que en la tabla Registros, el campo FechaEntrada sólo guarda la parte de la fecha, es decir, no guarda información de la hora, porque de ser así, entonces tomarías la fecha actual de la siguiente manera:

            Dim fechaActual As DateTime = DateTime.Now

    Pero insisto. Lo que no me cuadra es la sintaxis que utiliza tu consulta SQL de selección para ser ejecutada con el método ExcecuteScaler, porque únicamente obtendrás el valor del campo FechaEntrada correspondiente al primer registro de la tabla Registros. Si deseas obtener todos los registros, tendrás que utilizar el método ExecuteReader, con el que obtendrías un objeto OleDbDataReader.


    Enrique Martínez [MS MVP - VB]
    sábado, 31 de julio de 2010 16:53
    Moderador