Conversione di un testo breve in un numero

di il
3 risposte

Conversione di un testo breve in un numero

Ciao a tutti.
Sto sbattendo la testa su un errore stupido a cui non trovo soluzione con le formule di conversione.

L'amministratore delle tabelle dei miei DB, ha creato una tabella in cui nel campo [WAFER_SIZE] ci sono valori salvati come testo breve che devo riconvertire in numeri interi.
La soluzione piu' semplice sarebbe chiedere di modificare il formato del campo, ma essendo semplice sono stato rimbalzato

Come faccio a convertire le stringhe 05, 06, 08 e 12 nei rispettivi numeri interi senza avere l'errore "Data Type mismatch"?

Ho provato con
CInt([WAFER_SIZE]),
Val([WAFER_SIZE]),
IIf(Left([WAFER_SIZE],1)="0",Val(right([WAFER_SIZE],1)),Val([WAFER_SIZE]))

Grazie
Max

3 Risposte

  • Re: Conversione di un testo breve in un numero

    Io ho fatto un test con le stringhe-numeri che hai fornito tu e, modificando semplicemente il tipo dati da testo breve in numerico, a me non ha dato alcun problema.
    Sei sicuro che si tratti sempre di numeri interi?
  • Re: Conversione di un testo breve in un numero

    Perchè devi convertire un Dato Testo in Numero...?
    Ci deve essere un motivo legato a Calcoli matematici altrimenti non ha senso.

    In ogni caso se provi una banale istruzione nella Finestra Immediata del VBA che si attiva con (CONTROL+G) e scrivi:
    
    ?VAL("01")
    1
    Se verifichi il VarType
    
    ?Vartype(VAL("01"))
     5 
    Dove 5 corrisponde a Double, quindi è numerico...
    Ma anche se fai
    
    ?Cint("01")
     1 
    sempre numerico...

    Nutro molte perplessità che il tuo tentativo sia corretto, ma in realtà sospetto tu abbia un Records con un valore VUOTO, non NULLO, che appunto restituisce il "Data Type mismatch"
  • Re: Conversione di un testo breve in un numero

    Ciao
    mi serve per fare una conversione dal quantitativo di silicio con il diametro realmente utilizzato, al quantitativo corrispondente se il diametro fosse di 8 pollici.

    Ho trovato la soluzione, in una prima query che genera una tabella con solo I record che mi servono faccio

    WAFERSIZE: FormatNumber([WAFER_SIZE],0)

    nella query successiva creo un'altra tabella in cui riesco ad avere il formato numerico con

    WAFER_SIZE: Val([WAFERSIZE])

    Ed infine ho la query con il calcolo che mi serve.

    Fa ribrezzo a me che ci capisco poco, non voglio sapere quanto lo possa fare a voi.
    Pero' funziona.

    Grazie a tutti
    Max
Devi accedere o registrarti per scrivere nel forum
3 risposte