Программирование MS Excel
Программирование MS Excel / Советы /
Использование CopyFromRecordset, чтобы скопировать данные Recordset в лист киги Excel


   Вы можете использовать метод CopyFromRecordset объекта Range, чтобы легко скопировать данные Recordset в лист киги Excel. Этот изумительный метод копирует объект DAO Recordset в лист, начиная с верхнего левого угла выбранного диапазона. Вам даже не надо указывать размер области данных, размер диапазона будет вычислен автоматически. Как это делается:
  1. В Excel'е откройте редактор Visual Basic вставьте новый модуль.
  2. В меню Сервис (Tools) щелкните пункт Ссылки (References) и установите ссылку на самую новую библиотеку обхектов DAO на вашем компьютере (в MS Office 97 - версия 3.51)
  3. Вставьте следующую процедуру в модуль:
  4. Sub GetDataToSheet()
        Dim dbsDatabase As DAO.Database
        Dim rstRecords As DAO.Recordset
        Dim rngRannge As Excel.Range
        Dim strFilePath As String
        Dim iCols As Integer
        ' Save the location of the database.
        strFilePath = "C:\Program Files\Microsoft Office\" __
                    & "Office\Samples\Northwind.mdb"
        ' Create the Recordset object and specify a range.
        Set dbsDatabase = DBEngine(0).OpenDatabase(strFilePath)
        Set rstRecords = dbsDatabase.OpenRecordset("Orders")
        Set rngRange = Worksheets(1).Cells(2, 1)
    
        ' Use field names as worksheet column headers.
    
        For iCols = 0 To rstRecords.Fields.Count - 1
            Worksheets(1).Cells(1, iCols + 1).Value = __
            rstRecords.Fields(iCols).Name
        Next 
        ' Insert the data from the recordset into the Range object.
    
        rngRange.CopyFromRecordset rstRecords, 15
    
    
    ' Adjust the column widths to accommodate the data. 
    
        Worksheets(1).UsedRange.AutoFormat
    
    End Sub
    
  5. Расположите окно Excel и редактора Visual Basic таким образом, чтобы они были одновременно видны.
  6. Поместите курсор где-нибудь внутри процедуры и нажмите F5.


© design & content by Acidigital, 2001

Hosted by uCoz