Actualizar listbox dependiendo de una Fecha

Tengo un list box el cual necesito actualizarlo dependiendo de una fecha, la fecha la tomo de un control Data Time Picker, tengo creada la siguiente consulta la cual la asigno al Origen de la Fila del listbox pero no se actualiza el listbox.

---------------------------------------------------------------------------------------------------------------------------------------------------------------
PARAMETERS [Formularios]![F_ActualizaFirmas]![DTP_Fecha] Text (255);
SELECT T_ProgUnid.Factura, T_ProgUnid.Firmas
FROM T_ProgUnid
WHERE (((T_ProgUnid.Fecha)=[Formularios].[F_ActualizaFirmas].[DTP_Fecha]));

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Lo he intentado por código pero tampoco puedo lograr que me actualice la información en mi listbox

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Qry = "SELECT T_ProgUnid.Factura, T_ProgUnid.Fecha FROM T_ProgUnidad WHERE T_ProgUnid.Fecha = '#" & Me.Lst_Factura.Value & "#'"
    Me.Lst_Factura.RowSourceType = "Table/Query"
    Me.Lst_Factura.RowSource = Qry
Me.Lst_Factura. Requery

----------------------------------------------------------------------------------------------------------------------------------------------------------------

¿Qué me hace falta o estoy haciendo mal?.

2 respuestas

Respuesta

David: Sin llegar a analizar la Qry, en la Consulta que tienes, veo que el parámetro lo declaras como texto. ¿Has probado cambiándolo a Fecha? Mis saludos >> Jacinto

Hola Jacinto,

He realizado el cambio que me sugieres pero continuo sin poder cargar mi listbox

----------------------------------------------------------------------------------------------------------------------------------------

PARAMETERS [Formularios]![F_ActualizaFirmas]![DTP_Fecha] DateTime;

----------------------------------------------------------------------------------------------------------------------------------------

Encontré un detalle con mi Qry, en la condición no estaba haciendo referencia al control Date Time, lo he corregido pero tampoco se carga mi listbox

----------------------------------------------------------------------------------------------------------------------------------------

Qry = "SELECT T_ProgUnid.Factura, T_ProgUnid.Fecha FROM T_ProgUnidad WHERE T_ProgUnid.Fecha = '#" & Me.DTP_Fecha & "#'"

David: Para asegurarte que el Criterio que te devuelve la Fecha sea correcto haz lo siguiente.

Da nombre a una variable que le vamos a llamar CriterioFecha

Dim CriterioFecha As String

CriterioFecha = "Fecha =#" & Format(Me.DTP_Fecha, "mm/dd/yyyy") & "#"

Qry = "SELECT T_ProgUnid.Factura, T_ProgUnid.Fecha FROM T_ProgUnidad WHERE “ & CriterioFecha

Me.Lst_Factura.RowSource = Qry
Me.Lst_Factura. Requery

Si copias y pegas éste código es posible que tengas que sustituir alguna comilla, porque las escritas aquí, no coinciden con las del Editor de VBA.

Y el Campo de la Tabla que tienes como Fecha, si puedes cambialo por FechaAlgo, aunque sea FechaD. Ya me contarás. Mis saludos >> Jacinto

¡Gracias! 
Pues no logro cargar el listbox, la única forma como se carga información es con la consulta de la siguiente forma, pero la condición fecha no es variable.

SELECT T_ProgUnid.Factura, T_ProgUnid.Firmas
FROM T_ProgUnid
WHERE T_ProgUnid.Fecha=#05/11/2017#;

David: Tienes una forma simple de comprobar el contenido de la variable CriterioFecha:

Pones un punto de interrupción en Qry. Ejecuta el código y pasa el Mouse por encima de CriterioFecha y ves que pasa. Un saludo >> Jacinto

Respuesta

Convierte la fecha a numero en ambos casos, sin hora porque sino daría decimal

Conviértelo a "doble", un día corresponde a una unidad
dblFecha=Cdbl(TuFecha) 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas