This documentation is archived and is not being maintained.

Range.CopyFromRecordset Method

Office 2007
Copies the contents of an ADO or DAO Recordset object onto a worksheet, beginning at the upper-left corner of the specified range. If the Recordset object contains fields with OLE objects in them, this method fails.


expression.CopyFromRecordset(Data, MaxRows, MaxColumns)

expression   A variable that represents a Range object.


NameRequired/OptionalData TypeDescription
DataRequiredVariantThe Recordset object to copy into the range.
MaxRowsOptionalVariantThe maximum number of records to copy onto the worksheet. If this argument is omitted, all the records in the Recordset object are copied.
MaxColumnsOptionalVariantThe maximum number of fields to copy onto the worksheet. If this argument is omitted, all the fields in the Recordset object are copied.

Return Value


Copying begins at the current row of the Recordset object. After copying is completed, the EOF property of the Recordset object is True.


This example copies the field names from a DAO Recordset object into the first row of a worksheet and formats the names as bold. The example then copies the recordset onto the worksheet, beginning at cell A2.

Visual Basic for Applications
For iCols = 0 to rs.Fields.Count - 1
    ws.Cells(1, iCols + 1).Value = rs.Fields(iCols).Name
ws.Range(ws.Cells(1, 1),  _
    ws.Cells(1, rs.Fields.Count)).Font.Bold = True
ws.Range("A2").CopyFromRecordset rs