PDA

Visualizza versione completa : sommare i giorni tra due date


PRIMO
22-04-2005, 22.45.44
Ciao a tutti, volevo sapere se potete farmi capire come si fà con access a fare la somma dei giorni tra due date.
Esempio:
ho una maschera con dati di un'unica tabella con all'interno i campi idcliente(contatore); nome(testo); arrivo(data); partenza(data); totgiorni(numerico).

una volta che ho compilato questi campi, compreso la data di arrivo(22/04/2005) e partenza(25/04/2005), come faccio a far comparire in automatico il totale dei giorni nella casella totgiorni?

Grazie tante

wilhelm
24-04-2005, 10.22.14
Prometto che appena ho cinque minuti in più rispondo meglio. Se tu le converti in variant con CVar(...) e sommi i valori ottenuti, e poi con CDate(...) le riporti in data dovrebbe funzionare.

PRIMO
24-04-2005, 11.06.22
grazie dell'aiuto. ci provo ma non sono tanto esperto di linguaggi. Aspetto i 5 minuti per capire meglio

wilhelm
24-04-2005, 11.32.30
Questa mattina avevo capito un'altra cosa...

Ancora più semplice: se hai i due campi con la data A per l'arrivo e P per la partenza ti basta gestire un evento appropriato (per esempio 'dopo aggiornamento') con questo codice (detto T il campo del numero di giorni):

T = P - A + 1

il più uno è per aggiungere il giorno dell'arrivo.

LoryOne
24-04-2005, 15.59.41
Se ricordo bene ci dovrebbe essere la funzione DateDiff.

wilhelm
24-04-2005, 16.24.51
Sì infatti, appena controllato.

PRIMO
24-04-2005, 17.00.48
grazie dell'aiuto. La funzione suggeritami di t = a - p + 1, funziona benissimo, tranne per il motivo che comunque nella casella di testo, t bisogna comunque scriverci qualcosa e poi quando si passa ad un altro record, il conteggio dei giorni lo correggie da solo. non si puo fare in modo che nella casella t i giorni compaiano da soli?
Vi ringrazio dell'aiuto

wilhelm
24-04-2005, 17.12.33
Sei sicuro?
Io ho provato a farlo a casa e mi basta dare invio su entrambi i campi con la data che lui aggiorna il numero.
Con che evento fai partire la routine?
C'è anche DoCmd.RunCommand.AcSaveRecord che ti salva il record: se aggiungi un paio di controlli sul fatto che entrambe le date siano presenti questo automaticamente salva il record.