Yep, you have a two dim array created from "SELECT HorseID FROM tbHorse WHERE ... " etc
So the array has:
dimension 1=Fields (there is 1 field, HorseID, so the ubound for that dimension is 0)
dimension 2=Rows (there are .recordcount rows, so the ubound for that dimension is recordcount - 1)
The upper bound for dimension 1 is Ubound(arrayname, 1) or just Ubound(arrayname)
The upper bound for dimension 2 is Ubound(arrayname, 2)
So you have no problem, just do what Docman said and check the second dimension instead of the first.
Jack