Condizione IIF in un criterio di una Query

di il
3 risposte

Condizione IIF in un criterio di una Query

Ciao a tutti,
avrei necessità di aggiungere una condizione all'interno di un criterio di una query. Ma non capisco dove sbaglio...

il criterio che eseguo correttamente è questo:
>=DateAdd("m";-24;CDate("01/09/" & Year(Date()-2))) And <=CDate("01/08/" & Year(Date())-1)

Adesso ho la necessità di inserire una condizione in base al valore di una variabile, più precisamente al valore numerico del mese corrente: month(date())

Se il valore è >=8 esegue il criterio riportato altrimenti un criterio lievemente diverso...
avevo pensato di scrivere così:

iif(month(date())>=8; >=DateAdd("m";-24;CDate("01/09/" & Year(Date()-2))) And <=CDate("01/08/" & Year(Date())-1); >=DateAdd("m";-24;CDate("01/09/" & Year(Date()-1))) And <=CDate("01/08/" & Year(Date())))

ma non ottengo nessun risultato... ho letto che in alcuni casi le condizioni iff non devono essere inserite nel riquadro criteri, ma direttamente sul riquadro Campo. Ma non riesco... Facendo diverse prove è proprio il costrutto che probabilmente sbaglio...

Grazie mille!!

3 Risposte

  • Re: Condizione IIF in un criterio di una Query

    Per me confondi il Criterio con il "risultato che deve apparire nel campo". Il 2° e 3° argomento di IIf riportano >= , mentre si aspettano dei valori esatti di restituzione.
  • Re: Condizione IIF in un criterio di una Query

    Grazie Osvaldo, immaginavo sbagliavo qualcosa nel costrutto.
    Ma sinceramente ho difficoltà a correggere...
    il criterio iniziale mi dava la possibilità di filtrare i dati per un intervallo di data.. ma come devo fare?
  • Re: Condizione IIF in un criterio di una Query

    Che tu abbia creato un Criterio va bene. Devi specificare cosa vuoi ottenere come risultato finale nella IIf. Nella IIf non devi esporre il criterio/filtro. Le espressioni che hai mostrato mi appaiono "relativamente" complesse e non ho capito cosa vuoi ottenere. Ti consiglio anche di spezzettare tutte quelle informazioni su più campi calcolati con proprio nome. In questo modo ti risulta più facile costruire le espressioni.
    Per esempio chiama Campo1 la colonna che ti restituisce il 1° criterio, Campo2 la colonna che restituisce il 2° criterio. Poi scrivi in un'altra colonna:
    Risultato: IIf(Month(Date())>=8;[Campo1];[Campo2])
Devi accedere o registrarti per scrivere nel forum
3 risposte