Newsgroup: it.comp.appl.access
Titolo: campo calcolato condizionale

Saluti a tutti,
desidererei una dritta su una sciocchezzuola, per me montagna.
Ho un db con la possibilità di inserire più ditte:
ditta
ditta1
ditta2
Il report conterrà gli indirizzi, però m'è venuto lo sghiribizzo di mettere 
uno di questi casi anzichè tutti:
- la prima ditta se è sola
oppure
- la prima ditta "+1" se c'è la seconda
oppure
- la prima ditta "+altri" se c'è la terza.
Ho provato con la funzione iif, ma ottengo risultati parziali perchè non 
riesco a mettere più casi concatenati e l'help non è stato esaustivo.
Consigli????
Grazie e prosit
Antonio 


Forse; se riuscissi a capire che ti serve...
Ciao.
-- 
Sergio MAZZA 


Scusate, cerco di essere più chiaro.
Il db ha tre controlli: ditta, ditta1 e ditta2.
Compilo il primo controllo col nome di un tizio che fa un ricorso: Pippo
nel caso in cui i ricorrenti siano 2 , compilo il secondo controllo con 
l'altro nominativo: Pluto e così se c'è un  terzo nominativo: Papero.
Nel report, invece di evidenziare i nominativi caricati, vorrei che 
spuntasse:
se il ricorrente è uno, solo "Pippo"
se sono due, "Pippo +1"
se sono tre "Pippo + altri."
Spero di essere stato chiaro.
Grazie, Antonio 

 Grazie, Antonio
Conviene farsi una funzione in un modulo:
es.
Function ricorrenti(ditta as string, ditta1 as string, ditta2 as string) as 
string
dim tmpRicorrenti as string
if ditta<>"" then
    tmpRicorrenti = ditta
    if ditta1<>"" and ditta2="" then
        tmpRicorrenti = tmpRicorrenti & "+1"
    endif
    if ditta1<>"" and ditta2<>"" then
        tmpRicorrenti = tmpRicorrenti & "+altri"
    endif
else
    tmpRicorrenti = "Errore"
endif
ricorrenti = tmpRicorrenti
end function
La richiami cosě:
=ricorrenti(nz(ditta;"");nz(ditta1;"");nz(ditta2;""))
Ciao.
-- 
Sergio MAZZA 


Carissimo amico,
nella mia poca dimestichezza ho fatto la seguente:
Ho creato un modulo che ho chiamato Ricorrenti incollando quanto mi hai 
suggerito e viene così:
Option Compare Database
Function ricorrenti(ditta As String, ditta1 As String, ditta2 As String) As 
String
Dim tmpRicorrenti As String
If ditta <> "" Then
    tmpRicorrenti = ditta
    If ditta1 <> "" And ditta2 = "" Then
        tmpRicorrenti = tmpRicorrenti & "+1"
    End If
    If ditta1 <> "" And ditta2 <> "" Then
        tmpRicorrenti = tmpRicorrenti & "+altri"
    End If
Else
    tmpRicorrenti = "Errore"
End If
ricorrenti = tmpRicorrenti
End Function
nella maschera delle ditte in una casella di testo, su "origine controllo" 
ho scritto:
=ricorrenti(nz([ditta];"");nz([ditta1];"");nz([ditta2];""))
ma mi dà #ERRORE
dove ho sbagliato?
(ho Access 2000)
SSScusamiii
Antonio 

 ha scritto nel messaggio 
news:46f7a3ce$0$36447$4faf...@reader5.news.tin.it...

Il nome della casella di testo non associata; per caso è identico ad 
un'altro già esistente?
Ciao.
-- 
Sergio MAZZA 

 Sergio MAZZA
No, per scrupolo ulteriore l'ho rinominato "testoSterone"  ;O))
ma, ahimč, nulla
Grazie ancora, Antonio 

 Grazie ancora, Antonio
I nomi dei campi data data1 data2 esistono?
Prova ad aprire la finestra immediata (CTRL-G) e prova a scrivere:
? ricorrenti("pippo", "", "")
Oppure:
? ricorrenti("pippo", "pluto", "")
Oppure:
? ricorrenti("pippo", "pluto", "paperino")
Se non ti presenta errore, il problema č nella form...
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:fd93cu$j2p$1...@tdi.cu.mi.it...

Mi dŕ questo errore:
Prevista variabile o routine e non modulo
Ciao 

 Prevista variabile o routine e non modulo
Questo perche' la funzione l'hai inserita nel modulo di classe della form.
Devi inserire il codcie di Sergio in un modulo standard.
-- 
Ciao
Access

"Access" <c...@tin.it.invalid> ha scritto nel messaggio 
news:xoWJi.120371$%k.26...@twister2.libero.it...

Mi scuso per l'assoluta ignoranza ma non riesco a capire la differenza tra i 
due moduli e come devo operare. Grazie ancora
Antonio 

 Antonio
Descrivi quello che hai fatto tu...
Ciao.
-- 
Sergio MAZZA 


Sergio in un post precedente ha scritto che il Modulo e la Funzione si 
chiamano entrambi "Ricorrenti". Me sa che non gli funziona!
-- 
ac
y-1=x

 y-1=x
Ciao.
-- 
Sergio MAZZA 

 ha scritto nel messaggio 
news:fdbbgj$p4h$1...@tdi.cu.mi.it...

Scusate, ma per sicurezza ho chiamato il controllo: testoSterone ma non 
funza lo stesso.
Scusate, ma quanto fastidio vi sto dandoooo!
Anto 

 
-- 
ac
y-1=x

 Ho creato un modulo che ho chiamato "Ricorrenti"
No, il modulo rinominalo con un nome diverso da quello della funzione.
-- 
Ciao
Access 

 ha scritto nel messaggio 
news:Y1cKi.5845$5f3....@tornado.fastwebnet.it...

FUNZIONAAAAAAAA GRAZIEEEEE
 Grazie ancora, Antonio

 FUNZIONAAAAAAAA GRAZIEEEEE
In finale, sei "happy"!   ;<)))
-- 
ac
y-1=x