Newsgroup: it.comp.appl.access
Titolo: errore 429 il componente ACTIVEX non e' in grado di creare l'oggetto

SALVE
 
ho una situazione in cui su un pc ho Access 2003
 
e excel 2016
 
in un modulo vba esporto 
 
 
    Dim xlApp   As Object   ' Oggetto EXCEL
    Dim oWkb    As Object   ' Oggetto WORKBOOK
 
    Dim x       As Integer
    Dim rs      As DAO.Recordset
 
    Exp2XLS = False
 
    ' APRE SE ESISTE GIA' UN'OGGETTO EXCEL
    Set xlApp = CreateObject("Excel.Application")
 
    Set oWkb = xlApp.Workbooks.Add()
 
 
 
 
cone access 2003 e 2010 tutto funziona
 
qui mi da' errore
    Set xlApp = CreateObject("Excel.Application")
 
errore 429 il componente ACTIVEX non e' in grado di creare l'oggetto
 
cosa posso fare?

Vai nel TASK Manager e dovresti vedere l'istanza di EXCEL non liberata, e purtroppo è associata all'istanza di Access che hai aperto...!
Ti dovrebbe bastare KILLARLA, e riprovare, tuttavia se capita questo è perchè non gestisci correttamente gli oggetti e rimangono appesi. 
 
P.S. questa cosa è FALSA, l'ho scritta io dal momento che il codice che esponi è il mio, è ovviamente un refuso... mai corretto:
 
  ' APRE SE ESISTE GIA' UN'OGGETTO EXCEL
    Set xlApp = CreateObject("Excel.Application") 
 
Per recuperare un'istanza del Server di Automaizone, nel casi sia aperta, si usa GETOBJECT, infatti di solito, si usa proprio per primo GETOBJECT, e si gestisce l'errore 429, che significa che non esiste l'istanza del Server(in questo caso Excel) quindi si usa CREATEOBJECT:
 
Function CreaIstanza()
    On Error Goto Err_Handler
    Dim xlApp   As Object   ' Oggetto EXCEL 
    set xlApp = GetObject(, "Excel.Application")
 
    ' Quì hai in tutti i casi l'oggetto [xlApp] valorizzato
 
    Exit Function
Err_Handler:
    Select case Err.Number
        Case 429:  Set xlApp = CreateObject("Excel.Application"):Resume Next
        Case Else
             MsgBox Err.Number & " " Err.Description
    End Select
End Function
 
@Alex


grazie ma non penso sia questo il problema
 
non c'e' nessuna istanza aperta
 
 
qui ho access 2003 e excel 2016
 
 
 
ho provato a installare anche la versione excel 2003 e tutto funziona.
 
 
non capisco cosa non quadra
 
 
tieno conto che ho fatto parecchie prove
con access 2003 e excel 2013 funziona
access 2010 e excel 2010 funziona
 


HO ANALIZZATO IL PC IN QUESTIONE
 
ho visto che office 2013 non ha la chiave di registro
 
excel.application
 
ma ha 
 
excel.application.15
 
 
 
ecco perche' 
   ' APRE SE ESISTE GIA' UN'OGGETTO EXCEL
    Set xlApp = CreateObject("Excel.Application") 
 
dava errore.
 
o modifico il codice vba con
 
    Set xlApp = CreateObject("Excel.Application.15")
 
o meglio 
 
esporto la chiave di registro 
Excel.application.15
 
e la rinomino in Excel.application e poi la importo

ecco la chiave di registro da controllare se c'e'
 
la chiave rinominata
''''''''''''''''''''''''''''''''''''''''''''''
Windows Registry Editor Version 5.00
 
[HKEY_CLASSES_ROOT\Excel.Application]
@="Microsoft Excel Application"
 
[HKEY_CLASSES_ROOT\Excel.Application\CLSID]
@="{00024500-0000-0000-C000-000000000046}"
''''''''''''''''''''''''''''''''''''''''''''''