Newsgroup: it.comp.appl.access
Titolo: Operazioni matematiche in tabella

Salve a tutti.
Ho realizzato una tabella ( tb_SchedeFornitori ) così
strutturata:
Ditta|N.Fatt.|Descrizione|Imponibile|Iva|Totale|Pagato|Saldo
La ditta è
presa da un'altra tabella ( tb_AnagraficheFornitori ) tramite
collegamento.
Ho creato una maschera che, scelto la ditta da un'elenco,
apre una maschera
dove c'è l'anagrafica della ditta scelta e cliccando su
un pulsante
"Scheda", mi apre a sua volta un'altra maschera che richiama
la tabella
sopra descritta con una query riassunta con la seguente
istruzione SQL:
SELECT tb_SchedeFornitori.fornitore,
tb_SchedeFornitori.id_schedaFornitore,
tb_SchedeFornitori.data,
tb_SchedeFornitori.n_fattura,
tb_SchedeFornitori.descrizione,
tb_SchedeFornitori.imponibile,
tb_SchedeFornitori.iva,
tb_SchedeFornitori.tot, tb_SchedeFornitori.pagato,
tb_SchedeFornitori.saldo
FROM tb_SchedeFornitori
WHERE
(((tb_SchedeFornitori.fornitore)=[Forms]![AnagraficaFornitori_filtrati]![dit
ta]));
Praticamente prende tutti i record della tabella
tb_SchedeFornitori che
risultano collegati alla ditta scelta.
Ho fatto la
maschera in modo da avere su una riga tutte le voci, e poi ho
settato la
visualizzazione in "Maschere continue", in modo da avere una
tabella
simile a quella di Excel.
I record li posso correggere, eliminare o
aggiuangere.
Il problema si fà quando devo fare le operazioni seguenti:
Il campo "Totale" deve essere calcolato automaticamente in questo modo:
=((Imponibile/100)*Iva)+Imponibile
Il campo "Pagato" viene inserito
dall'utente al momento che la ditta viene
pagata.
Il campo "Saldo" deve
essere calcolato automaticamente in questo modo:
=Totale-Pagato
Infatti, se viene inserito un'imponibile pari a 23000 Euro, e l'iva 20%, il
totale dovrebbe risultare 27600 Euro e il saldo pari a 27600 Euro.
Quando
l'utente inserirà in "Pagato" il valore 27600 Euro, il saldo dovrà
essere
pari a 0 Euro.
Per fare queste operazioni automatiche ho inserito in
"Origine Controllo"
nella scheda "Dati" delle proprità del campo "Totale"
la seguente formula:
=(([imponibile]/100)*[iva])+[imponibile]
e per il
campo "Saldo" quest'altra:
=[tot]-[pagato]
E' chiaro che visualizzerà i
risultati solamente nella maschera in tempo
reale, quindi non salverà i
dati nella tabella.
Per questo ho fatto una query di aggiornamento che
entra in funzione
attraverso il pulsante "Chiudi" inserito nella maschera.
Il problema è che fà l'aggiornamento di TUTTI  I RECORD PRESENTI NELLA
TABELLA!
E' ovvio che se nella tabella ci sono 2000 record, aggiornerà
2000 record il
chè, ovviamente, richiederà moltissimo tempo.
Come posso
aggirare il problema facendo aggiornare solamente i record
interessati da
quella data ditta?
Un'altra domanda: si può creare in una maschera
un'effetto tipo quello di
excel che prende i dati da una tabella del DB?
Non dico in visualizzazione "Tabella", perchè così non posso utilizzare
pulsanti o altre cose. E non dico neanche con la visualizzazione "Maschere
continue" (il metodo che ho descritto sopra).
grazie a tutti
--------------------------------
Inviato via 
http://usenet.iol.it

 chè, ovviamente, richiederà moltissimo tempo.
cut
Mi devi scusare, ma secondo me ti sei imbarcato in un'impresa cui non eri
preparato.
Non e' che il tuo problema si possa discutere e risolvere qui in qualche
battuta.
Credimi, non parlo a casaccio, ma ho affrontato i problemi di cui parli e
questo tipo di gestione non e' semplice.
Se i tuoi record restano 2000 o giu' di li' fai pure aggiornare l'intera
tabella che e' piu' semplice.
Sib

 ha scritto nel messaggio
news:212Z141Z244Z7Y...@usenet.iol.it...

se ho capito bene quello che ti serve dovrebbe essere semplice, basta che
filtri la query di aggiornamento  attraverso il criterio
forms!tuamaschera!tuocontollo.
Se non ho capito nulla fammi sapere
ciao
MAssimiliano

 Inviato via 
http://usenet.iol.it
Ciao.
--
Sergio MAZZA