Domanda

Il mio DB Access 2000 mi causa problemi: a volte (non ho individuato la causa) il modulo "libro" non si chiude.Fare clic sul pulsante di chiusura non fa nulla, File -> Chiudi non fa nulla, anche la chiusura di Access non comporta alcuna azione.Non ho un gestore OnClose per questo modulo.L'unica soluzione alternativa che riesco a trovare consiste nell'aprire l'editor Vba, apportare una modifica al codice per quel modulo (anche aggiungendo uno spazio e quindi eliminare immediatamente lo spazio), quindi tornare indietro per chiudere il modulo "libro", chiudendolo e dicendo "no, non voglio salvare le modifiche".Solo allora si chiuderà.Qualsiasi aiuto?

È stato utile?

Soluzione

Ecco un post sul forum che descrive, credo, lo stesso problema che affronti.L'estratto seguente indica una soluzione alternativa.

Quello che faccio è inserire il codice sul pulsante Chiudi che riassegna l'origine Object di eventuali sottomarini in un modulo vuoto, come ad esempio:

me! sottoparti.sourceobject = "subblank" 'subblank è la mia forma totalmente vuota, priva di codice e controlli, ecc.docmd.close acForm, "fParts", acSaveNo

Le 2 linee sopra sono l'unico modo che ho scoperto per impedire l'arrivo del prompt di accesso.

http://bytes.com/forum/thread681889.html

Altri suggerimenti

Un'altra alternativa è

(Me.Checkbox) 

o la mia sintassi preferita:

(Me!Checkbox)

Mi sembra che ci sia molta confusione nei post di questo argomento.La risposta scelta dall'utente originale cita un articolo in cui l'utente aveva la richiesta di salvare modifiche alla progettazione al modulo, ma il problema qui descritto sembra che si tratti di una mancata chiusura del modulo, non di un problema di salvataggio (il problema di salvataggio si è verificato solo nella soluzione alternativa che descrive l'accesso al VBE e la modifica del codice).

Mi chiedo se l'utente originale potrebbe avere impostate opzioni VBE errate?Se apri il VBE e vai agli strumenti | Opzioni, nella scheda Generale, vedrai diverse scelte sulla gestione degli errori.Dovrebbe essere scelto il MODULO INTERRUZIONE PER ERRORI NON GESTITI o IL MODULO INTERRUZIONE IN CLASSE, ma è importante riconoscere che se si utilizza il primo, è possibile che non vengano visualizzati determinati tipi di errori.

Non ci sono dettagli sufficienti per diagnosticare molto di più, a parte il fatto che il riferimento al controllo della casella di controllo sembra aver causato il problema, ma esistono numerose procedure consigliate per la codifica di Access che possono aiutarti a evitare alcune di queste stranezze.Le raccomandazioni relative al codice in Pagina delle migliori pratiche di Tony Toews sono un buon punto di partenza.

Sicuramente è strano.Sono presenti controlli timer nel modulo?In tal caso, prova a disabilitarlo in OnClose.

È possibile che dietro il modulo venga visualizzata la finestra di messaggio che chiede se si desidera salvare le modifiche.Credo che questa finestra di messaggio sia modale, quindi devi fare clic su Sì o no prima di poter fare qualsiasi cosa con il modulo, motivo per cui non puoi chiuderlo.

Il tuo modulo ha un evento di scarico?Ciò può essere annullato e, in tal caso, il modulo non si chiuderà quando è in visualizzazione modulo.Si chiuderà solo in visualizzazione progettazione, che, quando modifichi il codice vba, è ciò che fa il modulo nella finestra di Access quando stai modificando il codice.

Il tuo modulo ha una casella di controllo, un pulsante di attivazione/disattivazione o un pulsante di opzione?C'è un bug in Access 2000 in cui Access non si chiude se si verifica il valore senza utilizzare esplicitamente la proprietà Value nel codice vba, in questo modo:

If Me.chkbox Then

contro:

If Me.chkbox.Value Then
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top