/Anonimizzato30854Utente anonimizzato28 giu 2021, 11:01Buongiorno, sto inserendo dei dati attraverso una maschera di inserimento dati, ma ad un certo punto non riesco a procedere con l'inserimento e mi compare questo avviso: Non riesco a capire come risolvere, qualcuno potrebbe aiutarmi? (si tratta di un database molto piccolo, sarò a 200 righe neanche)
/Anonimizzato30854Utente anonimizzato28 giu 2021, 11:42In questa linea: vPClCA = (vClCA / vTOTA) * 100 dove vClCA = ((vk * vAbso) / 0.1) * CDbl(ClCA) * 0.001 vClGA, vClDA, vClPA sono analoghi e vTOTA = vClCA + vClGA + vClDA + vClPA e vk = CDbl(k) vAbso = CDbl(Abso) (tutti numeri decimali così xxx.x)
max.riservoMolto attivoIscritto daago, 2016Messaggi77828 giu 2021, 11:53Mostra il codice completo e sopratutto la dichiarazione delle variabili altrimenti parliamo del nulla.
/Anonimizzato30854Utente anonimizzato28 giu 2021, 12:02Ok, va bene cosa è meglio? che copio tutto il codice delle vba qui (è lunghetto)? che mando un link con il database per visualizzare tutta la maschera? Grazie!
max.riservoMolto attivoIscritto daago, 2016Messaggi77828 giu 2021, 12:06Serve SOLO il codice della function/sub dove avviene l'errore e serve la parte di dichiarazione delle variabili se NON è compresa nella function.
/Anonimizzato30854Utente anonimizzato28 giu 2021, 12:18Ok, ecco: Dim vk As Double Dim vAbso As Double vk = CDbl(k) vAbso = CDbl(Abso) Dim vClCA As Double Dim vClGA As Double Dim vClDA As Double Dim vClPA As Double Dim vTOTA As Double vClCA = ((vk * vAbso) / 0.1) * CDbl(ClCA) * 0.001 vClGA = ((vk * vAbso) / 0.1) * CDbl(ClGA) * 0.001 vClDA = ((vk * vAbso) / 0.1) * CDbl(ClDA) * 0.001 vClPA = ((vk * vAbso) / 0.1) * CDbl(ClPA) * 0.001 vTOTA = vClCA + vClGA + vClDA + vClPA vPClCA = (vClCA / vTOTA) * 100 (qui da errore)
max.riservoMolto attivoIscritto daago, 2016Messaggi77828 giu 2021, 12:20PEr il fututo : il codice va inserito utilizzato l'apposito TAG CODE. Visualizza quanto vale VTOTA, probabilmente tende a Zero ...
/Anonimizzato30854Utente anonimizzato28 giu 2021, 12:40Ok, grazie. si esatto vTOTA è zero così come vCICA (e gli altri) poichè vAbso risulta zero (dovrebbe essere 0.5) mentre vK è giusto (6). visto che c'è un fattore zero (vAbso) il prodotto vCICA è zero quini il problema è vAbso che risulta zero a prescindere dal numero che io metto nella casella Abso, da cosa potrebbe essere dovuto?
@AlexSuper FamosoIscritto dafeb, 2012Messaggi895128 giu 2021, 12:43Aggiungio all'osservazione di Max, per la quale un numero diviso 0 da INFINITO, ed in programmazione è condizione da evitare con una condizione IF...THEN... Segui con il DEBUG la prima assegnazione di vAbso = CDbl(Abso) Debug.Print vAbso ...
/Anonimizzato30854Utente anonimizzato28 giu 2021, 12:58Ok! con il Debug funziona, ma quindi era solamente un errore dovuto al fatto che Abso non veniva interpretato correttamente? se mi capitasse una cosa analoga procedo nello stesso modo o si potrebbe cambiare qualcosa a monte per evitare questi intoppi? grazie
@AlexSuper FamosoIscritto dafeb, 2012Messaggi895128 giu 2021, 15:42Il Debug non serve a risolvere queste stranezze ma solo a trovarle e capire... quindi se, togliendolo ripropone l'anomalia, direi che c'è da indagare meglio...!