General |
6.81 Access si riduce ad icona invece di chiudersi |
Davide La Mantia (Sib) |
Solitamente questo inconveniente si verifica quando nel codice del programma sono presenti degli errori o, più semplicemente, si è adottato uno stile di sintassi corretto ma "non gradito" ad Access. L'errore più comune consiste nel non chiudere un recordset alla fine di una routine, questo può portare anche all'errore di "Memoria esaurita". Ad esempio: Sub Pippo () Dim rst As RecordSet Set rst = CurrentDB.OpenRecordset ("SELECT * FROM Clienti") ... istruzioni ... End SubIn questa sub mancano due istruzioni molto importanti giusto prima di End Sub: rst.Close Set rst = NothingQuesto consente di liberare la memoria utilizzata dalla variabile rst. Anche non esplicitare una variabile booleana in una istruzione If può provocare problemi, se Me.Pippo è un controllo che contiene un valore booleano, è meglio usare: If Me.Pippo = True thenpiuttosto che: If Me.Pippo thenIn effetti entrambe sono corrette, ma per un baco di A97, la seconda potrebbe provocare problemi. Altro fatto molto importante è non sottovalutare mai i possibili loop. Se una funzione richiama se stessa o se due funzioni si richiamano a vicenda può verificarsi un loop (anche non infinito) che satura facilmente la memoria del PC. Per concludere, qualunque errore contenuto nel codice (anche quello non più utilizzato) può creare problemi di vario tipo, è quindi opportuno eseguire sempre un "Compila e salva tutti i moduli" dal menu Debug, questo vi aiuterà a trovare eventuali problemi. |