Premesso che sono d'accordo con Luky1964


Premesso che torno a consigliarti di fare una semplice SELECT
( vedi post del 08/05 h 06.11 )


Se devi comunque scrivere il risultato di un calcolo in tabella devi su
una maschera rilevare gli eventi di modifica di uno o dell'altro
controllo associati al calcolo e per ogni modifica con del codice VBA
calcolare il prodotto e scriverlo nel terzo controllo


In pratica ti do le istruzioni per costruirti una semplice
Demo funzionante che poi potrai adattare alla tua applicazione

__________________________________________________ ______
__________________________________________________ ______
__________________________________________________ ______



Creati un nuovo DataBase di Access 2003

__________________________________________________ ________________

Crea una nuova tabella di nome "Ta"
Inserusci dentro questi campi:
___ Id ___ Contatore __ Key
___ Rend __ Valuta __ Formato Standard __ Valore predefinito VUOTO
___ Impo __ Valuta __ Formato Standard __ Valore predefinito VUOTO
___ Prof __ Valuta __ Formato Standard __ Valore predefinito VUOTO


__________________________________________________ ___________________________

Crea una nuova maschera di nome "Masc1"

evita le Autocomposizioni

Vai alla visualizzazione struttura

Proprieta maschera
___ Dati
_____Origine record
_______Seleziona "Ta"


Apri la casella degli strumenti
__ Inserisci nella maschera 4 caselle di testo


__ Vai alle proprieta della 1° casella
____ Scheda "Tutte"
________ Nome elemento "Idx"
________ Origine controllo Selezioni "Id"
____ Scheda "Dati"
________ Bloccato Selezioni "Si"


__ Vai alle proprieta della 2° casella
____ Scheda "Tutte"
________ Nome elemento "Rendx"
________ Origine controllo Selezioni "Rend"
________ Formato Selezioni "Standard"


__ Vai alle proprieta della 3° casella
____ Scheda "Tutte"
________ Nome elemento "Impox"
________ Origine controllo Selezioni "Impo"
________ Formato Selezioni "Standard"


__ Vai alle proprieta della 4° casella
____ Scheda "Tutte"
________ Nome elemento "Profx"
________ Origine controllo Selezioni "Prof"
________ Formato Selezioni "Standard"
____ Scheda "Dati"
________ Bloccato Selezioni "Si"



Puoi mettere il testo che preferisci alle 4 etichette
delle caselle di testo


___ Salva


NB:
osserva che ho differenziato il Nome Elemento
dalla Origine Controllo, questo per farti capire dopo
sempre a cosa fai riferimento.


Osserva anche che la casella "Profx" è bloccata, questo
significa che tu non potrai scriverci dentro niente,
Sara Access a scrivere dentro il valore desiderato.



__________________________________________________ _____________


Puoi gia scrivere qualche numero in Rendx e Impox
vedrai che in Profx non succede nulla.

Prova a scrivere qualcosa in Profx
non potrai scrivere perche bloccato
Giusto?


__________________________________________________ ____________
__________________________________________________ ____________
__________________________________________________ ____________
__________________________________________________ ____________



abbiamo finito il lavoro di base, adesso manca un po di codice
per ottenere il risultato.


__________________________________________________ ______________

Adesso vai alla struttura di "Masc1"

Premi il pulsante "Codice" nella barra degli strumenti


Ti si apre una pagina bianca con scritto semplicemente:
__ Option Compare Database


Lo sostituisci con questo

codice:
Option Compare Database
Option Explicit

Private Sub Rendx_AfterUpdate()
'Succede dopo la modifica di Rendx

    If (Eval("Forms!Masc1!Impox Is Not Null")) Then
    'Se Impox NON è un campo vuoto

        Call KKKK
        'Richiama la funzione KKKK scritta sotto

    End If

End Sub

Private Sub Impox_AfterUpdate()
'Succede dopo la modifica di Impox

    If (Eval("Forms!Masc1!Rendx Is Not Null")) Then
    'Se Rendx NON è un campo vuoto

        Call KKKK
        'Richiama la funzione KKKK scritta sotto

    End If

End Sub


Private Function KKKK()

    Me.Profx = Me.Rendx * Me.Impox / 100
    'Imposta il valore di Profx  al prodotto di Rendx x Impox / 100

    DoCmd.RunCommand acCmdSaveRecord
    'Registra nella tabella il record modificato

    Beep
    MsgBox "fatto", vbOKOnly, ""
    'Potrai eliminare il messaggio di conferma
    'cancellando  il Beep  e il MsgBox

End Function
Salva

Chiudi la finestra del codice

Salvi anche la maschera




Adesso devi legare le caselle di testo della tua maschera
al codice appena scritto:

Vai alla struttura della "Masc1"

__ Vai alle proprieta della casella "Rendx"
____ Scheda "Evento"
________ Dopo Aggiornamento Selezioni "Routine Evento" ( se non cìè già )


__ Vai alle proprieta della casella "Impox"
____ Scheda "Evento"
________ Dopo Aggiornamento Selezioni "Routine Evento" ( se non cìè già )








Finito.

Ora devi adattare i nomi dei controlli alla tua situazione