Tienes razón, normalmente no se le puede pasar en la cláusula FROM un parámetro, es mejor usar constantes y formatear la sql.
Código Delphi
[-]
const strSqlGeneral = 'select %s from %s where %s = %s';
...
query1.sql.text := Format(strSqlGeneral, [ '*', 'NombreTabla', 'NombreCampo', QuotedStr('valorDelCampo')]);
query1.sql.Add(' and fecha between :fini and :ffin');
query1.parameteres.parambyname('fini').Value := datetimepicker1.date;
query1.parameteres.parambyname('ffin').Value := datetimepicker2.date;
Edito: Aunque esto es totalmente compatible con parámetros si se quiere.
Saludos