problema con pannello comandi

Anonimo
2012-05-07T10:46:11+00:00

Buongiorno a tutti!

Mi succede una cosa strana (tanto per cambiare)!

OS=Vista Business SP2

Access 2007 SP3

Dopo l'uscita da un programma di Access, mi rimane ancora MSACCESS.EXE in memoria (si vede da "Gestione Attività").

Ciò mi crea problemi in quanto i successivi tentativi di riapertura con il tasto SHIFT trovano il programma bloccato: crea il file .laccdb su disco, ma il file non si apre! Devo necessariamente eliminare la presenza in memoria di Access gorzando la cancellazione con "Gestione Attività".

Sono diventato matto, ma dopo infiniti tentativi ho scoperto che il tutto deriva dal caricamento in avvio della maschera "Pannello Comandi" creata dall'apposito gestore.

Infatti se lancio il programma per la prima volta con il tasto SHIFT e chiudo, in memoria non resta nulla, mentre se lancio lo stesso normalmente, alla sua chiusura (sia dai comandi di Access che dal comando immesso nel pannello) in memoria rimane l'istanza (dico bene?) di Access.

A queste amare conclusioni sono arrivato utilizzando un file di Access vergine nel quale è stata creato il "Pannello Comandi" e nel quale è stato immesso il solo comando di uscita via VBA: l'inconveniente avviene sia che si adoperi questo comando, sia che si esca con i normali comandi di uscita di Access

Per ultimo segnalo anche che l'inconveniente si nota SOLO se il Pannello Comandi viene caricato all'avvio del programma (sia con l'apposita funzione che con macro Autoexec), altrimenti tutto funziona bene.

A disposizione per qualunque altra informazione, grazie per l'attenzione e per l'eventuale collaborazione

franco

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
2012-05-21T16:38:36+00:00

A Giorgio e Mauro,

a furia di "sparare nel mucchio" anche un povero operaio dell'informatica come io sono, forse riesce a trovare una provvisoria soluzione, almeno in attesa che ne arrivi una più seria.

Considerato quanto detto sia da te che da Giorgio in precedenza, ho aggiunto all'inizio della funzione "ChiudiAccess" di cui sopra:

    Dim rs As Object

    Set rs = Nothing

Così funziona, anche se non so il perché.

Attendo ulteriori suggerimenti o conclusioni, anche se mi riservo di inviarvi ulteriori esiti qualora ciò che ho notato dovesse venire smentito prossimamente..

Grazie ad entrambi della collaborazione

franco

La risposta è stata utile?

0 commenti Nessun commento

40 risposte aggiuntive

Ordina per: Più recente
  1. Anonimo
    2012-05-21T10:14:11+00:00

    Il problema non sta nel codice che, relativamente all'uscita era il seguente:

    Function ChiudiAccess()

    On Error GoTo ChiudiAccess_Err

        Application.Quit

       

    ChiudiAccess_Exit:

        Exit Function

    ChiudiAccess_Err:

        MsgBox Error$

        Resume ChiudiAccess_Exit

    End Function

    Il problema ha origine quando questa funzione viene chiamata dal Pannello Comandi o da qualunque maschera attivata all'avvio del programma.

    Se in avvio del programma non si recupera nessuna maschera, tutto funziona regolarmente, purché l'uscita non venga lanciata da una qualunque maschera aperta

    Immagino rimanga appeso in memoria qualche oggetto.

    Hai provato a forzare la chiusura di tutti gli oggetti aperti prima di invocare ChiudiAccess o di ripulire la memoria prima del Quit?

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-05-21T10:08:47+00:00

    Il problema non sta nel codice che, relativamente all'uscita era il seguente:

    Function ChiudiAccess()

    On Error GoTo ChiudiAccess_Err

        Application.Quit

    ChiudiAccess_Exit:

        Exit Function

    ChiudiAccess_Err:

        MsgBox Error$

        Resume ChiudiAccess_Exit

    End Function

    Il problema ha origine quando questa funzione viene chiamata dal Pannello Comandi o da qualunque maschera attivata all'avvio del programma.

    Se in avvio del programma non si recupera nessuna maschera, tutto funziona regolarmente, purché l'uscita non venga lanciata da una qualunque maschera aperta

    Grazie a te

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-05-21T09:56:51+00:00

    Messo prima di .Terminate Autorizzazione negata

    Messo dopo risulta inutile

    Non ho seguito tutto il thread. Puoi postare l'intera parte di codice interessata?

    Grazie.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-05-21T09:53:10+00:00

    Messo prima di .Terminate Autorizzazione negata

    Messo dopo risulta inutile

    La risposta è stata utile?

    0 commenti Nessun commento