Newsgroup: it.comp.appl.access
Titolo: associare casella di testo (che riceve dati da due campi) ad una campo di una tabella

In una maschera associata ad una tabella, ho creato una casella non
associata che riceve dati da due campi a secondo che si verifica una
condizione.
Il problema che ho è che vorrei che la stessa casella di testo fosse
associata al campo della tabella corrispondente. Se nell'origine dati
inserisco la condizione iif.....ecc , non posso indicare il campo associato
e viceversa.
Probabilmente mi sto perdendo in un bicchier d'acqua, ma per il momento le
mie conoscenze sono queste.
Ho ovviato con una macro che fa il copia incolla dalla casella non associata
a quella associata. Credo però che sia una soluzione sporca...
Che mi dite?
Ciao

 mie conoscenze sono queste.
Il discorso è che non devi salvare il valore calcolato in un campo, non è
corretto!
Visto che ci sono già gli altri due campi che ti danno il valore finale,
ogni volta che ti riservirà lo ricalcolerai, senza pescarlo da un campo
specifico!!!
Antonio


E se fosse proprio necessario salvarlo? come, ad esempio, nel caso
dell'imponibile totale di un prodotto nella tabella DettagliOrdini
(quantitàordinata * imponibile) dal momento che l'imponibile di un
prodotto cambia nel tempo mentre quello al momento dell'ordine deve
rimanere costante e quindi va memorizzato. Non sono riuscito a far di
meglio che risolvere con query di creazione tabella e query di
aggiornamento.
Grazie fin da ora e saluti.
-- 
ing. Franco Varoli
fva...@tin.it
fva...@libero.it

 ha scritto nel messaggio
news:tbmopucs27jmkfqvp...@4ax.com...

Anche tu puoi memorizzarti i due dati che ti servono in ogni momento a
rifare la moltiplicazione: la quantità ed il prezzo.
Il valore al livello di riga DettaglioOrdini e l'imponibile totale di un
ordine te li calcolerai quando ti servono, senza memorizzarli in una
tabella: altrimenti pensa che caos quando devi correggere una quantità (devi
rifare tutti i calcoli e rimodificare i valori dei campi calcolati: non mi
sembra proprio la strada per andare in Paradiso).
La logica di memorizzare in una cella il risultato di un calcolo è propria
di un foglio di calcolo (leggi Excel), ma non di un database relazionale.
La differenza sostanziale è che in Excel se cambi la quantità il risultato
contenuto in una cella viene ricalcolato automaticamente, in Access un campo
calcolato memorizzato in una tabella non te lo ricalcola nessuno.
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------

 ha scritto nel messaggio
news:gi4n9.46794$e31.1...@twister2.libero.it...

Nel mio caso non si tratta di un campo calcolato, bensì dell'assegnazione
definitiva di un numero di tessera di 6 caratteri, i primi due composti
dalla sigla della provincia e i restanti 4 dall'id della tabella.
In ogni caso, non ho ancora capito se c'è la possibilità di fare quanto
avevo chiesto in principio al post.
Ciao

 Ciao


 sembra proprio la strada per andare in Paradiso).
[...]
    Sono d'accordo con Antonio e Roberto riguardo l'opportunita' di
calcolare al momento, pero' ci andrei piano ad assolutizzare questo
discorso.
    Dipende.
    Dipende dal tipo di base dati con la quale abbiamo a che fare. Dinamica
o statica. Nell'ambito contabile amministrativo, per esempio, non mi sembra
proprio il caso di "elaborare" dati storici che devono essere, per loro
natura, *fissi*, *fissati*, *stampati*, *fotografati* nel database. Cosi'
come sono e stanno. Compreso eventuali errori.
    Tra l'altro l'introduzione dell'Euro dovrebbe aver dato ampia materia di
riflessione al riguardo.
    Per fare un caso limite, ma nemmeno tanto, troverei oltremodo spiacevole
;-) che una fattura di tre anni fa, di un cliente che ha cambiato indirizzo
quest'anno, mi venisse fuori in stampa con l'indirizzo nuovo e... con gli
importi in Euro.
    Impossibile, dite?
--
Ciao :-)
Maurizio
--------
?SPQR(C)
 X
--------

 --------
--




D'accordo mi hai convinto. Allora ho cambiato obiettivo: nelle righe
della tabella DettagliOrdini  memorizzo l'imponibile di una singola
confezione (oltre alla quantita') e non l'imponibile di tutte le
confezioni di un certo tipo che sono state ordinate.
Ho inserito la seguente routine che viene lanciata dopo che l'utente
ha immesso la quantita' e che funziona perfettamente.
Private Sub QuantitàDO_AfterUpdate()
    Me![ImponibileDO] = Me![ImponibileCo]
    ' impone che l'imponibile della tabella Confezioni
    ' venga trascritto nella tabella DettagliOrdini
End Sub
Saluti e grazie.


 come sono e stanno. Compreso eventuali errori.
E' vero.
Ma i dati che servono per calcolare il dato finale, sono già *stampati* nel
record, quindi, perchè *stampare* anche il risultato della loro
elaborazione?!?
Antonio

 ha scritto nel messaggio

Il mio caso e' diverso dai soliti, tipo Northwind tanto per
intenderci, poiche' tra gli Ordini ed i Prodotti ci sono le Confezioni
che sono legate da una relazione molti a molti sia con gli Ordini che
con i Prodotti. Se non memorizzo nella tabella Confezioni la somma
QuantitaProdotto * PrezzoProdotto di tutte le righe della tabella
DettagliConfezioni che hanno l'IDConfezione corrispondente, poi non
riesco a gestire gli Ordini con le solite maschere e sottomaschere.
Infatti nella tabella DettagliOrdini devo memorizzare l'attuale prezzo
della Confezione.
Finora ho risolto con due query di comando trasparenti all'utente
(grazie ad Emyr che mi ha indicato comre eliminare gli avvisi), ma mi
piacerebbe farlo attraverso la maschera che gestisce le Confezioni
utilizzando opportuni controlli.
Saluti.
