Funzione IIf

di il
22 risposte

Funzione IIf

Buongiorno,
Sono alle prese nell'uso della funzione IIf in un'origine controllo di un report.
L'istruzione mi serve per visualizzare la stringa "(*)" in una casella di testo qualora sia vera una condizione, ovvero:
=IIf(Val([Valore_Analisi]![Valore_Analisi])>([Valore_Analisi]![Max]);"(*)";"")
Premetto che il campo [Valore_Analisi]![Valore_Analisi] è di tipo stringa e [Valore_Analisi]![Max] è di tipo numerico.

Mi restituisce l'errore #tipo! e di sicuro è connesso con la valutazione della condizione.

Dove sbaglio?
Grazie.

22 Risposte

  • Re: Funzione IIf

    Ciao
    non sono un espertissimo di VBA pero' a pelle ti dico che credo vadano messe le virgole e non i punto e virgola
    poi a cosa servono le seconde parentesi tonde?
    io proverei cosi'
    =IIf(Val([Valore_Analisi]![Valore_Analisi])>[Valore_Analisi]![Max],"(*)","")
  • Re: Funzione IIf

    eddy1973 ha scritto:


    funzione IIf in un'origine controllo di un report
    La sintassi dentro i controlli di maschere e report prevede:
    - il punto-virgola come separatore di argomenti
    - il punto come separatore di [NomeTabella].[NomeCampo]
  • Re: Funzione IIf

    Non và. ho sostituito il [NomeTabella];[NomeCampo] con [NomeTabella].[NomeCampo] ma nulla.
  • Re: Funzione IIf

    L'uso di VAL dovrebbe essere NON NECESSARIO, se lo è c'è un problema di fondo.
    Se i controlli di riferimento sono nella Stessa Maschera di analisi il Riferimento alla Maschera risulta NON NECESSARIO.
    
    =IIf([Valore_Analisi]>[Max];"(*)";"")
  • Re: Funzione IIf

    Ok. Funziona.
    A dire il vero non ho provato senza la funzione Val() poiché ho dato per scontato che sarebbe stato insensato valutare se una stringa fosse > di un valore numerico.
    Grazie.
  • Re: Funzione IIf

    Non confondere il contenuto della textbox con una stringa sono 2 cose diverse... una textbox può contenere dati ti tutti i tipi e conserva il FieldType... quindi quello.che hai detto è una considerazione errata.
    Il val non lo devi usare perché quel controllo dovrebbe contenere un dato numerico.
  • Re: Funzione IIf

    Ok. Grazie.
  • Re: Funzione IIf

    Scusate ancora con un'altra IIF:
    =IIf(IsNull([Nome_Resp]);"--";[Nome_Resp])
    Lo scopo è quello di inserire nella casella di testo del report la stringa "--" qualora il campo nella form non venga compilato e invece il valore del campo [Nome_Resp] se il dato è immesso.
    Ma mi dà errore.
  • Re: Funzione IIf

    Che errore...? E soprattutto lo da sempre o solo se Nome_Resp non mostra alcun valore...?
    Ho scritto "mostra alcun valore" perché non vedere e definire Nullo sono 2 cose estremamente differenti... e isnull controlla solo se il campo è nullo... ma se fosse vuoto non sarebbe null.
    Quindi indaga bene...
  • Re: Funzione IIf

    Infatti il mio scopo è proprio quello di controllare se il campo sia vuoto ovvero l'utente non ha inserito valori.
    In questo caso la condizione da indicare quale sarebbe? non IsNull. ma allora?
    Grazie.
  • Re: Funzione IIf

    Leggi:
    https://www.599cd.com/tips/access/null-zls
    https://www.iprogrammatori.it/forum-programmazione/access/valore-vuoto-una-textbox-t38466.html
    https://www.experts-exchange.com/articles/1910/Understanding-Null-Empty-Blank-N-A-ZLS-Nothing-Missing.html
  • Re: Funzione IIf

    Utilizzerei vbNullString per valutare se il campo sia vuoto, ma il generatore d'espressioni non lo accetta.
  • Re: Funzione IIf

    Oppure
    Len([Valore_Analisi] & "")=0
    per valutare se il campo è vuoto. Ma nulla. Ottengo sempre errore.
  • Re: Funzione IIf

    IIf([nome_resp]]& ""="";"--";[nome_resp])


    Mi ci sono arenato più di una volta pure io.

    Poi leggendo alcuni post su errori del VBA e concatenazioni di stringhe nulle trovai la risposta.

    Good luck
Devi accedere o registrarti per scrivere nel forum
22 risposte