No he trabajado con Access 2000, pero me da la impresion que la comparacion de strings que estás haciendo no tiene mucha lógica, ya que las fechas y los string tienen diferente cardinalidad (ordenacion). Normalmente suelo usar parametros para comparaciones de fecha, para evitar diferencias en el formato que use la base de datos instalada en el cliente:
Código:
with MiQry do begin
Sql.Clear;
Sql.Add(' SELECT peci_c.peci_anio, peci_c.peci_numero ');
Sql.Add(' FROM sil_periodos_cierre peci_c ' );
Sql.Add('WHERE peci_c.peci_tipo = ''CON'' ');
Sql.Add(' AND peci_c.peci_fecha_inicio <= :Fec1 ');
Sql.Add(' AND peci_c.peci_fecha_fin >= :Fec2 ');
ParamByName('Fec1').AsDateTime := StrToDate('19/07/2004');
ParamByName('Fec2').AsDateTime := StrToDate('19/07/2004');
Open;
end;
Según la consulta que has enviado saldrían todos los registros en cuyo periodo esté contenida la fecha 19 de julio del 2004, independientemente del año en que empiecen o terminen.
Saludos.