INTERRUZIONE CONTEGGIO GIORNI

di il
5 risposte

INTERRUZIONE CONTEGGIO GIORNI

Buongiorno a Tutti,

in una tabella creata con Access 2010, ho i seguenti controlli:

- DATA_ORDINE (formato data/ora)
- DATA_CONSEGNA (formato data/ora)
- DATA_OGGI (formato data/ora) --> valore predefinito Date()
- DATA_ARRIVO (FORMATO DATA/ORA)
- TEMPO_PASSATO (calcolato)

In TEMPO_PASSATO ho inserito il calcolo [DATA_OGGI]-[DATA_CONSEGNA]

Come faccio a bloccare il valore che mi restituisce il controllo TEMPO_PASSATO nel momento in cui inserisco DATA_ARRIVO ?

Grazie,
Gianni

5 Risposte

  • Re: INTERRUZIONE CONTEGGIO GIORNI

    Gianni66 ha scritto:


    - DATA_OGGI (formato data/ora) --> valore predefinito Date()
    Credo che non ha senso avere un campo DATA_OGGI visto che il valore Date() lo fornisce il sistema automaticamente.

    Gianni66 ha scritto:


    - TEMPO_PASSATO (calcolato)
    In TEMPO_PASSATO ho inserito il calcolo [DATA_OGGI]-[DATA_CONSEGNA]
    Come faccio a bloccare il valore che mi restituisce il controllo TEMPO_PASSATO nel momento in cui inserisco DATA_ARRIVO?
    Stai dicendo 2 cose che entrano in contraddizione. Se TEMPO_PASSATO è "calcolato" è ovvio che calcola automaticamente.
    Premesso che non colgo il senso di quello che vuoi fare, una via risolutiva indipendente sarebbe quella di avere il campo TEMPO_PASSATO non calcolato. In una maschera corrispondente prevedi l'IMPOSTAZIONE valore dentro TEMPO_PASSATO dopo l'evento...non so... "Dopo aggiornamento", forse meglio "Prima di aggiornare" (usando Cancel) su DATA_ARRIVO, sfruttando il calcolo che hai detto tu. Dopo di che sei libero di modificare a tuo piacere il campo TEMPO_PASSATO in "seconda" battuta...ripeto, però che non vedo il nesso/senso di questa operazione...!!!
  • Re: INTERRUZIONE CONTEGGIO GIORNI

    Osvaldo ciao,

    inizio a spiegarti il senso in modo tale che forse mi proponi una soluzione più lineare.

    Quando effettuo un ordine al mio fornitore di prodotti chimici inserisco nel controllo DATA_ORDINE il giorno in cui ho effettuato l'ordine.
    Nel controllo DATA_CONSEGNA inserisco la data in cui vorrei che fossero consegnati i prodotti chimici.
    Fatto questo, stampo un report in pdf lo allego alla mail e lo invio al fornitore.
    Ovviamente vi sono altri controlli nel report tipo NOME_PRODOTTO, CLASSIFICAZIONE etc. , ma questo a noi non interessa.
    Dopo avere inviato il report al fornitore, inizia una fase di monitoraggio dell'ordine in termini di rispetto della data di consegna.
    A questo punto mi serve (credo) un campo calcolato che mi indichi quanti giorni mancano alla consegna dell'ordine o eventualmente quanti giorni dopo l'ordine arriva rispetto la data di consegna concordata con il fornitore [DATA_CONSEGNA].
    Ti faccio un esempio:
    Oggi 05/04/18 [DATA_ORDINE] concordo consegna 09/04/18 [DATA_CONSEGNA] ricevo l'ordine in data 07/04/18, quindi -2 giorni prima.
    Nel controllo DATA_ARRIVO inserirò 07/04/18 e il valore -2 si dovrà bloccare a -2 appunto.
    Di seguito quando il DB si sarà popolato di tanti ordini, farò una serie di analisi per capire quante volte il fornitore ha onorato la data di consegna, quante volte è andato oltre ecc.
    E poi mi serve anche nell'uso quotidiano per fare i solleciti.

    Gianni
  • Re: INTERRUZIONE CONTEGGIO GIORNI

    1. Ti consiglio di usare le query per fare tutti i calcoli che vuoi con opportune formule, anziché usare i "campi calcolati" in tabella. I campi calcolati sono una caratteristica solo di Access e alcuni puristi li considerano una contraddizione con la filosofia generale che regola le tabelle.
    2. Io chiamerei un campo DataPrevistaConsegna (o DataConcordataConsegna)(non essendo sicuro e categorico al 100%).
    3. Il campo DataOggi non ti serve né in tabella, né nella query per il motivo che esiste l'apposito valore "di sistema" Date().
    4. Nella query devi avere 2 campi di calcolo:
    [DataArrivo]-[DataPrevistaConsegna] per fare statistiche sui Fornitori
    Date()-[DataPrevistaConsegna] per fare il monitoraggio "sull'immediato".
  • Re: INTERRUZIONE CONTEGGIO GIORNI

    Gianni66 ha scritto:


    Buongiorno a Tutti,

    in una tabella creata con Access 2010, ho i seguenti controlli:

    - DATA_ORDINE (formato data/ora)
    - DATA_CONSEGNA (formato data/ora)
    - DATA_OGGI (formato data/ora) --> valore predefinito Date()
    - DATA_ARRIVO (FORMATO DATA/ORA)
    - TEMPO_PASSATO (calcolato)

    In TEMPO_PASSATO ho inserito il calcolo [DATA_OGGI]-[DATA_CONSEGNA]

    Come faccio a bloccare il valore che mi restituisce il controllo TEMPO_PASSATO nel momento in cui inserisco DATA_ARRIVO ?

    Grazie,
    Gianni
    Se vuoi "bloccare" il calcolo del campo [TEMPO_PASSATO] in funzione dell'esistenza o meno di un valore nel campo [DATA_ARRIVO], dovrai subordinarne il calcolo con una condizione "If", ovvero se il campo [DATA_ARRIVO] è nullo, allora il campo [TEMPO_PASSATO] sarà uguale a ([DATA_OGGI] - [DATA_CONSEGNA]), altrimenti sarà uguale a ([DATA_ARRIVO]-[DATA_CONSEGNA]).
  • Re: INTERRUZIONE CONTEGGIO GIORNI

    Ciao Osvi/Ettore,

    ringrazio entrambi per le soluzioni proposte.
    Ho adottato la soluzione proposta da Osvaldo perchè più in linea con il mio livello di conoscenza Access: Funziona
    In effetti il controllo DataOggi come l'avevo impostato, non serve proprio a nulla, avendolo già a sistema !!!

    Grazie ancora e buon fine settimana.
    Gianni.

    P.S. vi anticipo il prossimo argomento: TABELLE LINKATE NON MODIFICABILI
Devi accedere o registrarti per scrivere nel forum
5 risposte