Newsgroup: it.comp.appl.access
Titolo: value

ciao a tutti
 
quando è bene utilizzare value
e quando invece non serve?
 
Grazie

Value è la Default Property di alcuni controlli...(quelli di edit Text/Combo) quindi in teoria ed in pratica su questi si può omettere...
Personalmente trovo più pulito esplicitare sempre la proprietà usata a prescindere, ne va della leggibilità del codice.
 
@ALEX


 
uhmmmmm....
 
/tricky/
questo caso
trasferisco un textcontrol ad una funzione che lo riceve su un parametro 
variant (o meglio con *as* non indicata)
Se non ricordo male (ovviamente?)  ricevi l'intero oggetto textcontrol
 
-- 
ac (x=y-1)
Aborro il Killfile
(La violenza e' l'ultimo rifugio degli incapaci -Salvor Hardin-)

 e quando invece non serve?
A mia esperienza non serve mai.
 
Bruno


grazie Bruno


grazie Alex


Grazie Alessandro

Il giorno lunedì 12 dicembre 2016 22:42:22 UTC+1, Alessandro Cara ha scritto:

Non confondere l'accesso alla lettura di una Proprietà con l'assegnazione di un oggetto... quello che dici tu non trasferisce la Property, ma l'oggetto proprio... 
 
@Alex


 
Appunto.
Ma, sempre se non ricordo male, se il parametro sulla funzione e' string 
trasferisce il value.
 
Non sono assolutamente in disaccordo con quello che scrivi.
Volevo solo far notare che talvolta si puo' /cadere/ in
qualche trappola.


Si corretto... perché String non supporta l'oggetto...
 
@ALEX

 @ALEX
 
ciao Alex
è possibile vedere qualche esempio, di quando value è indispensabile?
grazie

 grazie
 
No, perchè non è MAI indispensabile... è solo una buona regola.
 
Quello che dice A.C. è questo:
 
Date queste 2 Funzioni apparentemente simili... e dato il controllo TextBox [txtTest] nella maschera avremo:
 
Public Function Prova(Obj)
    Msgbox obj.Value
End Function
 
Public Function Prova(Obj as String)
    MsgBox obj
End Function
 
La 1° la si chiama così:
   Call Prova(Me!txtTest)   ' questa passa l'oggetto TextBox non il valore
 
La 2° la si chiama così:
   Call Prova(Me!txtTest)   ' questa passa la proprietà Value non l'oggetto
 
In questi 2 casi, per chiarezza è assolutamente consigliato che la 2° chiamata abbia l'eplicitazione della proprietà VALUE, ma solo per chiarezza di chi legge(anche di chi scrive codice... che dopo anni rilegge).
 
Quindi la 2° io la chiamerei così:
   Call Prova(Me!txtTest.Value)
 
 
@Alex


perchè come ha già detto, è variabile stringa
grazie Alex


Bene per la chiarezza ma la  /trappola/ e' sulla prima
Call Prova(Me!txtTest)		===>Oggetto
Call Prova(Me!txtTest.Value)    ===>Valore
Sulla prima, se vuoi passare il valore, e' /indispensabile/ citare .Value


Alessandro Cara explained :

Ma tutto questo serve solo a confondere le idee.
È un pasticcio sintattico che non è né Sub né Function,
che funziona soltanto perché Access consente di utilizzare
procedure Sub all'interno di procedure Function.
 
Vorrei che non mi considerassi offensivo, assolutamente
non lo voglio essere, consentimi però di essere critico:
a mio avviso l'esemplificazione riportata è a dir poco
allucinante!
 
Bruno

 allucinante!
 
Le canne nella mia vita me le sono fatte ma in questo caso
io cosa azzecco.
In questo caso il /fatto/ (senso doppio) e' Access
Che sia /allucinante/ potrei anche essere d'accordo ma,
ti assicuro, con queste /porcherie/ alcune volte mi sono
divertito
 
 
P.S. Anche sul Me ci sarebbe da dire.


 P.S. Anche sul Me ci sarebbe da dire.
 
E sul Call no?
 
Bruno