Newsgroup: it.comp.appl.access
Titolo: Riportare un calcolo in una altra maschera: come???

 Luigi
Puoi risolvere il tuo problema usando la funzione di aggregazione sui
dominii DMax (vedi help).
Se la prima sottomaschera ha come origine record una tabella chiamata
tblProdotti che ha una struttura simile a questa:
IDProdotto            Contatore e chiave primaria
DescrProdotto        Testo
ecc. ecc.
Se l'altra sottomaschera ha come origine record una tabella chiamata
tblPrezzi che ha una struttura simile a questa:
ID                    Contatore e chiave primaria
IDProdotto       Numerico
Fornitore          Testo
Prezzo              Valuta
ecc. ecc.
Se le due tabelle sono in relazione uno-a-molti in base ai campi IDProdotto.
Se nella prima sottomaschera il controllo associato al campo IDProdotto di
tblProdotti si chiama anche lui IDProdotto.
Nella prima sottomaschera inserisci una casella di testo non associata e
nella sua origine controllo scrivi:
= DMax("Prezzo"; "tblPrezzi"; "IDProdotto=" & Me!IDProdotto)
--
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Io uso solo Access 97 e non sono in grado di darti informazioni utili circa
l'installazione e l'utilizzo dell'help in linea con Access 2002: non so
quanto sia diverso dal mio.
Comunque se sulla scheda Trova del mio help digito DMax, queto è quello che
ottengo:
=======================================
Funzioni DMin, DMax
È possibile utilizzare le funzioni DMin e DMax per stabilire rispettivamente
il valore minimo e il valore massimo in un determinato set di record, un
dominio. Utilizzare le funzioni DMin e DMax in Visual Basic, in una macro,
in un'espressione nella query o in un controllo calcolato.
È possibile, ad esempio, utilizzare le funzioni DMin e DMax nei controlli
calcolati in un report per visualizzare il totale massimo e minimo degli
ordini relativo a un determinato cliente. È anche possibile utilizzare la
funzione DMin in un'espressione nella query per visualizzare tutti gli
ordini con uno sconto superiore a quello minimo.
Sintassi
DMin(espr, dominio[, criteri])
DMax(espr, dominio[, criteri])
Le funzioni DMin e DMax dispongono degli argomenti riportati di seguito.
Argomento Descrizione
espr Un'espressione che identifica il campo di cui si desidera trovare il
minimo o il massimo. È possibile che si tratti di un'espressione stringa che
identifica un campo in una tabella o in una query oppure un'espressione che
esegue un calcolo dei campi. In espr è possibile includere il nome di un
campo in una tabella, un controllo in una maschera, una costante o una
funzione. Se espr include una funzione, è possibile che sia incorporata o
definita dall'utente, ma non è possibile che si tratti di un'altra funzione
di aggregazione sui domini o di aggregazione SQL.
dominio Un'espressione stringa che identifica il set di record che
costituisce il dominio. È possibile che sia un nome di tabella o di query.
criteri Una stringa opzionale utilizzata per limitare l'intervallo di dati
su cui viene eseguita la funzione DMin o DMax. L'argomento criteri, ad
esempio, equivale spesso alla proposizione WHERE priva della parola WHERE in
un'espressione SQL. Se si omette l'argomento criteri, la funzione DMin o
DMax valuta espr confrontandolo con l'intero dominio. È necessario che
qualsiasi campo incluso in criteri appartenga anche all'argomento dominio.
In caso contrario, le funzioni DMin o DMax restituiscono il valore Null.
Osservazioni
Le funzioni DMin e DMax restituiscono i valori minimo e massimo che
soddisfano l'argomento criteri. Se espr identifica dati numerici, le
funzioni DMin e DMax restituiscono valori numerici. Se espr identifica dati
di tipo stringa, le funzioni restituiscono rispettivamente la prima e
l'ultima stringa secondo l'ordine alfabetico.
Le funzioni DMin e DMax non considerano i valori Null nel campo a cui fa
riferimento espr. Se, tuttavia, nessun record soddisfa criteri o se dominio
non contiene alcun record, le funzioni DMin e DMax restituiscono il valore
Null.
Sia che le funzioni DMin o DMax vengano utilizzate in una macro, in un
modulo, in un'espressione nella query o in un controllo calcolato, è
necessario creare l'argomento criteri con attenzione per assicurarsi che
venga valutato correttamente.
È possibile utilizzare DMin e DMax per specificare i criteri nella riga
Criteri di una query, in un'espressione di campo calcolato in una query o
nella riga Aggiorna a di una query di aggiornamento.
Nota   È possibile utilizzare le funzioni DMin e DMax o le funzioni Min e
Max in un'espressione di campo calcolato in una query Totali. Se si utilizza
la funzione DMin o Dmax, i valori vengono valutati prima del raggruppamento
dei dati. Se si utilizza la funzione Min o Max, i dati vengono raggruppati
prima che vengano valutati i valori nell'espressione di campo.
Utilizzare la funzione DMin o DMax in un controllo calcolato quando si rende
necessario specificare criteri per limitare l'intervallo di dati su cui
viene eseguita la funzione. Se si desidera, ad esempio, visualizzare le
spese di trasporto massime relative a un ordine spedito in California,
impostare la proprietà OrigineControllo di una casella di testo alla
seguente espressione:
=DMax("[SpeseTrasporto]", "Ordini", "[ZonaDestinatario] = 'CA'")
Se si desidera semplicemente trovare il valore minimo e il valore massimo di
tutti i record contenuti in dominio
, utilizzare la funzione Min o Max.
È possibile utilizzare la funzione DMin o DMax in un modulo o in una macro o
in un controllo calcolato in una maschera se il campo da visualizzare non è
contenuto nell'origine record su cui si basa la maschera.
Suggerimento   Anche se è possibile utilizzare la funzione DMin o DMax per
trovare il valore minimo o il valore massimo da un campo di una tabella
esterna, potrebbe risultare più pratico creare una query contenente i campi
necessari da entrambe le tabelle e basare su tale query la maschera o il
report.
Nota   Le modifiche ai record che non vengono salvate in dominio non vengono
incluse quando si utilizzano queste funzioni. Se si desidera che la funzione
DMax o DMin sia basata sui valori modificati, è necessario prima salvare le
modifiche scegliendo il comando Salva record dal menu File, spostando lo
stato attivo su un altro record oppure utilizzando il metodo Update.
============================


 2002?
Se non fosse supportata, Access ti avrebbe dato un errore di funzione
inesistente.


 risultato per tutti i record).
La sintassi da te usata non ti darà errore formale, ma non è efficace.
Se IDProdotto è un campo di tipo testo, prova a scrivere:
= DMax("Prezzo"; "tblPrezzi"; "IDProdotto=" & Chr$(34) & IDProdotto &
Chr$(34))


 Possibile???
Certo che è possibile, significa che la tabella non si chiama tblPrezzi, e/o
il campo che contiene il prezzo non si chiama Prezzo, e/o la chiave primaria
non si chiama IDProdotto.


 non si chiama IDProdotto.
In effetti avevi ragione... il campo da me usato non si chiama IDProdotto ma 
ID Prodotto, con lo spazio... non l'avevo notato e per questo mi dava 
errore... adesso funziona!!!
Grazie di cuore.

... adesso funziona!!!
Per la verita' ho notato che, nei record nuovi (in cui quindi occorre ancora 
inserire i prezzi), il campo dice "#Error?". Si puo' correggere oppure bisogna 
tenerselo? (Non che pregiudichi niente, pero' non e' molto bello).
Grazie ancora. 


wrote:

vedi nz() e iserror() e iif()
Saluti.
Emanuele.

 ha scritto nel messaggio
news:CFN373998...@powernews.inwind.it...

Non mi ricordo più in che contesto il tutto avveniva, comunque si dovrebbe
poter fare condizionando l'esecuzione della DMax al fatto che la chiave
primaria dell'oggetto origine record della maschera sia diverso da Null,
tipo:
=IIf(IsNull([ChiavePrimaria]);"0";DMax("Prezzo";"tblPrezzi";"IDProdotto=" &
Chr$(34) & [IDProdotto] & Chr$(34)))
