Newsgroup: it.comp.appl.access
Titolo: ennesimo problema con  controllo calcolato in report

Ciao a tutti, 
ho avuto fortuna l'altroieri su questo forum con Sergio e Galliano
(che ancora ringrazio), che mi hanno prontamente risolto un problema,
e quindi ci riprovo   :-)
Ho un database costituito semplicemente da una tabella e da una
maschera...
nella maschera immetto dati e spunto delle Caselle di controllo
(checkbox ?) ...
in una casella di testo della maschera ho messo, come origine
controllo, il richiamo ad una funzione in codice con diversi "if"
annidati, variabili ecc. che sulla base delle diverse checkbox
spuntate, dei valori immessi, della data di quel giorno ecc... in una
casella di testo mi calcola dei valori...
nell'unica  tabella presente  non riesco ad associare a questa casella
di testo calcolata  un campo.
 però se  clicco su visualizza foglio dati (quando sono in
visualizzazione maschera)  vedo che un campo con quei dati è
effettivamente presente....
ora ho cercato in tutti i modi di creare un report che mi consenta di
visualizzare e stampare questi dati ma non riesco proprio a vederli...
ho provato di tutto: cercato su internet, forum e non e ho consultato
l'insostenibile guida in linea della microsoft
ho provato con 
 Forms!foglio1!prezzo in tutte le sue variabili (con o senza parentesi
quadra.... ecc..)
ma mi viene fuori #nome? o altre volte "immissione valore parametro"
ho provato facendo riferimento alla funzione originale ma cosi mi da
per ogni record sempre lo stesso valore, quello mostrato in quel
momento dalla maschera.....
bohhhh!!!
access riesce proprio ad essere frustrante
qualcuno riesce ad aiutarmi?
ciao e grazie
roberto

 access riesce proprio ad essere frustrante qualcuno riesce ad aiutarmi?
No dai, non dire cosě...
Il campo calcolato createlo "fittizio" in una query associata alla tabella
(che userai anche come origine dati della Form), e non direttamente nella
tabella contenente i dati.
-- 
Pablitomf
Lentamente muore chi abbandona un progetto prima di iniziarlo, chi non fa
domande sugli argomenti che non conosce, chi non risponde quando gli
chiedono qualcosa che conosce. (P.Neruda)
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Quisque faber suae fortunae,
quindi devi un pņ industriarti e usare un subject
significativo
MAssimiliano

 tabella contenente i dati.
Grazie Pablito,
ma la crezione di un campo fittizio, dopo alcuni tentativi, pare non
essere cosi banale...
per lo meno per me...
o sono capitato su un forum per soli esperti!?
ciao


 MAssimiliano
LOL LOL LOL 
miiiiiiiii ecco proprio quello che speravo di non trovare su un
forum...
l'uomo nato imparato...
coraggio la vita lontano da uno schermo di computer non deve essere
difficile neanche per te...
Gib's Auf!
Es war sehr fruh am Morgen, die Strassen rein und leer [...] , die mit
ihrem Lachen allein sein wollen.
FK

 ciao
Sono gli "esperti" di cui parli che ti devono aiutare... basta richiedere
e ti sarà data risposta...
Comunque, crei la query con tutti i campi della tabella? Bene... alla fine
inserisci un altra colonna in cui scrivi per es. CAMPOCALCOLATO : (la tua
funzione con tutti gli "iif" di cui prima)
Va meglio?
Se non ti suona riposta con la funzione di cui parli e vediamo come
impostarla insieme.


 impostarla insieme.
Grazie ancora Pablito, 
apprezzo davvero la tua gentilezza e il tuo sforzo di venirmi
incontro...
ho provato a fare un po' come dici tu ma la cosa non mi sembra
praticabile...
non credo che abbia senso inserire la funzione... 
non vorrei farti perdere tempo a leggerla...
la soluzione al problema dovrebbe essere possibile trovarla anche se
la funzione fosso di una sola riga (ma non scrivibile tramite il
generatore di espressioni)
comunque ho aggiunto qualche commento di chiarimento
Function pasta()
Dim fe As Variant ' casella testo per inserire i giorni festivi fra
due date
Dim ur As Variant  ' checkbox per attestare l'eventuale urgenza
Dim gd As Variant  'altra checkbox
Dim pr As Variant   ' altra checkbox (pronte, parte tutto da qui...)
ur = Forms!foglio1!urgente
gd = Forms!foglio1!gdp
pr = Forms!foglio1!pronte
If IsNull(Forms!foglio1!festivi) Then'avevo problemi con i valori
nulli *
fe = 0                      '* in questa maniera li pongo uguali a
zero
Else
fe = festivi
End If
Dim nu As Variant  'casella testo numero copie 
If IsNull(Forms!foglio1!numerocopie) Then
nu = 0
Else
nu = Forms!foglio1!numerocopie
End If
   'dataevasa è una data cosi come giorno, in sostanza se le copie
vengono    'rilasciate con urgenza entro un certo periodo si paga un
tot,
altrimenti qualcos'altro, dipende dalle condizioni che sono fissate
dalla checbox
If pr = True And IsNull(Forms!foglio1!dataevasa) Then
MsgBox "Manca la data evasa o la casella pronte è spuntata
erroneamente", vbOKOnly, "Avviso"
Else
If nu = 0 Then
pasta = 0
Else
     If pr = True Then
            If ur = True Then
                If Forms!foglio1!dataevasa - Forms!foglio1!giorno - fe
< 3 Then
                     If gd = True Then
                    pasta = pippo() * 3 / 2
                    Else
                    pasta = pippo() * 3
                    End If
                Else
                    If gd = True Then
                    pasta = pippo() / 2
                    Else
                    pasta = pippo()
                    End If
                End If
             Else
                    If Date - Forms!foglio1!giorno - fe < 3 Then
 
                        If gd = True Then
                        pasta = pippo() * 3 / 2
                        Else
                        pasta = pippo() * 3
                        End If
                    Else
                        If gd = True Then
                        pasta = pippo() / 2
                        Else
                        pasta = pippo()
                        End If
                    End If
             End If
     Else
     pasta = 0
     End If
 
End If
End If
End Function
----------qui inizia una sub? funzione che calcola il prezzo base
delle copie in base al numero....... nella parte sopra sulla base di
determinate condizioni si determina il valore effettivo...
Function pippo()
Dim nu As Variant
If IsNull(Forms!foglio1!numerocopie) Then
nu = 0
Else
nu = Forms!foglio1!numerocopie
End If
If nu <= 4 Then
pippo = 0.77
Else
If nu <= 10 Then
pippo = 1.55
Else
If nu <= 20 Then
pippo = 3.1
Else
If nu <= 50 Then
pippo = 6.2
Else
If nu <= 100 Then
pippo = 12.39
Else
Dim conta As Variant
Dim max As Integer
max = 200
conta = 1
ricomincia:
If nu <= max Then
pippo = 12.39 + 5.16 * conta
Else
max = max + 100
conta = conta + 1
GoTo ricomincia
End If
End If
End If
End If
End If
End If
End Function
------finish
come vedi non dovrebbe essere praticabile un suo inserimento
nell'"intestazione"...
per ora mi arrendo... vado a dormire che sono cotto...
non posso credere che la soluzione possa essere complicata...
come scrivevo, i risultati di questa funzione li vedo nel foglio dati
(della sola maschera però)... per cui ci sono, sono li...
ma non riesco a tirarli fuori...
ciao e grazie intanto
roberto