Locate funciona con todos los tipos de campos.
fijate bien el campo que estas buscando si es realmente el que te interesa y si el valor ingresado existe realmente en tu tabla, ademas si la base de datos es la que piensas que es la que usas y fijate bien todo hehe porque es ilogico lo que expresas aquí. No deberías tener problemas con Locate si realmente existe el valor en el campo donde buscas y la tabla/query donde lo buscas.
Código:
if Tabla1.Locate('CAMPO', VARIABLE, [] ) then
MessageBox( Handle, PChar( '¡Tás!' ), PChar( 'Info...' ), MB_ICONWARNING) ;
Saludos y espero lo resuelvas