Newsgroup: it.comp.lang.visual-basic
Titolo: Referenziare una variabile da stringa

Salve gente,
oggi con un amico ci chiedevamo se fosse possibile in VB referenziare una
variabile da una stringa
(vi allego un esempio di quello che intendo)
public type record
        name as string
        surname as string
end type
public sub test()
        dim sTest as string
        sTest = "name"
        record."sTest"
end sub
So naturalmente che in questo modo nno funziona, ma mi chiedevo se esiste un
modo per fare una cosa del genere...
sto googleggiando da un pò, ma forse sbaglio a cercare ( o forse non è
proprio possibile?!?!?!?), e non ho trovato ancora nulla...
suggerimenti ?!?!?
Grazie Giuseppe

 modo per fare una cosa del genere...
Veramente, se Record è un record di un recordset Ado, questa cosa 
funziona benissimo, solo mettendo a posto la sintassi.
Il modo corretto di fare riferimento ad un Field è:
Recordset1.Fields.Item("Campo").Value
per cui...
Ciao
Alberto
-- 
A questo punto hanno trovato un muro,
un muro duro, molto molto duro,
che siamo noi.

 Grazie Giuseppe
La prima cosa che mi viene da suggerirti č di usare
Nomi non riservati e di fare esempi il piů possibile
chiari.
La dichiarazione di una UDT chiamata Record potrebbe
essere in conflitto con un nome riservato.
Il tuo esempio in ogni caso non funzionerebbe cosě.
L'assegnazione stringa funziona se accedi ad una Collection.
Sono collection tutti gli insiemi di Oggetti ad esempio:
Controls
Forms
In questo caso puoi eseguire il puntamento alla classe
contenuta nella collection passando il nome:
Forms("NomeForm") 
ecc....!
Ciao
@Alex
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 suggerimenti ?!?!?
Anche io ho cercato di risolvere lo stesso problema ma a quanto pare non è 
proprio possibile.
Emiliano. 

 ha scritto nel
messaggio news:mGzof.7748$Cn4...@tornado.fastwebnet.it...

Una cosa che si può avvicinare a quello che chiedi è un ADO Recordset "unbound",
non so se però ti è utile:
Dim rs As New ADO.Recordset
    rs.CursorLocation = adUseClient
    With rs.Fields
        .Append "FirstName", adVarWChar, 20
        .Append "LastName", adVarWChar, 20
        .Append "BirthDate", adDate
        .Append "IsNew", adBoolean
    End With
    rs.Open
    rs.AddNew Array("FirstName","LastName","BirthDate","IsNew"), Array("Mario",
"Rossi",#1/1/1960#,False)
    ...
    sTest = "FirstName"
    rs.Fields(sTest) = "Carlo"
O anche
    rs(sTest) = "Piero"
Bye
Raf

 end sub
No, non va (e secondo me a ragione: cosa succede se viene assegnato sTest =
"ciccio"?).
Però ti potrebbe interessare approfondire l'oggetto Dictionary, che consente
di convertire in stringa un numero. In questo modo puoi crearti un array di
opzioni, e usare una stringa di testo come indice.
Spero sia utile. Ciao.
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 ha scritto nel messaggio
news:43a2cba7$0$330$5fc...@news.tiscali.it...

Perchè non serve assolutamente a nulla, e se ti serve probabilmente hai
sbagliato ad analizzare il problema.
Ciao

 Ciao
Ciao 

 sbagliato ad analizzare il problema.
Indubbiamente, anche la programmazione ad oggetti non serve, se serve vuol 
dire che hai sbagliato ad analizzare il problema :)
Emiliano. 

 dire che hai sbagliato ad analizzare il problema :)
E che cavolo di paragone č? :)
Ciao

 "unbound",
Assolutamente d'accordo.
