Access 2016 - Compattazione back-end via codice vba

Anonimo
2018-02-06T10:33:33+00:00

Buongiorno.

Ho un piccolo problema, non riesco a compattare il back-end di una applicazione.

Utilizzo una piccola routine in vba, se dalla maschera principale provo a chiamare la routine (la maschera principale ha come origine dati una tabella del BE), mi dà un errore di runtime 3704: "si è tentato di aprire un database già aperto dall'utente Admin nel computer xxxxxx"

La procedura funziona così: chiudo la maschera principale, apro una maschera non associata ad alcuna origine dati, sull'evento apertura di questa maschera c'è la routine di compattazione.

Se invece chiudo manualmente la maschera principale ed apro la maschera per la compattazione, funziona senza problemi.

Questo è il codice per la compattazione:

"DBEngine.CompactDatabase "Path\XXX_be.accdb", "Path\XXX_be_new.accdb"

Kill "Path\XXX_be.accdb"  

Name "Path\XXX_be_new.accdb" As "Path\XXX_be.accdb" 

Grazie

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

3 risposte

Ordina per: Più utili
  1. Anonimo
    2018-02-06T18:52:33+00:00

    Ciao,

    aggiungo a quanto detto da Sandro che nell'eseguire il codice devi avere la certezza che non vi siano altri utenti collegati al BE.

    Ciao Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2018-02-06T13:33:43+00:00

    Grazie Sandro, proverò con la prima opzione.

    Ciao Marcello

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2018-02-06T13:01:55+00:00

    ciao Marcello,

    vedrei meglio la compattazione e/o l'eventuale back up a BE effettivamente chiuso impostando l'attività come operazione pianificata di Windows con eventuale VBS.

    in ogni caso, su scaricamento della form prova a disconnettere la tabella collegata rimuovendo il link dal BE e successivamente fai eseguire il codice che hai mostrato su chiusura.

    La form a cui mi riferisco è la principale.

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento