Hola de nuevo,
seguro que te devuelve registros el Query? Quizás el campo al que intentas acceder tiene algún evento asociado que hace que se vuelve loco?
Has probado a usar .AsString, o .AsInteger (según el tipo) en lugar de .Value? Recuerda que Value, al ser usado desde TField, que es lo que devuelve FieldByName, devuelve un tipo Variant.
No sé qué más decirte...