Hombre,
lo normal es poner varios edits para que el usuario pueda buscar por los campos más importantes. Luego montas la where de la query.
Código Delphi
[-]Si editNombre <>'' then
where := where+' campoNombre = '+ quotedStr(editNombre);
Si editDNI <>'' then
Si where <> '' then where:= where + 'AND '
where := where+' campoDNI = '+ quotedStr(editDNI);
...
Y así sucesivamente
Query.SQL.Add(where);
Query Open;
Otra opción es poner un combo con los campos , seleccionar el campo por el que se quiere buscar y con un edit adicional para meter un valor volver a montar la where de la query.
Código Delphi
[-]where := 'where '+Combo.Text+ ' = '+ QueotedStr(Edit.Text)
Query.SQL.Add(where);
Query Open;
Y si quieres usar un sólo edit para varios campos, lo comentado,
SELECT * FROM TABLA WHERE CAMPO1 = '+QuotedStr(Edit.Text) +' OR CAMPO2 ='+QuotedStr(Edit.Text);
Cuidado con los valores nulos, si permites que los campos por los que buscas tengan valores nulos, tendrás que contemplarlo en la condición de la where.
Prueba y nos dices.
Un saludo