Visual Basic.NET - ¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

 
Vista:
Imágen de perfil de Cristopher Alexis
Val: 37
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Cristopher Alexis (12 intervenciones) el 11/12/2020 21:05:31
Hola buenas tardes amigos...
Escribo para pedir apoyo sobre un problema que se me presento recientemente, pues deseo llenar un Datagridview unos valores en un rango de fechas determinadas de la Fecha 1 a la Fecha 2.

el problema viene al momento de ejecutar la consulta sql con la base de datos access y encuentra valores de fechas parecidas por ejemplo yo busco de la fecha 23/11/2020 al 28/11/2020, pero me trae también datos de otras fechas parecidas pero de distinto mes como muestro a continuación:

Prueba1

me esta trayendo datos del 28/10/2020

este es el codigo que estoy empleando para la consulta SQL en access.
1
2
3
Dim sqlGeneralSemana As String = "SELECT [Fechas] as [Fecha],[CodigoBarra] as [Codigo de barra],[NumeroIN] as [Numero interno],Nombre,Puesto,[HoraEntada] as [Entrada]," _
            & "[HoraSalidaComida] as [Salida a comer],[HoraEntradaComida] as [Entrada de comer],[HoraSalida] as [Salida],[HorasTotal] as [Horas trabajadas] FROM ConsultaEntradas2 " _
            & "where Fechas >= '" & Format(txtFecha1.Value.Date.ToString, "short date") & "' and Fechas <= '" & Format(txtFecha2.Value.Date.ToString, "short date") & "'"

aquí se ejecuta la consulta y se llena en grid
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
filtros(TblConsultarHoras, sqlGeneralSemana)
 
Sub filtros(ByRef objeto As DataGridView, _
                ByRef SQL As String)
 
        Adaptador = New OleDbDataAdapter
        Try
            Adaptador.SelectCommand = New OleDbCommand(SQL, conexion_)
            'Adaptador.Fill(tablaVR)
            TablasBase = New DataSet
            TablasBase.Tables.Add("TablaFilt")
            Adaptador.Fill(TablasBase.Tables("TablaFilt"))
            objeto.DataSource = TablasBase.Tables("TablaFilt")
 
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
 
    End Sub

tambien Probe con el Betwen pero me resulta lo mismo :(.
Aun no se mucho de sql, espero y me ayuden se los agradeceria muchisimo.

ya busque algunos metodos pero no encontre y no se me ocurre como :(.

espero su pronta ayuda de antemano muchas gracias :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Phil Rob (1554 intervenciones) el 11/12/2020 22:53:16
Hola,

Pregunta : en la frase Format(txtFecha1.Value.Date.ToString, "short date"), txtFecha1 es un TextBox ?

Si txtFecha1 es un TextBox, la consulta siguiente con BETWEEN debe funcionar :

1
2
3
4
5
6
Dim Fecha1 As Date = CType(txtFecha1.text, Date)
Dim Fecha2 As Date = CType(txtFecha2.text, Date)
 
Dim sqlGeneralSemana As String = "SELECT [Fechas] as [Fecha],[CodigoBarra] as [Codigo de barra],[NumeroIN] as [Numero interno],Nombre,Puesto,[HoraEntada] as [Entrada]," _
            & "[HoraSalidaComida] as [Salida a comer],[HoraEntradaComida] as [Entrada de comer],[HoraSalida] as [Salida],[HorasTotal] as [Horas trabajadas] FROM ConsultaEntradas2 " _
            & "where FORMAT(Fechas, 'dd/M/yyyy') BETWEEN '" & FORMAT(Fecha1, 'dd/M/yyyy') "' AND '" & FORMAT(Fecha2, 'dd/MM/yyyy') & "'"

El primero FORMAT es una función SQL y en el format, debe escribir dd/M/yyyy para 11/12/2020 y no dd/MM/yyyy.



...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Cristopher Alexis
Val: 37
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Cristopher Alexis (12 intervenciones) el 11/12/2020 23:12:23
Hola buenas tardes gracias por tu respuesta, pero no, no son texboxs son DateTimePicker para insertar fechas, como puede ver en la imagen que adjunte, no se si tenga algún impacto.

y una pregunta:
en esta parte: where FORMAT(Fechas, 'dd/M/yyyy') BETWEEN '" & FORMAT(Fecha1, 'dd/M/yyyy') "' AND '" & FORMAT(Fecha2, 'dd/MM/yyyy') & "'"

al darle fromato a Fecha2 llevaria una o dos "M" eso no entendi porque a Fecha1 le pones una "M" y al Fecha2 le pones 2 "M"

porque me siguen apareciendo fechas que no son :(

Prueba2

¡Gracias!..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Phil Rob (1554 intervenciones) el 11/12/2020 23:50:47
" ... al darle fromato a Fecha2 llevaria una o dos "M" eso no entendi porque a Fecha1 le pones una "M" y al Fecha2 le pones 2 "M" ... " es mi error ...
Tiens que escribir una "M" y no dos !

Si txtFecha1 y txtFecha2 están DateTimePicker, el código siguiente debería funcionar :
1
...  FORMAT(Fechas, 'dd/M/yyyy') BETWEEN '" & FORMAT(txtFecha1.Value.ToString, 'dd/M/yyyy') "' AND '" & FORMAT(txtFecha2.Value.ToString, 'dd/M/yyyy') & "'"

Buenas noches ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cristopher Alexis
Val: 37
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Cristopher Alexis (12 intervenciones) el 15/12/2020 20:16:09
Hola buenas tardes compañero, colega.

Lamentablemente probé y no me funciono no se si tengas algún otro método o una respuesta del porque me pasaría esto?
de antemano muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Phil Rob (1554 intervenciones) el 15/12/2020 20:57:57
Envia me foto de la pantalla con el esquema de la tabla en DB (con nombres de los campos y tipos).
También envia me foto de la tabla con alguna valores (quiero ver como están escritas las fechas y si están de tipo Date o String).
Miraré...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Cristopher Alexis
Val: 37
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Cristopher Alexis (12 intervenciones) el 17/12/2020 07:04:26
Hola buenas noches colega...

Antes que nada espero que te encuntres muy bien y agradezco infinitamente tu paciencia, interes y sabiduria a conmigo; pero ya solucione mi problema, o bueno eso es lo que parece.

El problema radicaba en que yo estaba haciendo una consulta de una conulta ya creada en access, pues por conveniencia habia creado una consulta con las herramientas de access para que siva como pre filtro y desde VB ya yo hacia la consulta por rango de fechas. ya analisando esto decidí hacer la consulta a la tabla principal y ya no a la tabla creada posteriormete y aplicar los filtro de los que se encarba de hacer la segunda tabla

no se si me explique...

Pues yo tengo una tabla principal y desde esa tabla yo habia creado anteriormente una Tabla-Consulta en access y a esta Tabla-Consulta yo le estaba haciendo la consulta desde vb entonces mejor le hice las consultas a la tabla principal. y asi fue como solucone mi conflicto y fue error mio, bueno no se a que se deba este bug pero ahora ya no me da ese fallo.

Nuevamente te agradezco infinitamente por tu tiempo y compacion, un saludo codo a codo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Phil Rob
Val: 3.353
Oro
Ha mantenido su posición en Visual Basic.NET (en relación al último mes)
Gráfica de Visual Basic.NET

¿Como hacer una consulta para un rango de fechas? en vb.net con sql y Access

Publicado por Phil Rob (1554 intervenciones) el 17/12/2020 08:58:35
Muchas gracias para las explicaciones.

Que tenga un buen día ...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar