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
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 de villaju
1