Sottrazione di campi numerici

domenica 02 dicembre 2007 - 13.21

miomiomio Profilo | Junior Member

ciao a tutti

ho una maschera nella quale vorrei inserire una funzione i sottrazione.

i valori da prendere sono importo e sommaacconti

somma acconti è una query che mi somma i valori dalla tabella acconti relativi ad un ID; importo è un campo numerico che contiene l'importo di una fattura.

la maschera visualizza entrambi i dati.

adesso io vorrei fare importo-sommaacconti



ho provato scrivendo un'espressione nel campo

=[Dati]![importo]-[somma]![SommaDiacconto]

ma in visualizzazione maschera il campo mi contiene un errore ?nome



come posso risolvere?

grazie

alpanix Profilo | Junior Member

Ciao.
usi Access?
perché non dài semplicemente il riferimento dei campi della maschera?
nella casella di testo dove vuoi che venga eseguita l'operazione inserisci i nomi dei campi sottraendi ([sommaacconti]-[importo]).
attento però, non i campi di tabella o query, ma i campi della maschera.

AlPanix

miomiomio Profilo | Junior Member

scusa non ho capito
nella maschera creo una casella di testo.
poi ho due query :
una che mi calcola la somma dei prezzi per ricavarmi il totale.
un'altra che mi calcola la somma degli acconti
nella maschera qual'è il nome dei campi? non è quello dela query?
sono all'inizio e non capiusco un gran che
grazie

alpanix Profilo | Junior Member

nella maschera il nome dei controlli lo trovi così:
cliccando con il tasto destro sul controllo (casella di testo, ad esempio) e scegliendo proprietà, si apre la finestrella delle proprietà; clicca poi sulla scheda "Altro" e il nome del controllo è il primo dall'alto.
se hai eseguito l'autocomposizione maschera, al controllo generalmente viene attribuito il nome del campo relativo che si trova sulla tabella, ma se invece la disegni da zero in modalità struttura, allora il controllo assume un nome generico (ad esempio, le caselle di testo si chiamano Testo0, Testo1, Testo2..)
quando vuoi fare un'operazione sulla maschera, devi scrivere in "Origine controllo" la formula della tua operazione indicando i nomi dei controlli (es: [Testo0] - [Testo1]) e non dei campi della tabella che rappresentano.

indi per cui, sulla tua maschera dovrai controllare i nomi dei controlli associati ai campi sommaacconti e importo (es. rispettivamente Testo0 e Testo1) e nella terza casella di testo (quella cioè in cui vuoi il risultato dell'operazione) dovrai mettere, come origine controllo, "= [Testo0] - [Testo1]" senza virgolette.

spero di essere stato chiaro
AlPanix

miomiomio Profilo | Junior Member

in effetti sei stato molto chiaro e ti ringrazio; pensa, sono riuscito a capire!
l'unica cosa che non capisco (non potevo mica capire tutto ehehe) è questa:
i due campi sono in 2 queryche mostro in maschera attraverso sottomaschere, e non so cosa devo fare i campi non me li seleziona.
dall'editor espressioni ho provato a scegliere i campi dalla struttura del database e mi ha inseito questa roba qua
=[Maschere]![Sottomaschera somma]![SommaDiprezzo]-[Maschere]![sommaacconti]![SommaDiacconti]
ma non funzia.......

grazie per l'uaiuto, ma avrai capiot che sono un caso disperato!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ciao ciao

alpanix Profilo | Junior Member

nel caso in cui tu stia facendo operazioni su campi di sottomaschere, la cosa è leggermente diversa, ma nella logica identica
ogni controllo di una sottomaschera fa parte dell'insieme dei controlli di quella sottomaschera, per cui dovrai indicarlo nel riferimento
esempio pratico:
sulla tua maschera principale "Form1" c'è il campo "Totale lordo"
sulla stessa maschera "Form1" c'è il campo "Totale Netto" che è la differenza tra [Totale lordo] e [Imposta], quest'ultimo presente nella sottomaschera "SubForm1"
la formula nel campo [Totale Netto] dovrà essere questa, senza virgolette:
"=[Totale lordo] - [SubForm1]![Imposta]"
il punto esclamativo significa che quello alla sua destra è un elemento dell'insieme alla sua sinistra
nel caso in cui al posto del punto esclamativo sia sostituito un punto ".", il testo a destra viene interpretato come proprietà o metodo, e né VBA né Access riescono a rintracciarlo. questo porta all'errore di valorizzazione
AlPanix

alpanix Profilo | Junior Member

se la soluzione che ti ho proposto ha risolto il tuo problema accetta la risposta, così chiudiamo il thread

AlPanix
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5