Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307

    Calcolo dei campi automatico in Access

    Buongiorno a tutti,
    ho creato una semplice tabella Access coi tre campi "Data", "AnniScadenza" e "DataScadenza". Vorrei che, dopo aver inserito la data in "Data" e gli anni di scadenza in "AnniScadenza", in "DataScadenza" comparisse in automatico la data di "Data", aumentata del numero di anni inseriti in "AnniScadenza". E' possibile? Come fare?
    Kisses,

    Nat

  2. #2
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Prova questa funzione:
    Day([Data]) & "/" & Month([Data]) & "/" & Year([Data])+ Year([AnniScadenza])

    questa la uso in una query, comunque dovrebbe essere semplice trasferirla anche su codice

    Ciao

  3. #3
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    eh eh eh ho trovato io un metodo più semplice...
    Costruisco una maschera per la Tabella poi in visualizzazione Struttura, vado nelle Proprietà del campo DataScadenza e come "Origine controllo" metto

    =[Data]+[AnniScadenza]*365

    E' possibile, naturalmente, complicare a piacere la funzione per tenere conto degli anni bisestili....
    Ciao e grazie!
    Kisses,

    Nat

  4. #4
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Avendo lavorato parecchio con access ti consiglio di aggiornare il campo sull'evento afterupdate sia del controllo che ha come origine Data si adi quello che ha come origine AnniScadenza

    ciao :bubu:

  5. #5
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    ho provato anche questo, ma l'aggiornamento non funziona!!

  6. #6
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Perchè la tua funzione
    =[Data]+[AnniScadenza]*365
    lavora bene in maschera ma poi sulla tabella non hai il valore aggiornato
    Se è così dipende dal fatto che il controllo a cui assegni il valore non è collegato con il relativo campo della tabella.

    Dico bene?

  7. #7
    Utente di HTML.it L'avatar di natasha
    Registrato dal
    Sep 2000
    Messaggi
    1,307
    sì, dici proprio bene...

  8. #8
    Utente di HTML.it L'avatar di fabio309
    Registrato dal
    Oct 2002
    Messaggi
    1,918
    Quando mi capita una situazione simile ricorre a questo metodo:
    inserisco una casella di testo(dtaDataScadenza) direttamente collegata al campo DataScadenza in genere imposta la proprietà

    dtaDataScadenza.visible=False

    perchè non mi interessa vedere il valore aggiornato, e per evitare che qualcuno ci intervenga direttamente facendo confusione.

    inserisco una casella di testo (dtaData) collegata al campo Data e un'altra (txtAnniScadenza) collegata al campo AnniScadenza

    sull'evento afterupdate dei controlli dtaData e txtAnniScadenza metti del codice tipo:
    if isnull(dtaData) or isnull(txtAnniScadenza) then exit sub
    if txtAnniScadenza>cstMaxScadenza then exit sub
    'controlli a dis...piacere
    dtaDataScadenza=Day([dtaData]) & "/" & Month([dtaData]) & "/" & Year([dtaData])+ Year([txtAnniScadenza])

    me.requery

    spero di esserti stato utile

    Ciao ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.