Jump to content

Ayuda para hacer consulta de fechas de Excel a Access


Go to solution Solved by avalencia,

Recommended Posts

Buenas

Estoy intentando crear un macro para generar un reporte entre periodos que están en las celdas " D5 " y  " F5 " de una tabla de Access, pero no logro que funcione. acudo a ustedes para que me ayuden a definir cual sera el error.

Formato de la fecha en Access "29/07/2020 10:48:51" 

Application.ScreenUpdating = True

NumId = (Format(Worksheets("usuarioF1").Range("D5").Value, "DD-MMM-YYYY") & "# ")
NumIh = (Format(Worksheets("usuarioF1").Range("F5").Value, "DD-MMM-YYYY") & "# ")
Set Cnn = New ADODB.Connection
With Cnn

    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "\01.Datos\Registro.accdb"
    .Open

End With

Set Rs = New ADODB.Recordset

Sql = "SELECT nombre, cedula, riesgo, Nombre_Patrono, fecha1 FROM f_adeudos WHERE fecha => '" & NumId & "' and fecha => '" & NumIh & "' ORDER BY fecha1"

Rs.Open Sql, Cnn

Sheets("reporte").Select
Range("B7:E100").ClearContents
Range("B7").CopyFromRecordset Rs
Rs.Close

 

Muchas gracias por toda la ayuda.

Link to post
Share on other sites

Hola

Para registros entre fechas debes usar "Between", algo así:

Sql = "SELECT nombre, cedula, riesgo, Nombre_Patrono, fecha1 FROM f_adeudos WHERE fecha  Between '" & NumId & "' and fecha '" & NumIh & "' ORDER BY fecha1"

Ojo, digo "algo así" ya que no tengo tus datos para probar y en realidad lo de las fechas tiene algunos detalles relacionados a la configuración regional y a los formato y tipos de datos. Prueba y comentas.

Link to post
Share on other sites
  • Solution

Hola, dada la configuración de tus datos, lo ideal es que uses lo siguiente:

Sub f_Actualizar_7()

Dim Cnn As New ADODB.Connection
Dim Rs As New ADODB.Recordset
Dim Sql As String, Datos As Variant
Dim NumId As Date, numih As Date

NumId = Format(Range("D3").Value, "mm/dd/yyyy")
numih = Format(Range("F3").Value, "mm/dd/yyyy hh:mm:ss")

 
Set Cnn = New ADODB.Connection
With Cnn
    .Provider = "Microsoft.ACE.OLEDB.12.0"
    .ConnectionString = "Data Source=" & ThisWorkbook.Path & "\Registro.accdb"
    .Open
End With

Set Rs = New ADODB.Recordset

Sql = "SELECT nombre, cedula, riesgo, Nombre_Patrono, fecha1 FROM f_adeudos WHERE fecha1 Between #" & NumId & "# and #" & numih & "# ORDER BY fecha1"

Rs.Open Sql, Cnn

Sheets("usuarioF7").Select
Range("B7:E100").ClearContents
Range("B7").CopyFromRecordset Rs

Rs.Close
Cnn.Close

Set Rs = Nothing
Set cn = Nothing

End Sub

Ojo que necesariamente debes tener algo así en F3: 29/05/2020  23:59:00

Saludos.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

Important Information

Privacy Policy