Salvataggio campo calcolato in tabella

di il
21 risposte

Salvataggio campo calcolato in tabella

Buongiorno

ho il seguente problema.

ho una maschera che riporta dei campi di una tabella.
uno di essi contiene un calcolo e ho notato che non viene memorizzato in tabella

premetto che ho cercato un pò sul forum e anche su google e ho capito che che bisogna intervenire sull'evento "afterupdate"
ma non so bene in che modo.

Potreste aiutarmi?

Grazie

21 Risposte

  • Re: Salvataggio campo calcolato in tabella

    carlazza ha scritto:


    ...
    ho una maschera che riporta dei campi di una tabella.
    uno di essi contiene un calcolo e ho notato che non viene memorizzato in tabella
    ...
    Ma il calcolo come viene fatto? all'interno della maschera, magari nell'origine dati, o è un campo calcolato impostato come tale già in tabella?
  • Re: Salvataggio campo calcolato in tabella

    All'interno della maschera. Nell'origine dati
  • Re: Salvataggio campo calcolato in tabella

    carlazza ha scritto:


    All'interno della maschera. Nell'origine dati
    E' tutto molto più semplice. Una strada è quella dell'evento AfterUpdate del controllo calcolato in cui scrivere questo codice
    Me!NomeCampoInTabella.Value = Me!txtCalcolata.Value
    Altra strada è usare l'evento BeforeUpdate della maschera. Codice identico.
    Il fatto che il calcolo venga salvato in tabella è stato attentamente ponderato, sicuramente (vero?)
  • Re: Salvataggio campo calcolato in tabella

    Questo codice va scritto nell'evento del campo della tabella, giusto?

    E quindi il calcolo va fatto in un'altra casella di testo

    No perché io lo facevo direttamente, sempre in nella maschera, sul campo della tabellla.
    Il fatto che il calcolo venga salvato in tabella è stato attentamente ponderato, sicuramente (vero?)
    Perché mi metti in guardia? A me serve solo per usi futuri... per un report per esempio
  • Re: Salvataggio campo calcolato in tabella

    Perché chi sviluppa db è una delle prime cose che deve imparare a capire se il calcolo deve essere salvato oppure semplicemente reiterato...
    Se hai salvato 2 fattori fondamentali del calcolo esempio 3 bicchieri da 100ml mi pare ovvio che 300ml del totale si un dato da NON salvare perché sempre calcolabile in una query...
    Se invece nel calcolo entrano componenti a tempo dipendente... IVA/SCONTI/CONVENZIONI... ecc..il ragionamento deve cambiare.
    Credo tu possa fare un passo in più che semplicemente pensare di salvare un calcolo a prescindere...
  • Re: Salvataggio campo calcolato in tabella

    Forse il mio "E' tutto molto più semplice" in apertura era ambiguo: non intendevo dire che c'è una via diversa da seguire ma che è tutto molto più semplice perché non si tratta di un campo definito come calcolato già in tabella.

    carlazza ha scritto:


    Questo codice va scritto nell'evento del campo della tabella, giusto?
    Precisato quanto sopra, diventa inequivocabile che il codice va nell'evento AfterUpdate del controllo calcolato, quello che contiene la formula nell'origine dati (si resta quindi nella maschera).

    carlazza ha scritto:


    Il fatto che il calcolo venga salvato in tabella è stato attentamente ponderato, sicuramente (vero?)
    Perché mi metti in guardia?
    Stavo ancora riflettendo su come affrontare questo aspetto quando @Alex ha pubblicato un intervento più che chiarificatore. Il mio è stato un "eccesso di zelo": ho voluto toccare l'argomento perché, alla luce della difficoltà nell'operazione principale, di salvataggio di un valore calcolato, ho ipotizzato "scarsa" conoscenza (in senso buono, capiscimi) che a volte porta a salvare in tabelle cose che non vanno salvate. Magari non è il tuo caso e sono stato io a pensar male però è importante capire quando va fatto e quando no.
  • Re: Salvataggio campo calcolato in tabella

    Diciamo che si effettua il calcolo in maschera se e solo se la maschera è continua... altrimenti non ha senso... e si genera una query con campo calcolato e la form continua avrà un controllo, non editabile, associato al campo calcolato in query ... e su afterupdate basterà un Me.Requery...
  • Re: Salvataggio campo calcolato in tabella

    @Alex ha scritto:


    Perché chi sviluppa db è una delle prime cose che deve imparare a capire se il calcolo deve essere salvato oppure semplicemente reiterato...
    Se hai salvato 2 fattori fondamentali del calcolo esempio 3 bicchieri da 100ml mi pare ovvio che 300ml del totale si un dato da NON salvare perché sempre calcolabile in una query...
    Se invece nel calcolo entrano componenti a tempo dipendente... IVA/SCONTI/CONVENZIONI... ecc..il ragionamento deve cambiare.
    Credo tu possa fare un passo in più che semplicemente pensare di salvare un calcolo a prescindere...

    in effetti, in un primo momento avevo valutato come non necessario il salvataggio.

    ora che sono in un'altra maschera, mi sono reso conto che ho necessità di recuperare quel dato e non ho i campi a disposizione per poterlo ricalcolare.
    quindi si, ho bisogno di salvarlo.
  • Re: Salvataggio campo calcolato in tabella

    Ma non è il ragionamento giusto...
    Se non hai il calcolato non hai nemmeno i fondamentali...?
    se hai i fondamentali il calcolo lo fai e come ti ho già spiegato si usa una query.
    Credo tuttavia tu non abbia capito le basi da cui partire.
  • Re: Salvataggio campo calcolato in tabella

    Precisato quanto sopra, diventa inequivocabile che il codice va nell'evento AfterUpdate del controllo calcolato, quello che contiene la formula nell'origine dati (si resta quindi nella maschera).
    non me lo salva.

    faccio un riepilogo giusto per capirci meglio.

    dal codice che mi hai scritto tu:
    Me!NomeCampoInTabella.Value = Me!txtCalcolata.Value
    
    deduco che il calcolo vada fatto in un'altra casella di testo, giusto?
    io in un primo momento lo facevo direttamente nel campo della maschera(relativo alla tabella).

    ad ogni modo ho fatto come dici tu.
    ho creato una casella di testo(testo21) e ci ho messo la formula.
    nel campo della tabella(sc_var), nell'origine controllo ci ho messo
    =testo21

    e nell'evento afterupdate ci ho messo il seguente codice:
    Me!sc_var.Value = Me!Testo21.Value
    non mi salva nulla in tabella.

    dove sbaglio?
  • Re: Salvataggio campo calcolato in tabella

    @Alex ha scritto:


    Ma non è il ragionamento giusto...
    Se non hai il calcolato non hai nemmeno i fondamentali...?
    se hai i fondamentali il calcolo lo fai e come ti ho già spiegato si usa una query.
    Credo tuttavia tu non abbia capito le basi da cui partire.

    diciamo che è anche una questione di comodità e praticità

    e aggiungo anche che ormai ne voglio approfittare per imparare una cosa nuova
  • Re: Salvataggio campo calcolato in tabella

    carlazza ha scritto:


    @Alex ha scritto:


    Ma non è il ragionamento giusto...
    Se non hai il calcolato non hai nemmeno i fondamentali...?
    se hai i fondamentali il calcolo lo fai e come ti ho già spiegato si usa una query.
    Credo tuttavia tu non abbia capito le basi da cui partire.

    diciamo che è anche una questione di comodità e praticità

    e aggiungo anche che ormai ne voglio approfittare per imparare una cosa nuova
    Le 2 cose che dici sono in antitesi.
    Le cose non si fanno per comodità, si fanno se sono corrette, e tu non hai capito credo nulla di quello che ti ho suggerito, perchè continui a fare le medesime considerazioni ERRATE.
    Quindi ipotizzo ci sia una difficoltà nel comprendere il suggerimento ed eventualmente anche di applicarlo, motivo per il quale risulta difficile procedere.
    Proverei, fosi in te, a leggere qualche testo, per capire se sia conveniente studiare un po di basi in modo più approfondito.
  • Re: Salvataggio campo calcolato in tabella

    Mi sa che non mi sono spiegato bene(è uno modo più gentile di scrivere anziché dire che chi legge non ha capito nulla) , perchè il mio intento a questo punto è che voglio comunque approfondire l'argomento per quando effettivamente ci sarà bisogno di salvare un campo calcolato in tabella.
  • Re: Salvataggio campo calcolato in tabella

    carlazza ha scritto:


    Mi sa che non mi sono spiegato bene(è uno modo più gentile di scrivere anziché dire che chi legge non ha capito nulla) , perchè il mio intento a questo punto è che voglio comunque approfondire l'argomento per quando effettivamente ci sarà bisogno di salvare un campo calcolato in tabella.
    Se dico che "non hai capito nulla", non vuole essere un modo poco gentile di espressione.
    Tecnicamente parlando non ci sono molte sfumature... quindi se hai capito correggi il tiro ed operi come ti è stato detto.
    Se non operi come ti è stato suggerito ci possono essere vari motivi..., io preferisco pensare che tu non abbia capito..., quindi penso di essere stato molto educato...
    Tuttavia sono aperto e curioso di capire perchè, visto che ti sei offeso, continui ad operare in modo che nulla ha a che vedere con il suggerimento...
    Spero ci sia un motivo tecnico interessante...!

    Ti suggerisco tuttavia nuovamente un testo... perchè il linguaggio tecnico è così, e se non ti appropri delle conoscenze di base peraltro richieste dal forum, anche comprendere i suggerimenti rimane complicato.
Devi accedere o registrarti per scrivere nel forum
21 risposte