Errore run-time 6 overflow

di Anonimizzato30854 il
11 risposte
Buongiorno,
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)

11 Risposte

  • In quale linea di codice?
  • In 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)
  • Mostra il codice completo e sopratutto la dichiarazione delle variabili altrimenti parliamo del nulla.
  • Ok, 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!
  • Serve SOLO il codice della function/sub dove avviene l'errore e serve la parte di dichiarazione delle variabili se NON è compresa nella function.
  • Ok, 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)
  • PEr il fututo : il codice va inserito utilizzato l'apposito TAG CODE.

    Visualizza quanto vale VTOTA, probabilmente tende a Zero ...
  • Ok, 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?
  • Aggiungio 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
    ...
  • Ok! 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
  • Il 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...!
Devi accedere o registrarti per scrivere nel forum
11 risposte