Hola
Vamos a resolver esto paso a paso:
1- Tienes que filtrar o un dato (interger) o un dato (string) en el mismo adotable.
2- Tratamos de usar OR pero se niega.

Entonces lo podemos atacar por otro lado, definiendo el filtro dependiendo de si es uno u otro:
Primero creamos una variable global, esta la colocamos publica:
Esta variable nos servira para que guarde simplemente un numero.
Ahora nos colocaremos en el evento onKeyPress del edit (edtBuscar) que es el que da el dato al filtro.
En ese evento colocamos esto:
Código Delphi
[-]
if (Key in ['0'..'9',#8]) then
begin
Tipo:= 1;
end
else
Tipo:= 0;
Esto lo que hace es simplemente indicar si escribimos numeros o letras, de ser numeros el valor de Tipo sera 1 de lo contrario 0.
Bien ahora si hacemos el filtro:
Código Delphi
[-]
procedure TfrmTicket.btnBuscarClick(Sender: TObject);
var
Filtro : String;
begin
ADOTableTicket.Filtered := False;
if edtBuscar.Text <> '' then begin
If Tipo = 1 then begin Filtro := 'TicketID Like '+edtBuscar.Text;
end;
If Tipo = 0 then begin Filtro := 'Usuario Like '''+ edtBuscar.Text + '*''';
end;
ADOTableTicket.Filter := Filtro; ADOTableTicket.Filtered := True
End;
end;
Bien, creo que es un codigo mas claro.
Primero definimos si queremos filtrar por numeros o letras.
Segundo con el valor generado en la variable hacemos o un filtro u otro.
Espero que si no te sirve por lo menos ayas aprendido algo mas, aunque sea sencillo.
Saludos