"Antonio" <***@tiscali.it> ha scritto nel messaggio
news:4ae430fb$0$6840$***@news.tiscali.it...
>
> "rino" <***@tin.it> ha scritto nel messaggio
> news:4ae42cb0$0$1095$***@reader3.news.tin.it...
>>
>> "Antonio" <***@tiscali.it> ha scritto nel messaggio
>> news:4ae42717$0$700$***@news.tiscali.it...
>>>
>>> "rino" <***@tin.it> ha scritto nel messaggio
>>> news:4ae423bc$0$1098$***@reader3.news.tin.it...
>>>>
>>>> "Antonio" <***@tiscali.it> ha scritto nel messaggio
>>>> news:4ae41ea7$0$6838$***@news.tiscali.it...
>>>>>>>> [cut]
>>>>>>>>
>>>>>>> Controlla bene come hai scritto la formula. Poi, procediamo in
>>>>>>> ordine.
>>>>>>> Tu tramite la form hai inserito i numeri (che non so cosa siano)
>>>>>>> in una tabella. Suppongo che tu abbia prodotto il report con la
>>>>>>> creazione guidata del report. Quindi, immaginando che i tre
>>>>>>> campi della tabella si chiamino A,B e C (come nell'esempio), la
>>>>>>> creazione guidata ha generato il controllo per l'esposizione del
>>>>>>> campo C che ha, fra altre cose, le seguenti proprietà:
>>>>>>> Nome elemento: C
>>>>>>> Origine controllo: C
>>>>>>> Ora tu vuoi determinare C in base ai valori inseriti nella
>>>>>>> tabella per A e B, quindi quelle proprietà per C le dovrai
>>>>>>> cambiare così:
>>>>>>> Nome elemento: X (o qualsiasi cosa ma diversa da C)
>>>>>>> Origine controllo: =iif(B<>0;A/B;0) (senza che prima dell'uguale
>>>>>>> ci sia la lettera C)
>>>>>>>
>>>>>>> Ciao
>>>>>>> Antonio
>>>>>>
>>>>>>
>>>>>> scusami Antonio se insisto, ma mi da sempre l'errore dove
>>>>>> calcolo, PRECISO che il calcolo C lo faccio nella casella di
>>>>>> testo del report in riferimento a 2 caselle del report stesso che
>>>>>> contengono numeri calcolati dalla Form.
>>>>>> nella casella di testo scrivendo la formula compreso la tua, ma
>>>>>> mi da ERRORE mentre negli altri 3 report che non contengono i
>>>>>> numeri mi da predefinito lo zero
>>>>>>
>>>>>> non so se sono stato chiaro nell'esprimermi
>>>>>>
>>>>>> grazie per la pazienza
>>>>>>
>>>>>> rino
>>>>>>
>>>>> Tranquillo, perdo la pazienza solo con chi è scortese... pensa,
>>>>> riesco a sopportare persino mia moglie :-)))
>>>>> Tieni presente che il report lo basi su una tabella (o query), non
>>>>> su una form. In definitiva, qual è il modus operandi ? Vediamo se
>>>>> indovino. Hai una tabella con alcuni campi. Aggiorni questi campi
>>>>> mediante una form. Stampi con un report la tabella aggiornata
>>>>> dalla form. E' così o sbaglio qualcosa ?
>>>>> Immaginiamo che l'iter sia quello giusto.
>>>>> Allora nel report o hai valori che rivengono dalla tabella così
>>>>> come sono, o li calcoli dentro il report stesso, magari basandosi
>>>>> sui valori di qualche campo di tabella.
>>>>> Non riesco ad immaginare uno scenario differente. Con questo
>>>>> scenario dovrebbe funzionare (quindi controlla bene prima di
>>>>> cambiare tattica). Se dopo tutti i tentativi la soluzione non
>>>>> viene fuori (ma ripeto, se ho indovinato lo scenario ti deve
>>>>> funzionare per forza), prova a fare in quest'altro modo.
>>>>>
>>>>> Inserisci una nuova routine di tipo Function in un modulo (se nel
>>>>> DB non c'è nessun modulo lo puoi creare adesso) così:
>>>>>
>>>>> Public Function CalcolaC(CampoA As Integer, CampoB As Integer) As
>>>>> Integer
>>>>> If Nz(CampoB) = 0 Then CalcolaC = 0
>>>>> If Nz(CampoB) <> 0 Then CalcolaC = Nz(CampoA) / CampoB
>>>>> End Function
>>>>>
>>>>> poi sul tuo report nell'origine controllo di C scrivi:
>>>>> = CalcolaC (A;B)
>>>>>
>>>>> ma ricordati che se C è anche un campo della tabella, questo
>>>>> controllo lo devi rinominare in un modo diverso, magari X come
>>>>> avevo detto precedentemente.
>>>>> Però fare così è sicuramente più complicato che cercare sistemare
>>>>> le cose con l'altro metodo.
>>>>
>>>> Antonio ti chiedo scusa e ti ringrazio per la pazienza.
>>>> l'esempio del mio problema non riguarda solo 3 campi A,B,C ma sono
>>>> diversi ma tutti con il criterio identico, quindi se risolvo
>>>> l'esempio del mio problema di fatto risolvo anche gli altri. Posso
>>>> gentilmente chiederti una risoluzione più semplice dove nella
>>>> casella di testo (C) deve contenere zero e non errore se B è zero
>>>> dopo la divisione C=A/B?
>>>>
>>>> scusami e ti ringrazio farò sicuramente un corso da programmatore.
>>>>
>>>> curiosita sei Antonio che conosco io di B... e tu nativo della
>>>> S....?
>>>>
>>>> rino
>>>>
>>>>
>>> Non sono quell'Antonio che dici tu, io sono del meridione ma vivo in
>>> Toscana.
>>>
>>> Perchè non mi rispondi passo-passo a quell'ipotesi che ho fatto poco
>>> fa ?
>>>
>>> E' vero che in primis c'è una tabella con dei campi che vengono
>>> aggiornati dal form ?
>>> Se è così, prova a vedere il contenuto dei campi e scrivimi qui
>>> sotto quelli che ti sembrano più significativi. Es.
>>> CampoA CampoB CampoC
>>> 10 niente niente
>>> 20 5 8
>>> etc. etc.
>>> Poi passiamo al report. Se il report si basa sui campi della tabella
>>> non può darti errore. A meno che è nel report stesso che prima
>>> calcoli un controllo e poi vuoi utilizzare il risultato di questo
>>> controllo per calcolarne un altro... ma questo sistema mi sembra più
>>> complicato e non credo che sia il caso tuo.
>>
>>
>> Si Antonio scusami per passo passo, hai capito bene c'è una tabella
>> con dei campi che vengono aggiornati
>> dal form. ma il report si riferisce a una Query della tabella.
>>
>> gli esempi A,B,C, che tu fai sono esatti, ma sono riferiti a un
>> singolo calcolo, con lo stesso criterio vi sono nello stesso report
>> altri Campi D,E,F ecc.
>> cerco di spiegarmi (spero) il campo A e B sono aggiornati dalla
>> tabella mentre il Campo C calcola A/B ma se B è ZERO su C mi da
>> ERRORE per questo dico che se risolvo con il primo esempio risolvo
>> anche gli altri.
>> non capisco come mai se B contiene un numero superiore a 1 mi da il
>> risultato giusto invece se contiene ZERO mi da errore
>>
>>
> In matematica che risultato avresti se tu facessi 123 diviso zero ?
> Avresti infinito (non zero). E' per questo che Access si rifiuta di
> calcolartelo. Ma tu dici non me ne frega niente, se il divisore è zero
> il risultato deve essere zero (in programmazione puoi persino decidere
> di dare un risultato non matematicamente corretto). E allora torno a
> dirti la stessa cosa di prima. Se C non è un campo di tabella ma un
> controllo "Casella di testo" che hai inserito sul report dagli queste
> proprietà e ti funzionarà sicuramente.
> Nome elemento: X1 (l'altro poi X2, l'altro ancora X3 e così via)
> Origine controllo: =iif(B<>0;A/B;0)
> Se non ti funziona, scrivimi con precisione (meglio se usi il
> copia/incolla) queste due proprietà del controllo che hai sul report e
> dimmi se questo controllo è associato ad un campo della query oppure
> no.
> In ogni caso aspetto una risposta. Non fare come tanti che, avuta la
> risposta risolutiva, non ti dicono neache "ha funzionato".
no Antonio sono una persona seria non rientra nei miei parametri di vita
mi sforzo ogni giorno di essere persona normale.
cmq per ritornare alla risoluzione, ho adattato la tua formula,
iif(Testo203<>0; SommaDiE1/ Testo203;0) il risultato nella (Casella di
TestoC) da ERRORE.
perchè il Testo203 è ZERO invece se contiene un numero superiore a ZERO
mi calcola giusto
da predefinito lo ZERO nelle altre pagine stesso criterio stessa
(casella TestoC) stessi riferimenti ecc.dove non vi sono calcoli e
numeri
grazie Antonio