I think your recordset is returning too many results... instead of:
FROM tbl_posts p, horses h, tbl_directorylistings d
IT should probably be something like:
FROM tbl_posts p INNER JOIN horses h ON h.horseID= p.horseID INNER JOIN tbl_directorylistings d ON d.horseID = p.horseID