Newsgroup: it.comp.appl.access
Titolo: impostare la variabile globale

Utilizzo un insieme di variabili globali e, dopo l'utilizzo di esse,
dovrei "annullare" il loro valore per non usare inutilmente spazio di
memoria per tali dati che non utilizzerò più.
Il valore di tali variabili deve essere impostato a Nothing o Null (o
altro)? Il primo mi dà errore.
Non ho ben capito il significato di Nothing (...ad esempio, si usa con
oggetti connection e database?).
grazie
mdm

 ha scritto nel messaggio 
news:1154343615.6...@h48g2000cwc.googlegroups.com...


grazie
mdm
[risposta]
Il rilascio delle risorse lo fai con variabili oggetti (recordset, 
connection, istanze ad applicazioni, etc. etc.) che utilizzi 
temporaneamente.
Le variabili "classiche", se una variabile globale è numerica la puoi solo 
azzerare, ma l'esistenza in memoria rimane; altrimenti tutte le volte che la 
devi utilizzare dovresti testare la sua presenza per evitare un errore.
A questo punto se chiedi questo è probabile che l'utilizzo di variabili 
globali non sia la scelta migliore...
Ciao.
-- 
Sergio MAZZA 

 oggetti connection e database?).
Sì, le variabili di tipo Collection o Database, una volta che sono state 
istanziate, possono essere impostate a Nothing.
Praticamente, impostando a Nothing una variabile, si perde il riferimento 
all'istanza della classe alla quale precedentemente essa faceva riferimento. 
E' un comportamento simile all'istruzione "dispose" del C.
--
PBsoft di Gabriele Bertolucci
www.pbsoft.it
skype: pbsoftsolution

PBsoft ha scritto:

grazie ragazzi,
ho chiarito i miei dubbi :-)
mdm

 ha scritto nel messaggio
news:1154343615.6...@h48g2000cwc.googlegroups.com...


Ciao Michele,
le uniche variabili che puoi impostare a Nothing e a Null sono quelle ti
tipo Variant.
esempio
----
Dim x As Variant
x = 100
Debug.Print x
Set x = Nothing
Debug.Print x
'Il debug.print da "Errore 91 Oggetto o variabile non impostata"
----
ma quante variabili hai ?
Forse costa di più il codice per azzerarle dello spazio recuperato.
Ciao
-- 
Giorgio Rancati
[Office Access MVP]

giorgio rancati ha scritto:

ciao giorgio,
ti ringrazio per la risposta.
In realtà adesso ho aggiustato un po' il codice e sto utilizzando una
sola variabile.
Ti spiego meglio che uso ne faccio.
Ho una maschera (frm1) associata ad una tabella. L'utente scorre i vari
record osservando i dati e quando ha individuato un particolare record
che gli interessa, passa ad un'altra maschera (frm2) non associata
(cliccando su di un cmd che apre frm2 e chiude frm1). In frm2, il
valore di un particolare  txt dovrà essere impostato al valore di un
altro txt presente in frm1.
Per fare tutto questo, alla chiusura di frm1 imposto il valore di una
variabile globale al valore del txt che mi serve, per poi impostare il
valore del txt di frm2 al valore "memorizzato" tramite la var globale.
Terminate queste operazioni, penso sia corretto impostare a null il
valore della variabile globale, anche perché è possibile aprire frm2
senza "provenire" da frm1 (ossia senza aprire prima frm1 e cliccare
sull'apposito cmd di passaggio). In tale ultimo caso, quindi, il txt di
interesse sarà sempre settato al valore della var globale che viene
impostato a null al momento della chiusura di frm2.
Spero di essermi spiegato...aspettando suggerimenti sul mio modo di
operare.... (la domanda sul nothing era poi scaturita
successivamente.....)
grazie
mdm

variabile globale .............
è un po' macchinoso :-)
puoi usare la variabile globale, se vuoi impostarla a Null devi dichiararla
di tipo Variant.
Se invece vuoi semplificare e se Form2 non viene aperta in modalità dialog
pui fare a meno della variabile globale.
es...
----
'Apro Form2
Docmd.OpenForm "Form2"
'Imposto il valore nella textbox
Forms("Form2").txtY=Me.txtX
'Chiudo Form1
Docmd.Close acForm,Me.Name
----


giorgio rancati ha scritto:

grazie giorgio
perfetto così :-)
mdm