Newsgroup: it.comp.appl.access
Titolo: Aggiornamento campi tra sottomaschere

Ho una Maschera composta da due Sottomaschere: SottomascheraA e
SottomascheraB. Vorrei muovere il contento di un campo QuantitaA (della
SottomascheraA ) dopo il suo Aggiornamento al campo QuantitaB (della
SottomascheraB)il risultato vorrei vederlo immediatamente, invece lo vedo
solo dopo avere Chiuso e Riaperto la Maschera, oppure se mi sposto al
record successivo. Ho provato con una Requery ma niente da fare. 
Grazie per l'aiuto.
Nicola
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

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

 > Nicola
Ho fatto cosě
Forms!Maschera!SottomascheaB.Requery
(oppure la scrittura corretta č:
Forms!Maschera!SottomascheaB.Form!QuantitaB.Requery)
Nel caso vorrei sommare tutti i campi QuantitaA in QuantitaB pensavo di
usare una funzione  DSum che va a sommare tutte le possibili QuantitaB.
Hai qualche altro suggerimento. 
Ciao e grazie


 Ciao e grazie


 > Nicola
Cerco di fare un esempio i campi sono QuantitaA e QuantitaB. La somma di
tutti i record di QuantitaA devono essere sommati in QuantitaB attraverso
una DSum fatto opportunamente (sui record della SottomascheraA). 
Avviene una cosa strana.
 Azione              SottomascheaA     SottomascheaB
               QuantitaA         QuantitaB
partenza           0                 0
digito 8  ===>     8                 0
digito 10 ===>    10                 0
(al posto di 8 DSum non vede alcuna variazione sulla tabella )
Digito 2  ===>     2                10
adesso ho due record nella SottomascheraA 10 e 2  e se vado sulla TabellaA
effettivamente trovo solo il valore 10 .
Non so se sono riuscito a spiegarmi.
Sembra che quando viene digitato il valore nel campo QuantitaA il
salvataggio sulla tabella avviene effettivmeno solo quando cambio record
oppure quando chiudo la tabella.
Ciao


 > > Nicola

Riscrivo l'esempio perchč č stato pubblicato senza rispettare la
tabulazione:
1)Partenza: QuantitaA=0 ; QuantitaB = 0
2)Digito 8  QuantitaA=8 ; QuantitaB =0 (Sulla TabellaA č ancora tutto 0 e
la DSum da giustamente 0 in QuantitaB
3)Digito 10 al posto di 8 in QuantitaA e sulla TabellaA č ancora tutto a 0
4)Digito 2 (secondo record in A) e la QuantitaB=10 e cosi via ... č come
se l'ultimo valore venisse salvato sulla TabellaA quando cambio record
oppure quando chiudo la tabella.
Ciao e grazie


 Ciao


 Ciao e grazie


 > Nicola
Grazie mille funziona ....  buona Domenica


 DoCmd.RunCommand acCmdSaveRecord
Se vado ad immettere il secondo Record mi dice :
Errore Run Time "2046" Comando o azione Non Disponibile.
Per il primo record è OK dove sto' sbagliando ?
Grazie e Ciao


 Nicola
Per essere più precisi il comando: DoCmd.RunCommand acCmdSaveRecord
l'ho messo sull'evento "AfterUpdate" della Quantità che voglio aggiornare
. 


 l'ho messo sull'evento "AfterUpdate" della Quantità che voglio aggiornare
Non capisco cosa vuoi intendere con "Se vado ad immettere il secondo 
Record".
Con quel comaando si salva su disco il record corrente della maschera a 
condizione che abbia subito variazioni che giustifichino il salvataggio.


 condizione che abbia subito variazioni che giustifichino il salvataggio.
Cerco di spiegarmi meglio con un esempio
1) QTAB=0 (è il campo della sottomascheraB a cui dovranno essere sommati
tutte le QTAA della SottomascheraA. All'inizio ho QTAA=0 (il primo record
è già presente)
2) Digito cambio il valore di QTAA=5 (sono sempre al primo record della
SottomascheraA). Applico l'istruzione: DoCmd.RunCommand acCmdSaveRecord.
Tutto OK.
3) Sempre dalla SottoascheraA passo dal primo record al secondo per
immettere un altra quantità QTAA=5 e qui va in errore:
"2046": Comando o alzione salvarecord non dipsponibile oppure:
"2645": Impossibile trovare il campo a cui si fa riferimento
nell'espressione .
Per il momento per ovviare al problema ho messo questa istruzione:
Private Sub QTA_AfterUpdate()
If Me.NewRecord = False Then
DoCmd.RunCommand acCmdSaveRecord
End If
che mi risolve parzialmente il problema: perchè quando Chiudo le Maschere
e poi le riapro mi tro i valori a posto. Mi piacerebbe capire come ovviare
a questa cosa.
Ciao e grazie
Nicola


 Nicola
-- 






$$Cosa intendi che trovi i "valori a posto"?
$$ Tu con quella If hai fatto in modo di salvare il record solo se non è
$$un  nuovo record.
Ho messo questa IF perchè è solo nel caso di un nuovo record che va in
errore. Chiudendo e riaprendo la somma nel QTAB viene fatta
$$ Mi piacerebbe capire cosa hai bisogno di ottenere.
$$ Sicuramente dipende da me, ma non riesco a capirlo.
Vorrei andare a sommare nel campo QTAB (della SottomascheraB) tutti i
valori immessi nel campo QTAA (della SottomascheraA). Cio significa che a
una QTAB possono corrispondere tante (records)  QTAA . Le Le due
Sottomaschere A e B sono all'interno di una MascheraPrincipale che le
comprende.
Da notare che sulla MascheraPrincipale ho messo un Controllo
"SommaParziale" che tramite una DSum (fatta sulle QTAA) messa in Origine
Controllo funziona: vale a dire che se in QTAA ho i valori 1°Rec= 5
2°Rec=6 allora  in SommaParziale ho il valore 11 e così via.
La stessa cosa non riesco a farla in QTAB perche in Origine controllo devo
mettere il campo della tabella QTAB. Allora ho provato a mettere 
QTAB= SommaParziale ma la cosa non funziona bene perchè vado a perdere
proprio l'ultimo valore immesso ....
Evidentemente dopo tutte queste prove ... ho perso la strada ora se riesci
a darmi una dritta bene altrimenti provero a lasciar sedimentare la cosa
...
Grazie per la tua attenzione e buona giornata


 Grazie per la tua attenzione e buona giornata
Prego
