Date sequenziali

di il
6 risposte

Date sequenziali

Buongiorno a tutti.
Sono allegra prese con un problema apparentemente banale ma su cui non riesco a venirne a capo. In sostanza dovrei legare dei periodi facendo in modo che non rimanga mai un giorno scoperto. Ad esempio:
Dal al
1. 01.01.2000 10.09.2000
2. 01.01.2001 11.11.2001
3. 01.03.2000 01.03.2001

Sull'evento dopo aggiornamento del campo AL vorrei si avesse:
Dal al
1. 01.01.2000 29.02.2000
2. 01.03.2000 31.12.2000
3. 01.01.2001 11.11.2001

6 Risposte

  • Re: Date sequenziali

    Scusa ma non ho capito l'esempio...
  • Re: Date sequenziali

    Alex in sostanza dopo ogni inserimento effettuo immediatamente un ordinamento crescente e le date dovranno incastrarsi in modo tale da non lasciare nessun periodo vuoto .
    Supponiamo di avere due date:
    01.01.2000 10.09.2000
    01.01.2001 11.11.2001
    La data 10.09.2000 dovrà diventare 31.12.2000 ossia un giorno prima del 01.01.2001.
    E così facendo per tutte i periodi.
    La modifica ha effetto solo sul campo AL.
    L'inserimento di questi valori viene fatto in modo random per cui l'operatore si troverà ad inserire gli eventi non in ordine cronologico.
  • Re: Date sequenziali

    Nel primo esempio che hai fatto non si capisce ancora che criterio hai usato. Rileggilo.

    E poi queste date dove stanno?
  • Re: Date sequenziali

    Le date credo siano inequivocabilmente visibili.
    Il criterio dell'inserimento è random per cui in ogni momento possono essere caricati eventi con periodi precedenti o successivi a quelli esistenti. Magari nel secondo esempio dovrebbe essere più comprensibile
  • Re: Date sequenziali

    Ok ora ho capito.
    I dati li visualizzi su una Maschera...?

    Nel caso [SI] ti basta sfruttare il RecordsetClone, che risulta trasparente per la visualizzazione, spostarti avanti con un MoveNext, leggere la data [DAL] tornare al Bookmark e modificare il valore...!
    La cosa è molto semplice
    
    Dim dtDate As Date
    With Me.RecordseClone
       .MoveNext
       dtDate=!CampoDataDAL
       .MovePrevious
       .Edit
       !CampoDataAL=DateAdd("d",-1,dtDate)
       .Update
    End With
    Chiaramente devi mettere qualche controllo se sei in BOF o EOF...

    Se invece non hai visualizzato in Maschera, stessa cosa ma devi aprire un Rs R/W sulla tabella ordinata correttamente.

    Spero sia chiaro.
  • Re: Date sequenziali

    Con quanto indicato da @Alex nel post che precede questo sei a posto.
    Se vuoi approfondire ulteriormente come potresti strutturare la tabella (e adattare di conseguenza il resto del tuo database) potresti dare un'occhiata a questo video di Philipp Stiefel di codekabinett.com

    Con i sottotitoli attivati il suo inglese è più che accessibile: se lo capisco io, avanti tutti.
    (il mio nick assomiglia vagamente all'autore del video ma non sono io)
Devi accedere o registrarti per scrivere nel forum
6 risposte