-----------------------------non funziona---------------------------------------
Db.Execute "UPDATE ESAMICLIENTI SET SCONTO = " & VSCONTO & " WHERE CODICE = " & VCODICE
----------------------------------------------------------------------------------------------------------
A naso, il motivo potrebbe essere che VCODICE essendo una stringa voglia i doppi apici o singoli apici ( access non lo conosco bene ), praticamente dovresti avere una cosa del tipo :
UPDATE ESAMICLIENTI SET SCONTO = 5 WHERE CODICE = "001" ( doppi apici )
oppure
UPDATE ESAMICLIENTI SET SCONTO = 5 WHERE CODICE = '001' ( singoli apici )