Newsgroup: it.comp.appl.access
Titolo: stessa funzione per 50 controlli

ciao a tutti..
semplifico il mio problema:
ho 50 textbox chiamate da t1 a t50
al click di ognuna vorrei apparisse msgbox nome del controllo cliccato... 
es. clicco su t16 mi deve apparire la msgbox con "T16"
ho creato quindi una function con:
function mostraNome(ControlloCliccato as control)
    msgbox ControlloCliccato.name
end function
e su ogni textbox sull'evento onclick ho messo "=mostraNome(???????)"
cosa metto al posto di ????? per passare il controllo che ho cliccato ?
ciao! 

 ha scritto nel messaggio 
news:46b981c4$0$36448$4faf...@reader5.news.tin.it...

Usa questa funzione in Vba
Function givemenamecontrol()
Dim nomecontrollo
nomecontrollo = 
Screen.ActiveControl.Name
MsgBox nomecontrollo
End Function
Poi metti su ogni evento clic di ogni controllo:
=givemenamecontrol()
sarebbe più elegante che creassi gli eventi per tutti i controlli con una 
routine,ciclando tutti i controlli della Form, ma credo sia più ingegnoso..
Pierpaolo Romanelli
www.pierpaoloromanelli.com
 

 www.pierpaoloromanelli.com-
Dim ctl as Access.Control
For each ctl in Me.Controls
    If ctl.controlType=acTextBox and Mid$(
ctl.name
,1,1)="t" Then
          ctl.OnClick="=givemenamecontrol()"
    End If
Next
@Alex


Dimenticavo la cosa più importante... non serve a nulla questo, che ho
scritto solo per soddisfare la richiesta...!
Selezionando tutti i controlli ed incollando la chiamata sui
selezionati... ha già finito.
@Alex

 ha scritto nel messaggio 
news:1186580535.7...@b79g2000hse.googlegroups.com...



Credo che serva invece, è molto più elegante fare tutto con poche righe di 
codice, e maneggiare tutti i controlli con vba, piuttosto che stare a 
prendere tutti i controlli  a mano... dipende dai punti di vista...
buon tips... comunque.
www.pierpaoloromanelli.com

 ha scritto nel messaggionews:1186580535.7...@b79g2000hse.googlegroups.com...

Se parliamo di eleganza direi che la cosa più elegante è l'override
dell'evento... cosa non fattibile... ma gestibile tramite una Classe
istanziata N volte.
Se invece parliamo di Funzionalità, in questo caso trovo inutile
mettere del codice per fare quello che con una semplice selezione si
chiude....!
Ovviamente ci sono molte scuole di pensiero...
@Alex


www.donkarl.com/it
 sez. Cisa - Aricolo di Namor With Events
-- 
-- 
MAssimiliano Amendola
www.accessgroup.it
Cisa - Conferenza Italiana Sviluppatori Access
Segrate (MI), 7-8 giugno 2007

 ha scritto nel messaggio 
news:1186583017....@19g2000hsx.googlegroups.com...




diciamo che preferisco la tua soluzione in generale, perché nella 
fattispecie postata hai ragione si fa un selezione e si chiude il tutto, il 
tuo esempio è utile, quando hai tanti controlli variegati e devi creare 
eventi vari...(non solo textbox)..
Anche l'idea di instanziare più volte la classe con ovveride, mi 
incuriosisce, ma vorrei valutarne meglio la macchinosità e l'eventuale 
utilità...(dico se avessi voglia di implementarla...)

 utilità...(dico se avessi voglia di implementarla...)-
Se vuoi vedere un demo veramente OOP, elegante e funzionale, anche se
non và visto solo per quello che realizza in questo caso ma è fatto
per mostrarne la potenza della tecnica...!
http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=271
Ciao
@Alex

 ha scritto nel messaggio 
news:1186584084....@r34g2000hsd.googlegroups.com...


http://www.alessandrobaraldi.it/DettaglioFaq.asp?IdFAQ=271
l'ho testato, complimenti, era proprio quello ceh volevo realizzare quando 
parlavo di soluzioni eleganti, se avessi avuto voglia di mettermi...
Complimenti per l'eleganza della soluzione adottata...
www.pierpaoloromanelli.com