Saltar al contenido

Ayuda para hacer consulta de fechas de Excel a Access


Recommended Posts

publicado

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.

publicado

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.

publicado

hola 

tiene razón mejor adjunto el archivo para que lo puedan observar

https://mega.nz/file/4FBQgCpa#VrXomOq-yDOXvQjLAU6HozVO21MwEPUOsNQ1lyHg7cI

Saludos gracias por la ayuda

macro.zip

publicado

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.

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.