Newsgroup: it.comp.appl.access
Titolo: in una sottomaschera controllare l'importo dei dettagli

ciao a tutti e buona domenica
 
Axp sp3 Wxp sp3
tbl Conti....IdConto, Conto .....
tblOrdini...IDOrdine...IDConto
tblDettagliordini...IDOrdine..IDConto
per ogni Conto si possono avere molti Ordini.
maschera Ordine, e sotto maschera DettagliOrdine.
nella maschera Ordine ho un controllo: Conto, riferito alla tblConti.
ed alcuni controlli tipo:
=DSum("PrezzoAcquisto*QtaOrdinata";"tblDettagliOrdini";"IDConto=" & 
[IDConto])
per fare la somma dei dettagli.
 
domanda: come posso impedire che l'importo dei dettagli inseriti nella
sottomaschera superi l'importo del Conto?
 
finora ho trovato un solo evento: su scaricamento della maschera...
controllo le somme ed annullo ordine.
non mi sembra il massimo...
qualche idea, suggerimenti?
 
Grazie
Daniele
 
 
 

 non mi sembra il massimo...
 
Ciao Daniele,
se interpreto bene la domanda dovrebbe fare al caso tuo:
 
Event BeforeUpdate(Cancel As Integer)
    Membro di Access.Form
 
nel quale verificherai che la somma non superi... boh, quel che non deve superare e nel caso assegni il valore True all'argomento Cancel con un messaggio all'utente.
 
-- 
Ciao! :)
Maurizio

 nel quale verificherai che la somma non superi... boh, quel che non deve superare e nel caso assegni il valore True all'argomento Cancel con un messaggio all'utente.
 
Ciao Daniel,
per sbaglio hai risposto a me personalmente. Riporto qui:
----------
avevo già provato, ma non succede niente perché l'importo dell'ultimo record 
che si sta inserendo non è ancora sommato dalle Dsum di cui sopra.
per meglio capire faccio un esempio:
Conto da 600 euro
inserisco due Ordini da 200 euro ciascuno.
al terzo Ordine le Dsum mi riportano 400 euro
inserisco nuovo Ordine
primo record con importo da 1000 euro  appena il focus passa al secondo 
record la Dsum mi riporta 1400 euro.
l'errore non viene intercettato perchè il record non è salvato.
nella sotto maschera ho i riferimenti ai due controlli della mOrdine: 
TotaleConto e Conto.
----------
Tutto sta a dove usi la routine evento "BeforeUpdate". Se ho ben compreso usi quella della maschera principale invece devi usare quella della sottomaschera.
E non c'e' nessun "errore da intercettare", solo devi impedire l'aggiornamento del nuovo record di dettaglio e avvisare l'utente che e' stato superato il limite.
-- 
Ciao! :)
Maurizio

 ha scritto nel messaggio 
news:1f8cd012-3507-451a...@googlegroups.com...

per sbaglio hai risposto a me personalmente. Riporto qui:scusami :-(
 
----------
avevo già provato, ma non succede niente perché l'importo dell'ultimo record
che si sta inserendo non è ancora sommato dalle Dsum di cui sopra.
per meglio capire faccio un esempio:
Conto da 600 euro
inserisco due Ordini da 200 euro ciascuno.
al terzo Ordine le Dsum mi riportano 400 euro
inserisco nuovo Ordine
primo record con importo da 1000 euro  appena il focus passa al secondo
record la Dsum mi riporta 1400 euro.
l'errore non viene intercettato perchè il record non è salvato.
nella sotto maschera ho i riferimenti ai due controlli della mOrdine:
TotaleConto e Conto.
----------
Tutto sta a dove usi la routine evento "BeforeUpdate". Se ho ben compreso 
usi quella della maschera principaleNo. della sottomascherainvece devi usare 
quella della sottomaschera.
E non c'e' nessun "errore da intercettare", solo devi impedire 
l'aggiornamento del nuovo record di dettaglio e avvisare l'utente che e' 
stato superato il limite.        vero...però l'ostacolo é la casella di 
controllo che ho nella sm la quale NON è aggiornata con la somma del record 
corrente.
        devo trovare il modo di averla aggiornata PRIMA del salvataggio del 
record. forse su Enter
        di qualche txt dopo prezzo e qta. che ne dici?.
 
        ciao Maurizio
        grazie ancora
 
Daniele 
 
 

 ha scritto nel messaggio 
news:mh2il5$ch2$1...@speranza.aioe.org...

vero...però l'ostacolo é la casella di  controllo che ho nella sm la quale 
NON è aggiornata con la somma del record  corrente.  devo trovare il modo di 
averla aggiornata PRIMA del salvataggio del record. forse su Enter di 
qualche txt dopo prezzo e qta. che ne dici?.
 
    ciao Maurizio
    grazie ancora
    Daniele
 
chiedo scusa ho qualche problema con Thunderbird.
spero di aver rimesso a posto il quoting
 
Daniele 
 
 

 record. forse su Enter di qualche txt dopo prezzo e qta..
 
Ciao Daniele,
ma no, perche'?... Nella casella c'e' il totale *prima* dell'immissione del nuovo record. Sommi a quel valore quello nel record che e' in aggiornamento e verifichi se la somma supera l'importo dell'ordine. Se lo supera messaggio all'utente e annulli l'immissione.
 
-- 
Ciao! :)
Maurizio

 ha scritto nel messaggio 
news:8eeb1202-fa01-4589...@googlegroups.com...

Giusto ragionamento!
che mi ha consentito di risolvere il problema.
Per avere Il Totale del conto sempre aggiornato, nella sottomaschera, ho 
dovuto usare alcuni accorgimenti su evento Dopo Eliminazione.
Perchè lo spostamento del mouse su un record qualsiasi oppure la 
cancellazione di un record mi alterava il totale.
 
 
Ciao Maurizio
Grazie ancora per la tua pazienza e cortesia.
 
Daniele
 
 

 Grazie ancora per la tua pazienza e cortesia.
 
Ciao Daniele,
grazie a te del cortese riscontro.
 
-- 
Ciao! :)
Maurizio