Error: (429) Il componente ActiveX non è in grado di creare l'oggetto

Anonimo
2010-09-22T12:42:37+00:00

Devo dire che prima di chiedere il vostro aiuto ho sondato un pò Google per capirne un pò di più su questo errore ma pare che dipenda da fattori diversi di volta in volta.

Sto testando il mio progetto su più sistemi operativi prima di distribuirlo: su S.O Win7 con Access 2007 installato o db lanciato con comando Runtime tutto funziona.

Quando lo testo su un altro pc con S.O. Windows Xp Professional aggiornato con Access 2003 + Access Runtime 2007 installato quando clicco sul pulsante di chiusura del db mi dà l'errore in oggetto:

Error: (429) Il componente ActiveX non è in grado di creare l'oggetto

posto il codice che ho sul pulsante di chiusura perchè credo che la soluzione si debba trovare lì (funzione creata grazie all'aiuto di Giorgio):

Private Sub Exit_Click()

On Error GoTo Err_Exit_Click

Dim db As DAO.Database

    Dim NomeBE As String

    Dim Password

    Dim NomeFileIni As String

    Dim Buffer As String

    Dim LenResult As Long

    Dim td As DAO.TableDef

    Set db = CurrentDb

    Dim Percorso As String

    Dim AppBackup As New Access.Application

    If Dialog.Box("Uscire dal database ed effettuare il backup?", vbYesNo, "PUA") = 6 Then

    'Setta a true il flag che impedisce la chiusura del pannello comandi (con Pulsante Access e Alt+F4) e permette di chiudere il db

    Me!Permesso = True

    '-------Individuo il percorso del BE------'

    NomeFileIni = CurrentProject.path & "\Parametri.ini"

    Buffer = String$(2048, 32)

    'Leggo il Percorso del database BE dal file INI

    LenResult = OSGetPrivateProfileString("Path", "NomeBE", "", Buffer, Len(Buffer), NomeFileIni)

    If LenResult <> 0 Then

        NomeBE = Left(Buffer, LenResult)

        Percorso = Left(NomeBE, InStrRev(NomeBE, ""))

        Else

       Dialog.Box "File " & CurrentProject.path & "\Parametri.ini non configurato correttamente !!", vbCritical

       Dialog.Box "Verificare la configurazione del file Parametri.ini. Backup non eseguito", vbCritical + vbOKOnly, "Avviso"

       Application.Quit

       Exit Sub

    End If

        '------------Inizio fase di eliminazione copie Backup oltre i 5 giorni--------'

     Dim FileToDelete As String

    FileToDelete = Dir(CurrentProject.path & "\backup" & "??-??-??-PUA-BE.accdb")

    Do

      If FileToDelete = "" Then Exit Do

      If FileToDelete < Format(Date - 4, "yy-mm-dd-") Then

         Kill CurrentProject.path & "\backup" & FileToDelete

      End If

      FileToDelete = Dir()

    Loop

    '------------Fine fase di eliminazione copie Backup oltre i 5 giorni--------'

    '----------Inizio Fase di Backup BE tramite il database PUA-bck.accde-----------'

    'Apro il PUA-bck

    AppBackup.OpenCurrentDatabase CurrentProject.path & "\PUA-bck.accde"

    AppBackup.Visible = True

    'Apro la maschera1

    AppBackup.DoCmd.OpenForm "Maschera1"

    'Inserisco il nome del DbGestione nell'apposita casella testo

    AppBackup.Forms("Maschera1")!txtNomeDbGestione = NomeBE

    'Inserisco il nome del file di destinazione

    'Cambiare questa riga a seconda delle necessità

    AppBackup.Forms("Maschera1")!txtNomeDbBackup = CurrentProject.path & "\backup" & Format(Date, "yy-mm-dd-") & "PUA-BE.accdb"

    'Start timer - esegue la copia

    AppBackup.Forms("Maschera1").TimerInterval = 50

     'Libero la memoria dall'istanza del PUA-bck

    Set AppBackup = Nothing

    'Chiudo l'applicazione del FE

    Application.Quit

    '------------Fine fase di backup-----------'

Else

End If

Exit_Exit_Click:

    Exit Sub

Err_Exit_Click:

   If Err.Number = 7866 Then

   Dialog.Box "Il file PUA-bck per il backup del database risulta mancante. Contattare l'assistenza", vbCritical + vbOKOnly, "Avviso"

   Application.Quit

   Else

   Dialog.Box "Error: (" & Err.Number & ") " & Err.Description, vbCritical

   Application.Quit

   End If

   Resume Exit_Exit_Click

End Sub

Il poblema potrebbe essere nell'esecuzione del backup?Non è per caso che con la versione Runtime devo sostituire il PUA-bck (database per backup) in versione mdb invece che accde?

Attendo vostre opinioni e vi ringrazio

Saluti

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2010-09-23T16:03:32+00:00

Avatar77 wrote:

Ho effettuato le modifiche come me le hai suggerite Karl, ma il

problema sul pc con Win Xp Professional senza access 2007 rimane!

Mi compare sempre il messaggio di errore in oggetto e non mi crea il

backup...

Altre idee?

Se non ti viene segnalato il luogo esatto dell'errore (con la riga

di codice in giallo), passo a passo riduci il codice nella

procedura per trovare la riga dove l'errore succede.

Ci sono diversi varianti di questo messaggio, p.e. puo essere

anche un problema con DAO come descritto qui:

http://www.donkarl.com/it?FAQ7.9

Con A07 il file non si chiama più DAO.dll ma ACEDAO.dll.


Ciao

Karl

*******

Access FAQ:  http://www.donkarl.com/it

La risposta è stata utile?

0 commenti Nessun commento

4 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2010-09-23T15:41:35+00:00

    Ho effettuato le modifiche come me le hai suggerite Karl, ma il problema sul pc con Win Xp Professional senza access 2007 rimane!

    Mi compare sempre il messaggio di errore in oggetto e non mi crea il backup...

    Altre idee?

    Grazie

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2010-09-22T18:50:28+00:00

    Avatar77 wrote:

    ...

    Prova di aprire la seconda db con Shell + GetObject come

    mostrato nella sezione "Run-Time Version of Microsoft Access"

    di quest'articolo: http://support.microsoft.com/kb/210132/en-us

    mi sembra di aver capito il senso, ho visto l'esempio ma non riesco a

    metterlo in pratica nel mio caso specifico.

    Chi può aiutarmi a modificare il codice?

    Cambia in un commento queste tre righe:

    Dim AppBackup As New Access.Application

    ...

    AppBackup.OpenCurrentDatabase CurrentProject.path & "\PUA-bck.accde"

    AppBackup.Visible = True

    e prova così:

    Dim AppBackup As Object

    Dim strDBName As String

    strDBName = CurrentProject.path & "\PUA-bck.accde"

    Shell syscmd(acSysCmdAccessDir) & "msaccess.exe " & _

    Chr$(34) & strDBName & Chr$(34)

    Set AppBackup = GetObject(strDBName)

    ' poi continua con il tuo vecchio codice:

    'Apro la maschera1

    AppBackup.DoCmd.OpenForm "Maschera1"

    ecc.


    Ciao

    Karl

    *******

    Access FAQ:  http://www.donkarl.com/it

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2010-09-22T17:22:03+00:00

    Col runtime alcune tecniche per aprire una seconda db

    non funzionano. Di solito il problema è CreateObject(),

    ma credo che anche con il tuo codice puoi averla.

    Prova di aprire la seconda db con Shell + GetObject come

    mostrato nella sezione "Run-Time Version of Microsoft Access"

    di quest'articolo: http://support.microsoft.com/kb/210132/en-us


    Ciao

    Karl

    *******

    Access FAQ:  http://www.donkarl.com/it

    Grazie della risposta Karl,

    mi sembra di aver capito il senso, ho visto l'esempio ma non riesco a metterlo in pratica nel mio caso specifico.

    Chi può aiutarmi a modificare il codice?

    Grazie per l'aiuto

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2010-09-22T16:12:50+00:00

    Avatar77 wrote:

    ...

    Sto testando il mio progetto su più sistemi operativi prima di

    distribuirlo: su S.O Win7 con Access 2007 installato o db lanciato

    con comando Runtime tutto funziona.

    Quando lo testo su un altro pc con S.O. Windows Xp Professional

    aggiornato con Access 2003 + Access Runtime 2007 installato quando

    clicco sul pulsante di chiusura del db mi dà l'errore in oggetto:

    Error: (429) Il componente ActiveX non è in grado di creare l'oggetto

    ...

    Dim AppBackup As New Access.Application

    ...

    'Apro il PUA-bck

    AppBackup.OpenCurrentDatabase CurrentProject.path & "\PUA-bck.accde"

    ...

    Col runtime alcune tecniche per aprire una seconda db

    non funzionano. Di solito il problema è CreateObject(),

    ma credo che anche con il tuo codice puoi averla.

    Prova di aprire la seconda db con Shell + GetObject come

    mostrato nella sezione "Run-Time Version of Microsoft Access"

    di quest'articolo: http://support.microsoft.com/kb/210132/en-us


    Ciao

    Karl

    *******

    Access FAQ:  http://www.donkarl.com/it

    La risposta è stata utile?

    0 commenti Nessun commento