2

My code, running in MS Access 2010:

Sub test()
    Dim xl as Object
    set xl = CreateObject("Excel.Application")
End Sub

For whatever reason I am getting the error

ActiveX component can't create object.

I don't know why -- I go to Tools -> References and I even add the Microsoft Excel library, but still nothing.

user8838318
  • 21
  • 1
  • 1
  • 3
  • 1
    Did you try any of the solutions posted here https://stackoverflow.com/questions/656934/activex-component-cant-create-object – Bassie Oct 26 '17 at 15:36
  • I don't think any of those solutions apply to this specific scenario -- this code works from the MS Access .mdb databases but not the newer .accdb ones. – user8838318 Oct 26 '17 at 15:38
  • Can you do `Dim xl As New Excel.Application`? – Erik A Oct 26 '17 at 15:38
  • @ErikvonAsmuth Yes but that's only because I went back and included the reference (Early binding I believe), the late binding is not working though as per the original post – user8838318 Oct 26 '17 at 15:39
  • The code works fine from .accdb database (used 2013 access) – Pankaj Jaju Oct 26 '17 at 15:41
  • I use that method all the time and it is late binding - it definitely works in Access 2010 . Does it compile? – Minty Oct 26 '17 at 16:05
  • I'd reread that link shared by Bassie. I think some of them are applicable to your situation (you need to register the right DLL, though). Another option is simply reinstalling Office. It should just work, and it should not matter if you're using an .mdb or an .accdb file. – Erik A Oct 26 '17 at 16:11

1 Answers1

3

Sometimes creating objects and not releasing them when you're finished can get things fouled up. Check your Task Manager and see if there are multiple "excel.exe" tasks running. Also note by default when they are created, they do not become visible unless you set the property after instantiating the object variable.

Sometimes rebooting the PC and trying this first will work. If it works after a fresh reboot, then stops working, something's not getting released properly.

Gordon Prince
  • 142
  • 2
  • 9