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-27T11:04:45+00:00

    ciao  Nicola,

    prego :-)

    non basta calcolare la differenza in mesi tra la data inizio finanziamento e la data attuale per ottenere li numero delle rate pagate?

    =DateDiff("m";[Data inizio finanziamento];Date())

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2015-05-27T10:23:12+00:00

    Ciao Nicola,

    prova con:

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

    Mimmo

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2015-05-27T10:10:04+00:00

    Ciao Sandro, grazie per avermi risposto, ho provato il tuo codice e non risolve il problema.

    Mi spiego meglio: ho tre campi chiamati rispettivamente: Data inizio finanziamento ( tipo dati data breve); Nr rate( di tipo numerico che indica solo i mesi e massimo 120, dieci anni) e l'altro chiamato Rate già pagateche verifica quante rate sono state pagate dalla data inserita nel campo Data inizio finanziamento( es. 1,2 3 ecc.) ad oggi per es.

    se inserisco nel campo Data inizio finanziamentoquesta data: 01/04/2015 e nel campo Nr. rate 120 il campo Rate già pagate dovrà riportare 1 perché da aprile ad oggi 1 rata su 120 è stata già pagata e 119 sono ancora da pagare.

    Per maggiore comprensione ti allego la schermata della maschera con il problema cerchiato di rosso.

    Chiedimi altro se occorre.

    Ti saluto e ti ringrazio per il tuo aiuto.

    Ciao Nicola.

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2015-05-27T09:45:11+00:00

    ciao Nicola,

    non sono certo di avere capito....

    prova:

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

    ciao, Sandro.

    La risposta è stata utile?

    0 commenti Nessun commento