|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Mar 2004
Città: a casa
Messaggi: 255
|
[ACCESS] operazione tra campi
ciao gente,
vi spiego un po il mio problema.... Ho una tabella con diversi campi. Ora il mio problema è il non saper effettuare una sottrazione tra due e scriverla in un altro (tutti e tre campi tipo VALUTA). Ci sono riuscito con la maschera( con l'espressione: =[campo1]-[campo2].... ma dato che l'operazione la effettua solo all'apertura della maschera, non mi salva il valore effettuato nella tabella relativa. Naturalmente quando creo il report per la stampa/visualizzazione il campo3 risulta vuoto e non me lo stampa/visualizza. come fare per passare/salvare il valore del campo3 (dalla maschera) nella tabella relativa? Ultima modifica di hondaXR : 30-04-2006 alle 15:55. |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2006
Messaggi: 89
|
Prima di rispondere alla tua domanda ti faccio notare una cosa:
quando si progetta una base di dati (specialmente di grandi dimensioni) si cerca sempre di evitare ridondanze di dati. Mettere un campo nel quale va inserita la differenza tra due altri campi è l'esempio classico di ridondanza di dati. L'informazione che tu vuoi ricavare (come differenza di due campi) è buona norma fornirla all'utente nel momento di interrogazione del database. (ad esempio con una select campo1-campo2 as differenza from...). Detto questo...in access non so bene come si possa fare. Però in altri DBMS (per esempio DB2) è possibile creare dei trigger (procedure eseguite al verificarsi di determinati eventi) che permettono tra le altre cose di fare ciò che tu richiedi. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Mar 2004
Città: a casa
Messaggi: 255
|
ho capito, ti rigrazio per il consiglio però nemmeno io ho idea di come si possa risolvere il problema in access
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: Apr 2006
Messaggi: 89
|
mmmhhh....access lo conosco poco e niente. Prova cmq a vedere su internet se si possono implementare i trigger in access.
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Aug 2005
Città: Aulla (MS)
Messaggi: 1352
|
Quote:
if isNumeric([CAMPO_1]) AND isNumeric([CAMPO_2]) THEN [CAMPO_3]=[CAMPO_1]-[CAMPO_2] else msgbox "ATTENZIONE: E' necessario inserire un valore numerico valido nei campi: CAMPO_1 e CAMPO_2", vbokonly+vbinformation,"Attenzione !!" end if |
|
|
|
|
|
|
#6 |
|
Member
Iscritto dal: Mar 2004
Città: a casa
Messaggi: 255
|
@ginogino65
l'operazione va fatta nella tabella o nella maschera? (nella tabella mi da errore) evento change sarebbe scheda evento... dopo aggiornamento? che casino!!!!!!
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Aug 2005
Città: Aulla (MS)
Messaggi: 1352
|
Quote:
|
|
|
|
|
|
|
#8 |
|
Member
Iscritto dal: May 2003
Messaggi: 284
|
dunque,
il problema della visualizzazione nel report è piuttosto semplice: basta mettere, esattamente come fai nella maschera, come origine del campo la differenza dei due campi e non il CAMPO_3 che così non ti serve più e risolvi anche il problema della ridondanza. se vuoi mantere i tre campi devi inserire quel codice in un evento, a seconda della logica con cui preferisci che si proceda, mi viene in mente: - evento change del recordest (in access credo che venga sollevato quando chiudi la maschera o passi ad un altro record... quindi non lo vedi sul record corrente.... sempre se mi ricordo bene) - su evento change di uno dei due campi (in questo caso, la logica dovrebbe essere una compilazione sequenziale, prima un campo, poi l'altro, e su questo secondo mettere il controllo) - su evento click, di un pulsante, in questo caso dobbiamo essere sicuro della affidabilità dell'utente che usa la maschera.... ps. che vuol dire "nella tabella mi da errore"? come fai ad associare una operazione alla tabella!?
__________________
CANON A80 --> SX110 --> 550D |
|
|
|
|
|
#9 | |
|
Member
Iscritto dal: Mar 2004
Città: a casa
Messaggi: 255
|
Quote:
nella tabella mi da errore se scrivo nel campo3 "=campo1-campo2" ok ho risolto il problema nel report come mi hai consigliato (mettere l'espressione come ho fatto nella maschera) mi resta il problema di come salvare il risultato nel campo 3 della tabella che espressione (o meglio SINTASSI) devo usare è dove metterla? Ultima modifica di hondaXR : 03-05-2006 alle 14:26. |
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:02.











che casino!!!!!!








