DateDiff - Valore mesi negativo se la data è successiva alla data odierna.

Anonimo
2015-05-27T07:07:24+00:00

Buongiorno a tutti mi sono accorto che in un campo data calcolato in una maschera di Access 2010, inserendo la data successiva alla data odierna mi viene visualizzato il dato in negativo. Il campo in questione è frutto ( voi esperti lo riconoscete già dal codice che vi allego) di un calcolo che somma alla data inserita nel campo chiamato Data inizio finanziamento il numero dei mesi inserito in un altro campo chiamato **Nr rate ( di tipo numerico che indica solo i mesi e massimo 120, dieci anni)**ma se la data del campo Data inizio Finanziamento è successiva alla data odierna es. 01/06/2015 ( cosi accade nella realtà lavorativa) 

il campo calcolato che si chiama  Nr rate già pagate che contiene il codice sottoriportato visualizza -1 quando in realtà dovrebbe visualizzare 0.

=IIf(DateDiff("m";[Data inizio Finanziamento];Date())>[Nr rate];[Nr rate];DateDiff("m";[Data inizio Finanziamento];Date()))

Desidero che il codice valutasse il nr delle rate già pagate solo dopo aver superato la data precedentemente inserita nel campo  Data inizio Finanziamentoe nel caso di data successiva alla data odierna visualizzare 0 e non il numero negativo che indica i mesi già trascorsi dalla data inserita nel campo Data inizio Finanziamento .

Spero di essere stato chiaro, chiedetemi altro se occorre.

Vi saluto e vi auguro buona giornata.

Microsoft 365 e Office | Access | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2015-05-27T14:10:16+00:00

La tua formula:

=IIf(Not IsNull([data inizio Finanziamento]);dtUltimaRata([Data inizio Finanziamento];[nr rate]);Null) )

utilizza la funzione dtUltimaRata

è in questa funzione che devi sottrarre 1 al giorno o forse 1 al mese?

Mimmo

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

10 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2015-05-27T12:49:10+00:00

    Prova con DateAdd a sottrarci un giorno.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-05-27T11:57:26+00:00

    Ciao e grazie Mimmo, si è cosi come hai inteso tu ( il tuo codice funziona benissimo e ha risolto la mia problematica), purtroppo la colpa è mia perché non sono molto chiaro e semplice nel rappresentare  bene la mia reale esigenza.

    Ringrazio Sandro per il suo intervento.

    Comunque Mimmo, Sandro, ho notato un'altra problematica sempre nella stessa maschera in altri due campi uno di tipo data breve e l'altro numerico che nella somma dei mesi da aggiungere alla data inserita nel campo Data inizio finanziamentonon rispetta il giorno di scadenza es. se inserisco la data 28/04/2015 e sommo 12 mesi a quest'ultima il campo  calcolato chiamato Data Fine Finanziamento ( che contiene questo codice =IIf(Not IsNull([data inizio Finanziamento]);dtUltimaRata([Data inizio Finanziamento];[nr rate]);Null) ) visualizza 01/04/2016 e non 28/03/2016.

    Mi aiutereste a risolvere questo problema per favore.

    Vi stimo e vi ringrazio per tutto l'aiuto che mi fornite.

    Ciao Nicola.

    P.S. allego nuova schermata con la problematica evidenziata.

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-05-27T11:55:01+00:00

    ciao Mimmo,

    forse ho capito...alla bonora...

    =IIf(DateDiff("m";[date1];Date())>0;DateDiff("m";[date1];Date());0)

    Ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-05-27T11:25:02+00:00

    Ciao Sandro,

    da quello che ho capito Nicola vuole evidenziare le rate pagate ad oggi ma, se la decorrenza è successiva alla data odierna vuole riportare 0 e non un valore negativo.

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento