The code raskew pointed to was way overkill (as he mentioned). All you're trying to do is get record 1 to record X. The TOP command does just that. It will get record 1 to record X, and X is your variable.
SELECT TOP 10 * FROM TableName -- Gets first 10 records
SELECT TOP 14 * FROM TableName -- Gets first 14 records
SELECT TOP X * FROM TableName -- Gets first X records, as noted in previous post
IIRC the Top predicate will not take a variable in this manner. I believe it is necessary to put the entire string together first and then DoCmd.RunSQL sqlString.