Newsgroup: it.comp.appl.access
Titolo: Chiamare routine sottomaschera

[A97senza sp]-[W98 fe]
Fatta la debita premessa vi descrivo il mio problema:
Ho una maschera associata ad una tabella (tbDati) con due campi:
ID(contatore) e SommaDati (numerico).
Questa  maschera contiene una sottomaschera  associata ad un'altra tb
(tbSommaDati) con tre campi: ID(contatore) ,  RaccordoID(numerico) e
Dato(numerico).
Nella maschera principale  ho associato al controllo sottomaschera il campo
Master ID con il campo secondario RaccordoID.
Per una ragione che, se vi interessa poi vi spiego, voglio nel controllo
associato al campo SommaDati la somma dei Dati della sottomaschera
(visualizzata in mod.maschere continue e che già contiene un controllo non
associato che mi calcola nel piè di pagina maschera il totale
"=Somma([Dato])" ).
Ho scritto una semplice routine nell'evento DopoAggiornamento del controllo
Dato nella sottomaschera che mi  prende il valore calcolato dal controllo
nel piè di Pag. Mas.
e lo attribuisce al controllo associato SommaDati nella form principale:
Private Sub dato_AfterUpdate()
Forms("Maschera1").tboxSommaAssociata = Me.tboxSommaDato
End Sub
Ora avrei voluto invocare questa routine all'apertura della maschera
principale :
Private Sub Form_Open(Cancel As Integer)
Forms!Maschera1![smaschera].Form.dato_AfterUpdate
End Sub
ma mi genera un Errore di run-time '2465'.
Ho guardato allora sull'help ( qualche errore di sintassi può capitare ):
chiave di ricerca "sottomaschera" argomento "Chiamata delle routine in una
sottomaschera o in un sottoreport" e ti trovo ...
Forms!Ordini![Sottomaschera Ordini].Form.NomiElenco .
Me la  sono allora presa con l'evento apertura  pensando che nel momento
dell'esecuzione Access non avesse instanziato ancora la sottomaschera.
Ho creato un pulsantino che ...  stesso errore !!
A questo punto ho bisogno che qualcuno mi spieghi ,se c'è un peche ,
latrimenti suggerisca un'altra soluzione .Grazie .
P.S. : Io intanto provando col metodo dell' istanza New della sottomaschera
ottengo che non trova il metodo e, se rendo public la Subroutine , un   bel
Zero .
Ciao         Andre@

"Andre@" <andrea...@NOSPAMtiscalinet.it> ha scritto nel messaggio
news:96mcbu$7fc$1...@serv1.iunet.it...

Io farei così.
A fronte dell'evento "Su corrente" della maschera principale genererei il
seguente codice VBA:
Me!tboxSommaAssociata = DSum ("[Dato]", "tbSommaDati", "RaccordoID =" & ID)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Grazie per la risposta .
Provo e ti faccio sapere .
PS:  Ma dove ho sbagliato (concettualmente) ?

"Andre@" <andrea...@NOSPAMtiscalinet.it> ha scritto nel messaggio
news:96tktr$8sh$1...@pegasus.tiscalinet.it...

Intanto secondo me hai sbagliato nella scelta dell'evento; l'help dice che:
"L'evento Apertura si verifica quando viene aperta una maschera, ma prima
della visualizzazione del primo record" e quindi non puoi invocare una
routine che fa riferimento ad un controllo di un record che non č ancora
corrente. Inoltre mi sembra di capire che la tua routine vada eseguita per
ogni record che visualizzi nella maschera principale e non una sola volta
quando apri la maschera.
Per quanto riguarda invece l'evento "Su corrente" l'help dice :"L'evento
Corrente si verifica quando lo stato attivo si sposta su un record che
quindi diventa il record corrente, oppure quando una maschera viene
aggiornata o viene rieseguita una query su di essa." Quindi mi sembra che č
quello che ti serve.
Quanto all'esempio che hai trovato sull'help occorrerebbe vedere in che
contesto veniva inserito e se era assimilabile al tuo caso : comunque non
avendo voglia di appurare ciň, ho preferito (come da te richiesto)
suggerirti un'altra soluzione basata su quelle che sono le mie conoscenze di
Access.


 ---------------------------------------------
L'evento che mi hai suggerito è senz'altro il più adatto per ottenere il
risultato che mi proponevo . Io considero un errore come un ottima occasione
per approfondire le proprie conoscenze .
In questo caso ero curioso , tra l'altro , di sapere come invocare un evento
della sottomaschera dalla maschera principale. Fermo restando quanto ti ho
scritto sopra.
Ciao e grazie ancora per la tua disponibilità.
Andrea
PS: Scusa per il ritardo nella risposta ma sono stato qualche giorno fuori.