Newsgroup: it.comp.lang.visual-basic
Titolo: Operatore ME ????

Ciao,
ho un problema esistenziale:
mi sto avvicinando ( molto lentamente..) alla programmazione in Access ma mi
sono bloccato sui concetti fondamentali:
Cosa significa l'operatore ME?? e a cosa servono i segni di interpunzione
"." ( punto) ed "!" ( punto esclamativo).
Li trovo ogni dove nelle righe di programma (altrui) che vado sbirciando ma
non mi convicono le interpretazioni che trovo nei vari manuali.
Chi me li sa spiegare in modo convincente?? ( magari con qualche esempio...)
Grazie 1000 a chi mi da' una mano.
----
ciao, grenzo : 
sgr...@tin.it
 - pordenone

"." ( punto) ed "!" ( punto esclamativo).
Il punto separa l'oggetto su cui si agisce con l'istruzione che segue
Me (oggetto) . Print (istruzione di stampa) "Salve" (parametro
dell'istruzione Print)
Gli altri segno corrispondono nella maggior parte dei casi al tipo di
dichiarazione delle variabili
Es:
Dim x as Single
equivale a
Dim  i!
La guida di riferimento "Tipi di dati" contiene l'elenco completo dei
caratteri di dichiarazioni impliciti.
Fabio Guerrazzi


Me serve a far riferimento alla form o al report che contiene il codice che
viene eseguito, per cui può essere usato solo nel codice di una form o di un
report, non in un modulo di quelli che appaiono nella finestra database.
Quindi, se in una procedura della form Topolinia vuoi far riferimento al
controllo Pippo della form Topolinia, diciamo per impostare la proprietà
Visible del controllo, hai varie alternative:
- Forms!Topolinia!Pippo.Visible = True
- Forms("Topolinia")!Pippo.Visible = True
- Me!Pippo.Visible = True
In queste istruzioni vedi dei punti esclamativi e dei punti: i punti
esclamativi servono per far riferimento a un oggetto (a destra del punto
esclamativo) contenuto nell'oggetto che sta a sinistra del punto
esclamativo. In questo caso un controllo è contenuto nella form.
Il punto serve a far riferimento alle proprietà e ai metodi di un oggetto.
Una proprietà è una caratteristica dell'oggetto, che puoi voler leggere
oppure cambiare (nel nostro caso abbiamo impostato la proprietà visible del
controllo Pippo, e se prima era invisibile adesso appare sulla form). Un
metodo è invece un'azione che l'oggetto è in grado di fare. Per esempio, se
Pippo è una casella combinata, è in grado di aggiornare dell'elenco delle
voci (potresti aver aggiunto altri record nella tabella da cui prende i dati
la casella combinata). L'istruzione per questo aggiornamento è:
Me!Pippo.Requery
Tornando alla scelta tra le tre forme per far riferimento al controllo, le
prime due vanno bene sempre, in qualunque parte della tua applicazione,
mentre l'ultima va bene solo nel codice della form Topolinia.
Il vantaggio di usare l'ultima forma, dove possibile, sta nel minor numero
di caratteri digitati  :-)  , nella velocità di esecuzione del codice (ma in
genere questo non è un problema), e soprattutto nel fatto che se devi
duplicare la form per farne un'altra simile che si chiama Paperopoli, o se
ti viene in mente di cambiarne il nome non devi cambiare il riferimento alla
form in tutto il codice...
The_Force

Il punto esclamativo viene utilizzato come separatore tra insiemi ed
oggetti appartenenti
all'insieme, ad esempio l'avrai sicuramente notato quando si nomina una
form dell'insieme forms
(Forms!MiaForm), oppure quando si nomina un particolare controllo di una
form
(Forms!MaiForm!MioControllo).
Il punto invece va utilizzato x richiamare le proprieta` e/o i metodi di un
oggetto, e qui
gli esempi si possono sprecare
   miorecordset.movefirst
   MiaForm.Caption
   ecc.
X quanto riguarda "Me", bhe`, significa proprio quello che sembra, e cioe`
me stesso.
Rappresenta l'istanza del form, report o modulo di classe in cui sta
girando il codice.
La sua utilita` migliore e` sicuramente l'autodocumentazione ( Me.caption
ti spiega subito
che lavori sulla caption della form corrente, forms!miaform.caption un po'
meno)
e l'indubbia comodita` dell'abbreviazione. 
Per non parlare della spinta alla riusabilita` del codice, una routine in
cui compaiono
riferimenti diretti ai nomi degli oggetti non si presta gran che ad essere
riutilizzata
in altri contesti.
Spero di averti "schiarito" le idee.
Ciao.

 Grazie 1000 a chi mi da' una mano.
Fai finta che 'ME' vuol dire 'me' (io me medesimo) ossia l'oggetto form in cui sta' la funzione che usa 'me'.
Ossia se nel form frmPippo c'e' la funzione Pluto() nella quale c'e' Me.Caption e' come scrivere frmPluto.Caption.
Comodo perche' se combi nome alla form o ricicli il codice, funziona sempre.
Il punto serve per far riferimento a proprieta' o metodi (funzioni) presenti in un oggetto.
Se per esempio io ho un oggetto form chiamato frmPippo, e in un punto qualsiasi del
programma debbo cambiare il caption, debbo fare riferimento alla proprieta' Caption nel
From usando il punto, ossia:
frmPippo.Caption = "Titolo Pluto"
frmGigi.Caption = "Titolo Gigi"
Il puntoesclamativo serve per far riferimento ad un oggetto presente dentro un altro oggetto,
ossia di un controllo dentro ad una form.
Se io ho una TextBox dentro un form, per accedere alla proprieta' Text della TextBox da un
qualunque punto del programma, debbo scrivere:
frmPippo!TextBox.Text = "Testo nella TextBox"
frmGigi!TextBox.Text = "Testo nella TextBox"
Se non hai capito qualcosa fallo sapere
-- 
Hi, Ciao
Ettore                 By -MES-
http://www.aspide.it/freeweb/ilmes
Il sito comune di programmatori VB
http://members.xoom.com/it_lang_vb

 "." ( punto) ed "!" ( punto esclamativo).
punto e' il separatore oggetto-metodo, ! e' il separatore oggetto-altro oggetto
compreso nell'oggetto.
per cui se voglio massimizzare la form corrente, quindi applicare il metodo
maximize, scrivo
me.maximize
se invece voglio riferirimi alla combobox cmbPippo presente nella maschera
corrente scrivo:
me!cmbPippo

Grazie 1000 a chi mi da' una mano.


 
Per esempio, se apri un recordset, e vuoi avere il valore di un campo,
devi fare:
	ValoreNome = MyRecord!Nome
oppure
	ValoreNome = MyRecord("Nome")
non credo ce funzioni
	ValoreNome = MyRecord.Nome


Ciao,
grazie a tutti quelli che mi hanno risposto ed aiutato nell' impresa di
comprensione.
Sono giunto a queste conclusioni.
Me è un operatore che viene usato x riferirsi alla maschera sulla ( o
nella..) quale si sta scrivendo il codice senza "rosmpersi" a specificare di
volta in volta su quale maschera si sta operando.
Il concetto di codice in Access dice che lo puoi scrivere in modo "globale"
nella finestra "moduli" del database o "sotto" una maschera o report ( e'
vero quello che dico??).
X quanto riguarda il ! ( punto esclamativo ) ho raggiunto una consapevolazza
che xro' non era stata espressa correttamente nelle risposte avute ( almeno
credo..).
Il Punto esclamativo serve x separare l'oggetto ( che sta a sx del ! ) da un
CONTROLLO e non da una proprieta' o metodo. Se ci si vuole riferire ad una
proprieta' o metodo si usa, allora, il punto! ( a sx l'oggetto, a dx, del
punto, il nome della proprieta' o metodo).
E' vero quello che dico o e' un "abbaglio"????
-----
ciao e grazie
grenzo - pordenone - 
sgr...@tin.it


:)
Non ho nient'altro da dire... :-)
Ciao
Emanuele Cesena
d.a.m...@iol.it
ICQ n° #10570672

CONTROLLO e non da una proprieta' o metodo.
Perfetto, ma invece di CONTROLLO direi oggeto: i controlli sono quelli che
appiccichi dentro le form (o report), mentre il ! lo usi anche:
Forms![Nome della mia bellissima scheda]
la qual bellissima scheda è un oggetto, ma non si sogna certo di essere un
controllo :-)
Ciao ciao


...
|Una sola pignoleria:
|>Il Punto esclamativo serve x separare l'oggetto ( che sta a sx del ! ) da
|un
|>CONTROLLO e non da una proprieta' o metodo.
|Perfetto, ma invece di CONTROLLO direi oggeto: i controlli sono quelli che
|appiccichi dentro le form (o report), mentre il ! lo usi anche:
|Forms![Nome della mia bellissima scheda]
|la qual bellissima scheda è un oggetto, ma non si sogna certo di essere un
|controllo :-)
|
|Ciao ciao
|
Ciao Emanuele,
qui mi hai messo in crisi, credevo di aver capito il significato di !, ma
ora non ne sono tanto sicuro...
Allora vorresti dirmi che il . (punto) viene usato SOLO come separatore x
identificare le proprieta' ed i metodi di un oggetto?? ( a sx del punto
l'oggetto, a dx del punto il metodo o proprieta'??), mentre il ! viene
utilizzato ogni volta che voglio far riferimento ad un oggetto ( anche un
controllo) che sta dentro un'altro oggetto? ( a sx del punto l'oggetto padre
e a dx del punto l'oggetto figlio?)
Ciao e ti ringrazio della risposta.
grenzo


e a dx del punto l'oggetto figlio?)
si'!
gli oggetti possono essere sia controlli che "contenitori" di altri
oggetti, come le maschere.
troverai poi ! anche in recordset!campo: un recordset (una riga)
evidentemente contiene campi (colonne).
======================================================
my opinions do not necessarily have to be true.
======================================================
per rispondermi rimuovere NOSPAM. dall'indirizzo email
to answer me remove NOSPAM. from email address
======================================================

...
|>qui mi hai messo in crisi, credevo di aver capito il significato di !, ma
|>ora non ne sono tanto sicuro...
|>Allora vorresti dirmi che il . (punto) viene usato SOLO come separatore x
|>identificare le proprieta' ed i metodi di un oggetto?? ( a sx del punto
|
|si',
|
|>l'oggetto, a dx del punto il metodo o proprieta'??), mentre il ! viene
|>utilizzato ogni volta che voglio far riferimento ad un oggetto ( anche un
|>controllo) che sta dentro un'altro oggetto? ( a sx del punto l'oggetto
padre
|>e a dx del punto l'oggetto figlio?)
|
|si'!
|
|gli oggetti possono essere sia controlli che "contenitori" di altri
|oggetti, come le maschere.
|
|troverai poi ! anche in recordset!campo: un recordset (una riga)
|evidentemente contiene campi (colonne).
|
Ciao lbo e grazie del commento,
visto che ci sei puoi spiegarmi bene cos'e' il recordset? ( leggendo il
manuale l'ho trovato spesso ma non mi sono ancora reso conto di cosa sia...)
-----
ciao, grenzo

manuale l'ho trovato spesso ma non mi sono ancora reso conto di cosa sia...)
ostrega...  :-)  dunque, un recordset, letteralmente, e' un insieme di
record.  lo si potrebbe definire una tabella "virtuale".  
in sostanza e' un oggetto composto da righe e colonne al quale si
possono applicare dei metodi (ovvero fargli compiere delle azioni),
controllarne alcune proprieta' (ad esempio se sei all'inizio o alla
fine ovvero sulla prima o sull'ultima delle "righe") e del quale si
possono specificare gli oggetti che a sua volta lo compongono (i campi
o fields), nonche' assegnare valori a tali oggetti.
se rst e' una variabile recordset, alcuni metodi potrebbero essere:
rst.movefirst
(vai al primo record del recordset)
rst.movenext
(vai al prossimo record del recordset)
rst.edit
(permetti la modifica della riga corrente del rst)
un esempio di proprieta' potrebbe essere:
if rst.eof then...
(se e' vero che rst.eof ovvero che siamo alla fine di rst ovvero
all'ultima riga allora compi una certa operazione)
per fare riferimento ad un campo di un recordset si possono usare
diverse sintassi.
se si conosce il nome esatto del campo, ad es. il campo Cognome:
vaPippo=rst!Cognome
rst!Cognome="Rossi"
