Inserire data antecedente data odierna

di il
6 risposte

Inserire data antecedente data odierna

Ciao a tutti.
Vorrei fare un controllo sulla data inserita in una maschera che sia antecedente alla data odierna.
Il campo corrispondente nella tabella si chiama DataE.
Cioè, vorrei che quando vado nel campo corrispondente alla data compaia il calendario, scelgo la data e se questa non è antecedente alla data odierna mi dia un messaggio o non me la faccia proprio scegliere.
Spero di essere stato chiaro.
Grazie in anticipo.

6 Risposte

  • Re: Inserire data antecedente data odierna

    antcru ha scritto:


    ...
    Vorrei fare un controllo sulla data inserita in una maschera che sia antecedente alla data odierna.
    Il campo corrispondente nella tabella si chiama DataE.
    Cioè, vorrei che quando vado nel campo corrispondente alla data compaia il calendario, scelgo la data e se questa non è antecedente alla data odierna mi dia un messaggio o non me la faccia proprio scegliere.
    ...
    Cosa importante da verificare: il campo DataE della tabella è data breve o data lunga? Tutto quello che segue è basato sul fatto che si tratti di Data breve.
    L'perazione abbastanza semplice, almeno per la prima parte: da quanto ho capito il controllo della maschera è associato al campo DataE. In automatico dovrebbe proporti il "calendario" quando entri nel controllo per compilarlo. Se così non è devi impostare tu il formato del controllo in "data in cifre" (o data breve).
    La data odierna si ottiene con la funzione Date(). Potresti impostare come valore predefinito del controllo
    DateAdd("g"; -1; Date)
    così al nuovo inserimento propone automaticamente "ieri"
    Nell'evento BeforeUpdate (Prima di Aggiornamento) del controllo verifichi che il suo valore sia inferiore alla data odierna. Se la verifica non è superata, annulli l'evento e fai comparire un messaggio.
    Spiegato tutto a memoria. Scrivi qualcosa, se i problemi persistono, posta quello che hai fatto.
    Oppure agisci direttamente sulle proprietà del controllo, come suggerito da Osvaldo (vedi sotto)
  • Re: Inserire data antecedente data odierna

    Considera che la data odierna si esplicita con l'espressione Date()
    Compila le proprietà del campo DataE
    Valido se: <=Date()
    Messaggio errore: Hai digitato una Data futura non ammessa
  • Re: Inserire data antecedente data odierna

    OsvaldoLaviosa ha scritto:


    ...
    Valido se: <=Date()
    ..
    Non ammette una data che non sia anteriore, quindi ammette solo una data anteriore a quella odierna
    Valido se: < Date()
  • Re: Inserire data antecedente data odierna

    Ragazzi grazie a tutti,
    certo che mi sento veramente male a non aver pensato alla soluzione di Osvaldo.
    Anche se la soluzione di Osvaldo mi va benissimo, ho provato anche la soluzione di Phil, ma non ho capito è come annullare l'evento.
    Ho scritto il codice sull'evento BeforeUpdate, scrivendo
    if (me.dataE > date()) then
    msgerror("La data deve essere antecedente la data odierna")
    end if

    ora non capisco come annullare l'evento. Cioè come faccio a cancellare quello che c'è scritto e far restare il cursore su quel campo?
    Grazie ancora
  • Re: Inserire data antecedente data odierna

    CANCEL=TRUE....?
  • Re: Inserire data antecedente data odierna

    Grazie Alex! Funziona alla perfezione.
Devi accedere o registrarti per scrivere nel forum
6 risposte