Ayuda con macro con filtro de fecha para buscar en base de datos oracle

Hola!
Tengo un problema con la siguiente macro en Excel.
El problema es que debo buscar información en una base de datos Oracle utilizando como filtro la fecha y la hora de un día concreto del año.
Yo obtengo el día utilizando un formulario y este valor se lo paso a la macro que previamente ha sido diseñada con MSQuery para ver el código necesario.
El problema me ha surgido cuando trato de introducir el parámetro Día, que contiene la fecha deseada por el usuario, en mi código SQL.
He probado con " & Día & " pero no funciona y no tengo ni idea de como hacer que la fecha solicitada sea incluida de modo correcto en mi consulta.
¿Alguna idea? Gracias de antemano, cualquier consejo será de agradecer, David.
Sub Busqueda(Dia As Date)
'
' Busqueda Macro
' Macro grabada el 04/07/2005 por s602043
'
'
With ActiveSheet.QueryTables.Add(Connection:= _
"ODBC;DSN=****;UID=SMP;PWD=***;SERVER=*****;", Destination:=Range( _
"A7"))
.CommandText = Array( _
"SELECT T_BLOC_ARRET.I_ZON_NUMERO, T_BLOC_ARRET.C_BA__DATE_DE_DEBUT, T_BLOC_ARRET.C_BAP_LIBELLE_ARRET, T_POSTE_ARCHIVE.I_HPO_DATE" & Chr(13) & "" & Chr(10) & "FROM SMP.T_BLOC_ARRET T_BLOC_ARRET, SMP.T_POSTE_ARCHIVE T_POSTE_ARCHIV" _
, _
"E" & Chr(13) & "" & Chr(10) & "WHERE T_BLOC_ARRET.I_HPO_NUMERO = T_POSTE_ARCHIVE.I_HPO_NUMERO AND T_BLOC_ARRET.I_ZON_NUMERO = T_POSTE_ARCHIVE.I_ZON_NUMERO AND [COLOR=DarkRed]T_BLOC_ARRET.C_BA__DATE_DE_DEBUT > {ts '2005-07-11 09:26:24'}[/COLOR] AND ((T_BLOC_ARRET.I_ZON_NUMERO=1002))")
.Name = "*****"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
End Sub

1 respuesta

Respuesta
1
¿Cómo va todo? Te respondí una pregunta una vez, y aún tengo un e-mail pendiente contigo, pero créeme que ando muy mal de tiempo. Bueno, veo que sigues atascado en el tema de la fecha, te voy a dar algunas indicaciones que espero te sirvan: lo primero que tienes que tener cuidado es con el formato de la fecha: es posible que el código necesite un formato tipo mes-día-año, o por lo que veo en tu código año-día-mes (o año-mes-día) mientras que nosotros estamos acostumbrados a un tipo día-mes-año. Si ese es el problema, a la variable día debes darle el formato que sea preciso, para que luego la macro lo pueda entender. Otro problema bastante común son los signos de concatenación, y me explico: si el código que ha creado la macro es " > {ts '2005-07-11 09:26:24'}", al cambiar la fecha por la variable día (no olvides haber dado previamente un formato de fecha adecuado), el código quedaría " > {ts '" & día & "'}" (fíjate en las dobles comillas, y en el símbolo de concatenación &.
En fin.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas