Because Access doesn't support derived tables such as
Select a,b,c From (Select * From tbl Where ...)
You need to do this in two steps. First define a query like this
SELECT A.Num AS First, B.Num AS Second
FROM tbl AS A, tbl AS B
WHERE A.Num <= B.Num
AND NOT EXISTS (Select * From tbl As X Where X.Num = B.Num + 1)
AND NOT EXISTS (Select * From tbl As X Where X.Num = A.Num - 1);
And Save it as "Ranges"
Then define another query based on that one like this
SELECT A.First AS StartRange, MIN(A.Second) AS EndRange, (A.First & "-" & MIN(A.Second)) As [Range]
FROM Ranges AS A
GROUP BY A.First;