Buen día, vamos por paso.
1º Quiero saber si la consulta funciona, favor probar en el diseñador de consulta SQL de Access, ejecutarlo y ver resultados.
2º Podriamos ver de nuevo tu sintaxis en Delphi.
3º En tu form poner 2 componentes TDateTimePicker que se llamen fecha1 y fecha2, que vamos a pasar como parámetro a tu consulta.
4º Luego, reemplazar tu código actual por el siguiente, ya que veo en el código anterior que las variables que se pasan a la SQL no son fechas, son enteros pero no fecha de la forma '01/09/2012' y el SQL te lanza el error ya que espera una fecha válida.
Código SQL
[-]var
vsql : string;
begin
vsql := ' SELECT C.IDCARRO, C.NOCARRO, C.INDICECONS, SUM(DHR.KMRECORRIDO), SUM(CO.CONSUMO) ';
vsql := vsql + ' FROM CARRO C INNER JOIN HOJARUTA HR ON HR.IDCARRO = C.IDCARRO ';
vsql := vsql + ' INNER JOIN DESCHOJARUTA DHR ON DHR.IDHOJARUTA = HR.IDHOJARUTA ';
vsql := vsql + ' INNER JOIN CONSUMO CO ON CO.IDCARRO = C.IDCARRO ';
vsql := vsql + ' WHERE CO.FECHA BETWEEN :FECHA1 AND :FECHA2 ';
vsql := vsql + ' GROUP BY C.IDCARRO, C.NOCARRO, C.INDICECONS ';
vsql := vsql + ' ORDER BY C.IDCARRO ';
SQL.Close;
SQL.Clear;
SQL.Add(vsql);
Query.Params.Items[0].AsDate:=fecha1.Date;
Query.Params.Items[1].AsDate:=fecha2.Date;
SQL.Open;
end
Saludos.