2012-06-05 16 views
8

Questa è una specie di domanda vaga e difficile da spiegare. Sto provando a codificare il mio database di accesso, ma la porzione VBA mi sta davvero annoiando. Ogni volta che digito qualcosa e colpisco lo spazio, questo verrà automaticamente rifatto e rimandato alla precedente parola che stavo scrivendo. Inoltre, Intellisense arriverà per una frazione di secondo, lampeggerà e andrà via, e ripristinerà il mio cursore sul testo che stavo scrivendo. Ciò mi porta a digitare costantemente cose in luoghi in cui non dovrebbero essere e alla mancanza di spazi tra gli elementi del mio codice. Qualcuno sa perché questo si sarebbe verificato? Il database che sto utilizzando è stato creato in Access 2007, ma lo sto sviluppando nel 2010. In alto si dice Microsoft Access 2007-2010.Perché il mio VBA per MS Access Buggy?

Grazie per il vostro aiuto.

+1

Vedere anche questo: http://stackoverflow.com/questions/1164138/vba-editor-auto-deletes-spaces-at-the-ends-of-lines –

+0

Questo è anche utile e può parzialmente risolvere il problema, Grazie. – Scotch

risposta

13

La causa più probabile è che si disponga di un modulo aperto con un evento timer attivo.

Quello che sta accadendo è che mentre si sta modificando il codice, c'è un codice in esecuzione ad intervalli regolari. Ogni volta che viene eseguito un altro codice, viene eseguito il compilatore just-in-time per VBA.

Normalmente, quando si scrive codice, questa compilation in tempo reale ogni volta che accade ci si sposta da una riga di codice a un altro: errori di compilazione sono sollevate, trailing spazio bianco viene tagliato, ecc

Tuttavia, nel tuo caso hai qualche pezzo di codice che è in esecuzione. Prima che possa essere eseguito, il compilatore deve essere eseguito. E fa le stesse cose che normalmente fa. Più fastidiosamente, taglia lo spazio bianco finale dalla tua linea.


La soluzione è quella di chiudere il modulo con l'evento timer attivo, o impostare l'intervallo del timer a 0 mentre si sta modificando il codice.

+1

Grazie per la spiegazione. Questo sembra averlo risolto per la maggior parte. Lo sviluppatore precedente utilizza una forma nascosta con un evento timer attivo, a mio avviso, per tenere traccia di "globals". In ogni caso, la chiusura di tutte le forme sembra risolvere il problema. Grazie! – Scotch

+2

+1 Ho anche svitato @Scott in modo che l'OP possa votare. – Fionnuala

+1

Accettato come risposta corretta. Per qualche ragione, i moduli senza timer causano comunque questo problema. È piuttosto frustrante dover chiudere queste forme mentre eseguo il codice. È un sollievo digitare questa risposta perché non devo schiacciare la mia barra spaziatrice e ripristinare il cursore :) – Scotch

Problemi correlati