La Web del Programador: Comunidad de Programadores
 
    Pregunta:  1405 - FILTRAR O BUSCAR UNA FECHA EN VC++ 6.0
Autor:  Willser F. González C.
Tengo un CDaoRecordset que comunica con una tabla de Acces(r), la cual tiene un campo tipo Fecha. Cómo se puede hacer una búsqueda o un filtro de los registros de la tabla que coincidan con una fecha dada ???. Por ejemplo:

CDaoRecorset cdrsClntes; // Tabla Clientes.

COleDateTime codtFcha = COleDateTime::GetCurrentTime(); // Fecha a buscar.

1. Filtrar los registros donde el campo [Fecha] coincida con la fecha [codtFcha]. Podría ser:

cdrsClntes.m_strFilter.Format("[Fecha] = ´%s´",
codtFcha.Format());

cdrsClntes.Requery();

Hasta ahí todo parece estar bien, pero en tiempo de ejecución un mensaje dice que la consulta no es válida. Cómo se debe comparar ???.

Gracias por su colaboración.

  Respuesta:  Oscar García Herrera
Para filtrar fechas en una consulta con CDaoRecordset´s existen varias formas:

1. CClienteSet *pSet;
pSet = new (CClienteSet);
pSet->m_strFilter = "FechaIngreso >= #01/01/2000# AND FechaIngreso <= #30/03/2000#";
pSet->m_strSort = "FechaIngreso"

try
pSet->Open();
catch{.....}

2. CClienteSet *pSet;
CString strQuery;

pSet = new(CClienteSet);
strQuery.Format("SELECT * FROM CLIENTES WHERE FECHAINGRESO between 01/02/2000 AND 30/03/2000 ORDER BY fechaIngreso ASC");
pSet->Open(dbDynaset,strQuery);

Estas son solo dos formas de filtrar fechas, espero te funcione.

Atte: Ing. Oscar García Herrera