Post by GpPurtroppo non ci siamo ancora. Ho provato con CDbl, CLng, e Val.
Per prima cosa quando rispondi ti consiglio di scrivere DOPO o INFRAMEZZATO
al testo dei messaggi precedenti e non prima come stai facendo ora: il tread
risulterà molto più leggibile e poi per chi interviene a thread iniziato
basta leggere l'ultimo messaggio dall'alto in basso per avere un idea del
discorso: così occorre continuamente cercare in basso la domanda per poi
tornare indietro e leggere le risposta.
OK, ma di cose che mi hanno lasciato scettico ce ne sono molte.
Post by GpSELECT ((100-[sconto])/100) AS ScFatt, ((100-[bonus])/100) AS BoFatt
FROM scontibonusfatt
WHERE marca=Reports!R_F2!marca And Reports!R_F2!dtftag Between dtinval And
dtfineval;
A parte che non capisco che compito abbia tale query nel contesto che stiamo
discutendo, a mio avviso non ha proprio significato avere i controlli di un
report come riferimenti di una query parametrica; anzi, visto che i valori
di tali controlli non è statico (un report viene eseguito e non aperto), si
può fare riferimento ad essi solo all'interno del report stesso, ma non da
altri oggetti del database.
Post by GpCampo, Tipo, Lungh, Formato
marca, Testo, 1 (chiave)
dtinval, Data/ora, Data in cifre (chiave)
dtfineval, Data/ora, Data in cifre
sconto, Numerico, 4, Precisione doppia
bonus, Numerico, 4, Precisione doppia
=CDbl(Round(IIf([marca]='A';DLookUp('[imponbonus]*([planning]+[mix]+[corpora
tedesign])/100';"calcolobonus";"[marca]
Post by Gp= '" & Report!R_F2!marca2 & "' AND [anno] <= " & Report!R_F2!anprat & " AND
[trimestre] = " &
DatePart("q";Report!R_F2!dtftag));DLookUp('[imponbonus]*([volume]+[planning]
+[mix]+[corporatedesign])/100';"calcolobonus";"[marca]
Post by Gp= '" & Report!R_F2!marca2 & "' AND [anno] <= " & Report!R_F2!anprat & " AND
[trimestre] = " & DatePart("q";Report!R_F2!dtftag)));2))
In un report non esistono i campi ma i controlli: i campi sono contenuti
solamente nelle tabelle e nelle queries; questa precisazione non è fatta per
fare il pignolo, ma è importante aver chiara questa cosa, come vedremo nel
commentare il punto 4.
Presuppongo pertanto che bonus sia il nome di un controllo non associato e
che quello di cui sopra lo hai scritto nella sua origine controllo.
Nel generatore di espressioni (quindi nello script di un'origine controllo)
NON si può far riferimento al nome di un report o di una maschera, ma si può
fare riferimento solo a nomi di controlli dell'oggetto o ai nomi dei campi
della sua origine record.
Quindi, ammesso che marca2 e anprat siano nomi di campi dell'origine record
del report o di controlli del report non scriverai:
Report!R_F2!marca2 e Report!R_F2!anprat
ma semplicemente:
marca3 e anprat
Comunque in VBA tali riferimenti al report ti avrebbero dato errore formale
visto che la sintassi che avresti dovuto adoperare sarebbe stata:
Reports!R_F2!marca2 e Reports!R_F2!anprat
Post by Gp=Somma([bonus]) -> restituisce Null anzichè il valore somma del campo bonus
dei vari record ottenuti tramite la funzione DLookUp del punto 3.
La funzione Somma, come tutte le funzioni di aggregazione NON possono far
riferimento al nome di un controllo calcolato (come mi sembra di capire sia
bonus) ma possono fare riferimento SOLAMENTE a nome di campi dell'oggetto
origine: per maggiori dettagli vai sull'help e leggi l'argomento
intitolatato Calcolare il totale di un controllo calcolato in una maschera o
in un report.
Molto spesso il nome del controllo associato coincide con il nome del campo
cui è associato e quando si usa la funzione Somma si crede che venga fatta
la somma dei valori contenuti nei controlli, mentre invece viene fatta la
somma dei valori contenuti nei campi con lo stesso nome: d'altra parte non
potrebbe essere altrimenti visto che per definizione una funzione di
aggregazione può operare esclusivamente sui campi di una tabella o di una
query e non su controlli di una maschera o di un report.
Come vedi nella comprensione di Access e del suo help in linea, è molto
importante distinguere tra campo e controllo, specie se quest'ultimo è
calcolato.
Post by Gp5. Come posso evitare di dover aggiungere la "s" al riferimento di 1 campo
del report?
Campo di un report?
Post by GpNella DLookUp, x es, ho inserito il riferimento
[Reports]![R_F2]![anprat]. Dopo aver inserito la funzione il riferimento è
stato cambiato da Access in Report!R_F2!anprat ed ogni volta che modifico
devo rimettere la "s" di "Reports" altrimenti inaanteprima mi chiede
l'inserimento del parametro R_F2 (che invece è il nome del report stesso).
Circa i riferimenti al nome di un report vedi quanto ho scritto circa il
punto 3.
Se non ho interpretato male ciò che hai scritto devi rifare un bel po' di
cose; ho la sensazione che ti convenga fare i calcoli al livello di record
nei campi calcolati di una query, ma questo mi sembra di avertelo già
consigliato.
Post by Gpgrz infinite
ciao
Gp
[CUT]
--
Roberto
-----------------------------------------------------
il Sito Comune di it.comp.appl.access
http://www.sitocomune.com
----------------------------------------------------