Do you want all the fields of record or just the animal and the count?
If just the animal and count, do a GROUP BY (Totals). Apply criteria to the count of >=3 and include data range filter criteria.
If you want the complete record, a little harder to do.
A subquery is one way, review
http://allenbrowne.com/subquery-01.html
especially the example for Aggregation: Counts and totals
Another is use of domain aggregate function (DCount, DLookup, DAvg, etc) expression, something like:
SELECT * FROM tablename WHERE DCount("*","tablename","animalID=" & [animalID] & " AND datefield BETWEEN #" & [startdate] & "# AND #" & [enddate] & "#")>=3;