Newsgroup: it.comp.appl.access
Titolo: withevents con più variabili

buongiorno a tutti
ho questo problema, in una maschera ho circa 20 textbox non associate
divise in 4 gruppi ad ogni gruppo di textbox su "after_update" e
"on_exit" sono associati dei controlli.
fin qui tutto ok, difatti con withevents si riescono a gestire alcuni
di questi controlli. il problema nasce quando i controlli sono
incrociati...ovvero (ad esempio) su uscita della txt_box1_gruppo1
controllo il valore della txt_box1_gruppo1 e lo devo confrontare con
il valore della txt_box1_gruppo2... come posso fare usando with
events?
spero di essere riuscito a spiegarmi.
grazie
ciao
Nick


Immagino che hai una cosa del genere
Public WithEvents oCheck As TextBox
Private Sub oCheck_nomeEvento(....)
   ......
end sub
che succede se fai: ocheck.parent.controllochetiinteressa?
-- 
ac
y-1=x


wrote:

si esatto ho quella struttura
e all'interno della sub vorrei una cosa tipo
if ocheck >ocheck2 then....
dove ocheck2 è una texbox fisicamente alla destra di questa..
facendo come dici tu.. dovrei settare per ogni seconda textbox un
controllo.. ovvero:
select case 
ocheck.name
   case "a"
       if ocheck.value>ocheck.parent.a2 then
  case "b"
      if ocheck.value >ocheck.parent.a3 then
.
.
.
.
end select
...quidni sfumano le potenzialità di with events..
o forse non ho capito cosa intendevi?
Grazie
ciao
Nick


Il withevents fa si che puoi "evitare" di scrivere 20 routine di evento.
E' altresi' evidente che e' l'oggetto che subisce l'evento ad essere 
"mostrato".
Se la situazione e' quella che racconti (con i nomi ordinati) non c'e' 
bisogno di  una batteria di case e' sufficiente
x= right(ocheck.controlname,2)
if ocheck > ocheck.parent("a" & x)
ovviamente stando attento a non "sfondare" sull'ultimo
-- 
ac
y-1=x


Devi ingegnarti sfruttando o dei Nomi Codificati oppure la proprietà
TAG in modo che
su Evento riesci a sapere quale controllo gestire...!
La soluzione più tecnica sarebbe quella di usare una Classe per
gestire il WithEvents nella quale puoi prevedere una Property della
Classe stessa.
Oltre che istanziare una Classe per ogni TextBox nella Classe stessa
inserisci un
Private WithEvents mC  as Access.TextBox
Private mAttC  as Access.TextBox
Property Set Control(ctl as Access.TextBox)
    Set mC = ctl
End Property
Property Set AttachedControl(ctl as Access.TextBox)
    Set mAttC  = ctl
End Property
Ora su Evento di Mc hai a disposizione tutto di mAttC...
@Alex



Purtroppo ho semplificato i nomi delle textbox.. e purtroppo non posso
modificarle perchè ci sono altre maschere che non posso toccare che
puntano  a queste textbox ....è brutto mettere mano a lavori
altrui...
grazie
ciao
Nick


mi son perso un'attimo...
se Mc è una classe a se stante o è la classe legata alla mia textbox
"principale" nella quale poi inserisco gli eventi?
quindi la inizializzo nella maschera con
Set REsa_UP = New Mc
            REsa_UP.setcontrol ctl ' ctl viene da ciclo sui controlli
della maschera
            Istanze.Add REsa_UP
...pertanto.. il set della attachedcontrol.. come lo setto?
nelle classi non riesco ancora a giocarmela bene.. e mi perdo un
po' :)
grazie
ciao
Nick

 - Mostra testo tra virgolette -
Ipotizzando la classe MC ovviamente dentro devi inserire 2 Property
Set, una per il controllo principale ed uno per l'Attach
Quindi da codice:
             Set REsa_UP = New Mc
             Set REsa_UP.control = Me!NomeControlloPrincipale
             Set REsa_UP.AttachedControl = Me!NomeControlloSecondario
             Istanze.Add REsa_UP
             Set REsa_UP=Nothing
Poi il codice di Validazione lo devi mettere nella Classe.
Saluti
@Alex

 Nick
Se vuoi mantenere questa linea ti basta definire un array che contenga in
sequenza i nomi dei vari controlli cosě li gestisci anche se non hanno
nomi codificati.
Se sei sul controllo numero 'i' accedi a Form.Controls(nomi(i+1)), facendo
attenzione quando sei sull'ultimo.
Sennň segui @Alex.
Ciao.
-Marco-
-- 
namor at inwind punto it
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Uhmmmm ..... allora, e non si deve neanche preoccupare dell'ultimo, usa 
l'indice del controllo corrente solo che nell'array trova il nome del 
controllo/i da associare.
i.e. sono sul controllo 7, vado in array e trovo 
badacheilcontrollodacontrollaree'il7698
set del controllo e come dicono i francesi ligie'sonfe'.
O magare usa "TAG" e va ancora meglio, non deve definire alcunche' deve 
avere solo la pazienza di varorizzare la detta proprieta'.
Ciao Marco. La ho messa in coda a te per proseguire l'opera.
Non mi ricordo se A. Baraldi gli avesse gia' accennato al "TAG"
-- 
ac
y-1=x

 y-1=x
No, può essere un'alternativa...
Personalmente preferisco, nel caso i controlli fossero molti, la
soluzione della classe, ed in quel caso non è un gran risparmio l'uso
del TAG rispetto ad avere una Property aggiuntiva nella Classe, anche
se potrebbe essere comodo...
Beh del materiale per lavorare c'è..., ora la fantasia fà il resto...!
@Alex


Grazie a tutti per i consigli.. ci batto un po' la testa e vedo che
riesco a fare ;)
ciao
Nick