Newsgroup: it.comp.lang.visual-basic
Titolo: variabili valide ovunque!

Ciao,
Non riesco a capire una cosa. Ho VB .NET 2003, ho letto che ogni variabile
mantiene il suo valore all'interno della sub in cui viene dichiarata o
addirittura della ruotine dove viene dichiarata.
Io ho la necessità però di dichiarare una variabile in una sub e di
renderla disponibile per tutte le altre sub del form.
Ho provato con dim public o share ma il risultato è il medesimo, fuori
dalla sub le variabili non hanno valore.
Mi potete aiutare? Grazie

 Mi potete aiutare? Grazie
Dichiarala fuori dalla funzione/sub
-- 
Salutoni
Sergio
Per rispondere... togli il group dall'indirizzo
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

> Dichiarala fuori dalla funzione/sub
E non posso, il problema è proprio questo. Devo necessariamente
dichiararle in una sub che richiamo per eventuali modifiche nelle
variabili.
Devo dichiarare le variabili relative ad 
ado.net
 per la connessione ad un
database access e per esempio il percorso del database deve poter essere
modificato durante l'esecuzione del programma.
Insomma il mio problema e' proprio poter dichiarare in una sub una
variabile che sia valida anche nelle altre sub, è possibile??
grazie

 variabili.
Cerbero, c'è qualcosa che non capisco.
Hai bisogno di una variabile a visibilità globale. Per fare questo, la
devi dichiarare al di fuori di una sub/function. Non ti preoccupare che,
se è globale, è utilizzabile anche nella sub dove volevi dimensionarla.
Per tutti i dettagli del caso puoi guardare qui:
http://tinyurl.com/dgtvl


cerbero ha scritto:

provaci a spiegare meglio .. scusa .. intanto vedi se ho capito male ..
tu hai
SUB ApriACCESS
qui tu cambi il valore della tua variabile in quanto devi aprire la 
connessione ad access
END
in questo caso puoi benissimo usare il suggerimento che ti hanno dato, 
dichiarare la variabile all'esterno della sub e cambiare semplicemente 
il suo stato nella sub senza doverla ridichiarare ..
+ di questo non ho capito una mazza :D
saluti
-- 
[CapoBecchino]
Il becchino si sposa: in abito rigorosamente nero, con la sposa accanto 
parte in auto (nera) con le classiche bare attaccate al paraurti posteriore.
La sera, dopo cena, lei lo aspetta semisdraiata su letto, in un negligé 
che sembra una nuvola. Lui si prepara in bagno ed esce impeccabile: 
pigiama nero con i risvolti oro, viso impassibile, passo bilanciato; si 
avvicina alla moglie e dice:
- Signora, vuol baciarlo prima di metterlo dentro? (da Barzellette.it)

 variabile che sia valida anche nelle altre sub, č possibile??
E per fortuna che non č piů possibile!
.Net č un tantino meglio strutturato.
Devi farti una classe con campi statici, ad es.
Public Class MyAdoConfig
    Public Shared DataBasePath As String
End Class
Poi, nel programma la richiami cosě:
Dim s As String = MyAdoConfig.DataBasePath
Ciao 

 Devi farti una classe con campi statici, ad es.
(snip)
Che sia consigliabile, non discuto. Che sia necessario non mi sembra.



Il problema è che se dichiaro quelle variabili all'esterno delle sub,
cn.Open() si esegue correttamente.
Se però, avendo la necessita' di modificare durante l'esecuzione del
software il percorso del database, dovrei necessariamente inserire
quelle stringhe in una sub da richiamare ogni volta che ci si vuole
connettere al database e passandogli il relativo percorso del database
(anch'esso potrebbe cambiare, db2.mdb invece che db.mdb). Facendo cio',
cn.Open() non si eseguirebbe correttamente.
Come posso ovviare?
grazie 1000

 + di questo non ho capito una mazza :D
:D
guarda l'altra mia risposta, ho spiegato l'esigenza che in modo
dettagliato
e grazie

 grazie 1000


 >
Hemmm... e se cn è già dichiarata fuori dalla sub, e quindi è pubblica,
perchè non scrivi:
Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=C:percorsodb.mdb;"
cn = New OleDbConnection(ConnString)


 e cosi funziona ..
Ecco ecco, dichiaro la variabile globale e poi nelle singole sub posso
impostarla sul valore che preferisco. Così dovrebbe rispondere alle mie
esigenze, grazie 1000