I like to open an ADODB.Recordset and then use the
Range.CopyFromRecordset(rs) method.
If you look up the help info on CopyFromRecordset, it's rather flexible. You
might find the following article useful:
http://www.mvps.org/access/modules/mdl0035.htm