EVAL e decimali

di il
9 risposte

EVAL e decimali

Buonasera a tutti,
ho un problema che non riesco a risolvere e non so se dipende da me o da un limite della funzione EVAL in Access.
La funzione mi restituisce solo valori interi!
Se ad esempio nella textbox scrivo 9/2 mi restituisce 4 se scrivo 11/2 mi restituisce 6.
E' normale o sbaglio qualcosa?
Grazie

9 Risposte

  • Re: EVAL e decimali

    E' probabile che effettui un errore nelle operazioni.
    Tieni presente che la funzione EVAL restituisce un tipo Variant.
    Non descrivi in dettaglio come assegni il dato nella funzione, comunque considera che l'errore può essere dovuto a:
    - conversione ad intero;
    - la casella di testo imposta con 0 (zero) posizioni decimali.
  • Re: EVAL e decimali

    In finestra immediata prova
    ?EVAL("9/2")

    Se vedi i decimali... Willy ha visto bene...
  • Re: EVAL e decimali

    Grazie ad entrambi per le risposte.
    Effettivamente in finestra immediata ?EVAL("9/2") mi restituisce 4,5.
    Nella textbox "risultato" i decimali sono impostati a 2

    il codice che ho scritto sull'evento uscita dalla textbox che contine l'espressione è il seguente:

    Private Sub VoceNPquantita_Exit(Cancel As Integer)
    Dim espressione As Variant
    espressione = Eval(Me.VoceNPquantita)
    Me.Risultato = CVar(espressione)
    End Sub

    Grazie.
  • Re: EVAL e decimali

    Nel codice presentato non si evidenzia l'errore (anche se poteva essere ridotto ad una sola riga):
    
    Private Sub VoceNPquantita_Exit(Cancel As Integer)
    Me.Risultato = Eval(Me.VoceNPquantita)
    End Sub
    
    Comunque effettua un controllo passo passo con il debug ed esamina le proprietà della casella di testo di partenza (Me.VoceNPquantita) e Me.Risultato nella maschera su cui confluisce il calcolo.

    PS utilizza i tag-code.
  • Re: EVAL e decimali

    Devi salvare in Tabella il valore...?
    Essendo un Calcolato, io eviterei ed userei un controllo NON associato con ControlSource
    =EVAL([VoceNPquantita])
  • Re: EVAL e decimali

    Buongiorno,

    Come come consigliatomi da Alex ho svincolato il campo dalla Tabella ed effettivamente il risultato che compare è corretto.
    Potreste indicarmi come usare il controlsource per cercare di salvare il dato in tabella.
    Grazie
  • Re: EVAL e decimali

    Scusa ma non ho capito... i campi Calcolati non si salvano, tu hai svincolato ed ora invece vuoi salvarlo...?
    Non ti pare un controsenso...?
    Francamente non ho capito cosa vuoi fare.
  • Re: EVAL e decimali

    Ciao Alex
    quello che vorrei fare è quanto segue:

    in una textbox scrivere, ad esempio : 9/2*3+5 = 18,50

    Vorrei salvare quel "18,50" in un campo di una tabella

    Dal momento che ho un campo (non collegato) in maschera che mi riporta il risultato corretto, come posso
    salvarlo in un campo della tabella che è a monte della maschera?

    Ho impostato il campo numerico nel quale vorrei salvare il valore in tutti i modi, senza riuscire a fargli digerire i valori dopo la virgola.

    Grazie
  • Re: EVAL e decimali

    Allora; innanzitutto grazie per il supporto.
    Sono riuscito a risolvere impostando a decimale il numerico in tabella e impostando i valori

    -precisione-
    -scala
    - valori decimali

    Ora il campo in tabella registra il valore compresi i decimali.

    Grazie a tutti
Devi accedere o registrarti per scrivere nel forum
9 risposte