One of possible solutions :

```
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('Select * from motors where ');
if copy(AnsiUpperCase(ComboBox1.text),1,3) <> 'ANY' then
begin
SQL.Add('Make = :p1');
Parameters.Parambyname('p1').value := ComboBox1.text;
end;
if copy(AnsiUpperCase(ComboBox2.text),1,3) <> 'ANY' then
begin
if pos('where', SQL.Text) = 0 then SQL.Add(' where Model like :p2')
else SQL.Add(' and Model like :p2');
Parameters.Parambyname('p2').value := ComboBox2.text + '%';
end;
if copy(AnsiUpperCase(ComboBox3.text),1,3) <> 'ANY' then //supposing price is string !!
begin
if pos('where', SQL.Text) = 0 then SQL.Add(' where Price like :p3')
else SQL.Add(' and Price like :p3');
Parameters.Parambyname('p3').value := ComboBox3.text + '%';
end;
if copy(AnsiUpperCase(ComboBox4.text),1,3) <> 'ANY' then
begin
if pos('where', SQL.Text) = 0 then SQL.Add(' where left(postcode,3) = :p4')
else SQL.Add(' and left(postcode,3) = :p4');
Parameters.Parambyname('p4').value := copy(ComboBox4.text,1,3);
end;
Open;
end;
```