[AccessD] Excel 2013 CopyFromRecordset "Interface not registered" error when copying Ac2013 DAO recordset to a range

Bill Benson bensonforums at gmail.com
Wed Nov 29 17:36:25 CST 2017


I am looking far and wide for anyone who may have an idea what governs the
CopyFromRecordset method of an Excel range, and can help determine where
automation might be getting hung up when using this in connection with a
DAO recordset.

The precise error is

"Microsoft Visual Basic

    Run-time error '-2147467262 (80004002)'"

    Interface not registered "

The only time I get this error is when we are using a Microsoft Access
database and I have written code to create a DAO recordset and want to
populate an Excel range using the CopyFromRecordset method.

This below code works in all environments EXCEPT the  Virtual Desktop
Infrastructure
<http://www.microsoft.com/virtualization/solution-product-vdi.mspx> (VDI).
Our tech support performed a MS Office Repair on the image but this did not
resolve the error. Experimenting, revealed that the same procedure modified
to use an ADO recordset works, but not with a DAO recordset.

Sub TestDAORecordset()

Dim CurDB As DAO.Database

Dim Rst As DAO.Recordset

Dim EX As Excel.Application

Dim iField As Long, iRecords As Long

Dim WB As Excel.Workbook

Set EX = New Excel.Application

EX.Visible = True

Set WB = EX.Workbooks.Add

Set CurDB = CurrentDb

Set Rst = CurDB.OpenRecordset("Select * from [PDR TRACKING]")

With WB.Worksheets(1)

    For iField = 0 To Rst.Fields.Count - 1

        .Cells(1, iField + 1).Value = "'" & Rst.Fields(iField).Name

    Next

    Rst.MoveLast

    iRecords = Rst.RecordCount

    Rst.MoveFirst

    'RUNTIME ERROR ON NEXT LINE

    .Cells(2, 1).Resize(iRecords, Rst.Fields.Count).CopyFromRecordset Rst

End With



End Sub


More information about the AccessD mailing list