Newsgroup: it.comp.appl.access
Titolo: VBA come richiamare private sub

Salve a tutti:
Ho una mask1  con controllo pippo1  e una sottomask1 con controllo pluto2
come faccio in VBA a richiamare su clik di pippo1 la private sub pluto2_exit 
(cancel as integer) dato che i 2 controlli sono su 2 maschere differenti?
ho provato con [sottomask1.pluto2_exit] ma non funziona.
Suggerimenti?
Grazie Carla 

 Carla
-- 
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------

 pippo2.
Abbi pazienza....
quindi devo inserire un modulo, nel quale vado a scrivere
anzichč private sub  pluto2_exit (cancel as integer)
 public sub  pluto2_exit (cancel as integer) oppure
public sub  sottomask1_pluto2_exit (cancel as integer)?
e poi...
all'interno della sub devo far precedere il nome dei controlli da 
nomemaskacuiappartiene_nomecontrollo_evento(qualcosa)
oppure rimane tutto invariato nomecontrollo_evento(qualcosa)?
grazie ancora
Carla


"carla" <carl...@NOSPAMhotmail.com> ha scritto nel messaggio news:43453103$0$20486$4faf...@reader4.news.tin.it...

Aspetto anch'io... E non sai quanto!
Anzi io rincaro la dose:
[Form principale]
|_[scheda]
    |_[bottone "Inserisci"] '<-- esegue una Insert Into in [tab_A]
    |_[subForm] '<-- con origine dati [tab_A]
        |_[casella Combinata "Codice" (associata)] '<-- origine controllo una query su [tab_Codici]
A me piacerebbe che la casella combinata visualizzasse il valore corrispondente all'IdCodice inserito tramite il bottone "Inserisci" 
(Insert Into) una volta eseguito il Requery della subForm.
Quindi nell'evento "su clic" del bottone Inserisci troviamo:
'---
DoCmd.RunSQL "Insert Into tab_A ...."
Me!subForm.Form.Requery
'---
a questo punto non vedo i codici (descrittivi, non l'id) nella casella combinata "Codice", eppure i dati sono stati scritti; 
oltretutto nella subForm ho due altre caselle di testo che dovrebbero visualizzare altre informazioni prese dalla [tab_Codici]. 
Quest'ultime funzionano se dalla casella combinata scateno l'evento "dopo aggiornamento" e leggo le colonne nella query 
(.Column(x)).
Quindi i quesiti sono 2:
- visualizzare il codice descrittivo (colonna 2 della query);
- scatenare l'evento "dopo aggiornamento" per scrivere gli altri valori (colonna 3 e 4) nelle altre caselle di testo.
Resto in trepidante attesa...
Ciao.
-- 
Sergio MAZZA 

 Carla
Provo a dare un' altra indicazione a riguardo.
La questione è quella di richiamare, da una form, una sub inserita in
un' altra form (ovviamente entrambe sono aperte).
Mi sembra, dalle prove che ho fatto io (o meglio: per come Access
risponde a me) che non sia possibile chiamare una sub di un' altra form
se questa è inserita in un controllo mentre è possibile se questa è
una routine "dichiarata" chiamandola con la sintassi (se questa routine
è inserita in una sottomaschera):
Forms![NomeMascheraPrincipale].[NomeOggettoSubForm].form.NomeRoutine
dove [NomeSubForm] e' il nome dell' oggetto subForm "visto" nell'
elenco oggetti della maschera principale.
Nel caso in oggetto la routine dichiarata deve contenere il codice gia'
inserito nell' evento del controllo.
Giorgio

Sergio MAZZA ha scritto:

salve Sergio, provo a rispondere (con ritardo, non sono un
frequentatore assiduo) ma prima di tutto ringrazio per alcune tue
risposte avute in precedenza.
Utilizzo anche io maschere "molto popolate" di submask e controlli (in
pratica sono pannelli di comando con possibilità di eseguire selezioni
e calcoli sul posto) ma sono uno che da' ancora del Lei ad Access.
Penso che l' aggiornamento della cbo in una submask sia ottenibile se ,
oltre alla requery della submask, forzi da codice anche la requery
della cbo della submask (il comando lo indico per completezza:
Me!subForm.Form.NomeCbo.Requery).
Inoltre penso che si possa ottenere quel che chiedi al punto 2 se metti
il codice dell' aggiornamento delle txtbox in una routine (dichiarata
pubblica) della submask e chiami questa routine con
Me!subForm.Form.Nomeroutine o, forse meglio, con la dicitura estesa
Forms!NomeFormPrincipale.NomesubForm.form.Nomeroutine
Giorgio

 ha scritto nel messaggio news:1128939408....@g43g2000cwa.googlegroups.com...
salve Sergio, provo a rispondere (con ritardo, non sono un
frequentatore assiduo) ma prima di tutto ringrazio per alcune tue
risposte avute in precedenza.
[risposta]
Prego;
Utilizzo anche io maschere "molto popolate" di submask e controlli (in
pratica sono pannelli di comando con possibilità di eseguire selezioni
e calcoli sul posto) ma sono uno che da' ancora del Lei ad Access.
Penso che l' aggiornamento della cbo in una submask sia ottenibile se ,
oltre alla requery della submask, forzi da codice anche la requery
della cbo della submask (il comando lo indico per completezza:
Me!subForm.Form.NomeCbo.Requery).
Inoltre penso che si possa ottenere quel che chiedi al punto 2 se metti
il codice dell' aggiornamento delle txtbox in una routine (dichiarata
pubblica) della submask e chiami questa routine con
Me!subForm.Form.Nomeroutine o, forse meglio, con la dicitura estesa
Forms!NomeFormPrincipale.NomesubForm.form.Nomeroutine
Giorgio
[risposta]
Ti ringrazio della risposta ma il requery della casella combinata era la prima cosa che avevo provato oltre a vari tentativi "alla 
cieca".
Altri mi hanno detto che è possibile ma, sgoogleggiando, non trovo nulla in merito.
Per ora ho risolto cambiando la casella combinata in casella di testo; io nel mio problema però mi riferivo ad access'97+sr2, magari 
le versioni successive...
Ciao.
-- 
Sergio MAZZA