125 messaggi dal 17 luglio 2002
in alcune variabili inseirsco dei valori presenti nel recordset

ore_totass = recordcollection1("ore")
ore_totass1 = recordcollection2("ore")

che sono dei numeri

se poi però cerco di fare

ore_tot = ore_totass+oretotass1

mi da errore "type mismatch"

Inoltre, è possibile (risolto questo) eseguire delle divisioni con le variabili?


MILANO SAIMA CAMPIONE D'ITALIA 2003
3.122 messaggi dal 16 maggio 2002
Per caso i campi che estrai dal recordset sono stati definiti come stringa? O magari almeno uno dei due e' NULL? Se sei in queste condizioni non puoi eseguire una somma, devi prima controllare che siano valori numerici e poi eseguire un eventuale cast.
Per la seconda domanda: certo che e' possibile eseguire divisioni!

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
125 messaggi dal 17 luglio 2002
sono numeri, infatti le query con cui li recupero fanno delle sum. E non sono nulli.....

aiutissimo....


MILANO SAIMA CAMPIONE D'ITALIA 2003
879 messaggi dal 09 luglio 2002
www.i-studio.it
Devi usare le funzioni di conversione:
ore_totass = cInt(recordcollection1("ore"))
ore_totass1 = cInt(recordcollection2("ore"))

ore_tot = ore_totass+oretotass1

Fai attenzione pero' ad usare queste funzioni:
- se il valore e' troppo grande hai un errore, perche' cInt converte il valore in un intero che quindi puo' andare da -32767 a +32768. Se il valore e' piu' grande usa cLng
- se il valore e' nullo o non e' numerico, hai un errore. Controlla quindi prima il valore in questo modo:
if not IsNull(recordcollection1("ore")) AND IsNumeric(recordcollection1("ore")) then
ore_totass = cInt(recordcollection1("ore"))
end if
if not IsNull(recordcollection2("ore")) AND IsNumeric(recordcollection2("ore")) then
ore_totass1 = cInt(recordcollection2("ore"))
end if

ore_tot = ore_totass+oretotass1


Fatto questo, hai sicuramente delle variabili numeriche e quindi puoi fare anche le divisioni. Anche qui pero' fai attenzione a non fare una divisione per 0 (vai in overflow)... inoltre, quando fai la divisione di due interi potresti avere un valore decimale... e li intervengono gli arrotondamenti...

Ciao
Alex

Modificato da alex.iava il 11 settembre 2003 16.14 -

Internetworking Studio Srl
www.i-studio.it
125 messaggi dal 17 luglio 2002
ok così funziona... però i decimali mi sarebbero MOLTO utili......
si può fare in qualche modo???

MILANO SAIMA CAMPIONE D'ITALIA 2003
3.122 messaggi dal 16 maggio 2002
Converti in single (CSng) o double (CDbl) invece che in intero.
Modificato da Raynor il 11 settembre 2003 16.24 -

The day Microsoft makes something that doesn't suck
is probably the day they start making vacuum cleaners.

Get caught!
Get caught again!
125 messaggi dal 17 luglio 2002
ho convertito in CDbl, ma una divisione mi da un risultato molto basso (tipo 0,04612) e sulla cella di excel scrive 4,61 E-02
Tra l'altro imposta il formato della cella come scentifico con due posizioni decimali.
Ma la cosa bella e cliccando sulla cella, nella barra in alto compare il valore corretto......
Che rottura.....
Aiutissimo....

MILANO SAIMA CAMPIONE D'ITALIA 2003

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.