Newsgroup: it.comp.appl.access
Titolo: Recalc di dati in subform da altra form.

WXP SP2/A03 SP2
Ciao Ragazzi,
Form1, Subform1, Form2
Form1 con cui gestisco dei prodotti composti ha (1-n)Subform1 con le righe
dei loro componenti ed in Form2 l'anagrafico dei componenti.
Quando mi manca un componente o devo variarne un dato, tipicamente il
prezzo, un pulsante in Form1 mi chiama Form2 (alla quale passo Form1 come
OpenArgs) e qui posso fare le mie modifiche.
Sul pulsante di chiusura di Form2 ho inserito il codice:
    If Me.OpenArgs = "Form1" Then
(l'If è stata inserita perchè la stessa maschera può essere richiamata
anhe da un'altra; in quel caso non deve fare calcoli)
    Forms![Form1]![Form2]![ProductName].Requery
(in quanto il componente viene scelto sulle righe attraverso una combo che
desidero si aggiorni già al ritorno in Form1)
    End If
 
    DoCmd.Close
Vorrei che, sempre su chiusura, si aggiornassero anche i calcoli nella
SubForm1 ed in Form1. Ho provato ad aggiungere:
    Forms![Form1]![Form2].Recalc
    Forms![Form1].Recalc
ma non ne vuol sapere.
Suggestions?
Thks.
-- 
TANNHAUSER
"I've seen things you people wouldn't believe..."
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

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

 Hai provato con Requery invece che con Recalc?
Ciao Roberto,
ho aggiunto
Forms![Form1]![Form2].Requery
Forms![Form1].Requery
tra IF e End IF e glieffetti sono stati:
1- mi fa il requery sull'origine dati di Form1 e Subform1 ma non effettua
alcun calcolo nei campi calcolati (prezzo * quantità)(Nota: se mettevo
Recalc benivo avvisato che "Object doesn't support this property or
method");
2- chiude la Form1, quella chiamante, ma non si chiude la Form2; se
ripremo su ESCI, ovviamente, mi dice che non sa cosa sia la Form1, ormai
chiusa.
La seconda conseguenza, secondo te, dipende dal fatto che il focus è
tornato sulla Form1 e quindi il comando DoCmd.Close agisce su di essa?
Grazie.


 Grazie.
Prego.


 quindi senza poter prendere visione di tutto il codice VBA che usi.
Infatti, ho utilizzato il DoCmnd.Close con la Form2 come argomento, così
dichiaro espressamente quale chiudere: questione risolta.
Per quanto riguarda, invece, il Recalc delle Form1 e SubForm1, volevo
sapere se la sintassi:
Forms!Form1![Sub Form1].Recalc e Forms!Form1.Recalc fosse corretta o se,
mancasse qualcosa o se, infine, "Recalc" non fosse consentito per le Form.


 Grazie.
Ciao TANNHAUSER
Trovo utilissima questa tabellina per i riferimenti:
http://www.mvps.org/access/forms/frm0031.htm
che ci suggerisce Karl nella FAQ 4.2
Mancherebbe "form" nella tua stringa:
Forms!Form1![Sub Form1].Form.Recalc
--
rgrds
SC
-- 


 Grazie.
Prego


 Forms!Form1![Sub Form1].Form.Recalc
Ciao sv,
grazie per l'indicazione sulla tabella. In effetti non ho utilizzato la
parola riservata "form" dopo il nome della subform ma, nel caso di una
equivalente requery, questa non è servita. Noto che la tabella matriciale
prevede i riferimenti in caso di form principale, subform di primo livello
e subform di secondo livello ma nulla dice in merito ai riferimenti fatti
da un'altra form aperta dalla form principale, appunto il mio caso.
Grazie comunque.
-- 
TANNHAUSER
"I've seen things you people wouldn't believe..."
questo articolo e` stato inviato via web dal servizio gratuito 
