I'm not sure that a loop is really what you want, but we need more information to be totally sure as to what you're wanting to get in your final data result(s).
For isntance, WHY is it that you want to return the zip codes in pairs?
I guess, basically, what I want to know is - in the end, what/how are you wanting to return? In other words, are you spitting the data out to a user form, or to a report of some sort, or a query that gets exported out to an Excel worksheet, or what?
Generally speaking, if you can do the same thing in a SQL statement as you can in a Recordset loop via VBA, or any VBA loop, then it is just simply going to run faster. I know I've heard and/or read the whys on that, but I can't tell you right off hand at this particular moment.