Conversione di numeri da cifre in lettere

Identificativo articolo: 635601 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I10601
Espandi tutto | Chiudi tutto

Sommario


Il seguente codice Access basic permette di convertire un numero da cifre in
lettere. Es. 124 -> Centoventiquattro.

Per il suo corretto funzionamento occorre eseguire all' avvio, inserendola nella
macro Autoexec la funzione Inizializza_variabili ().



Option Compare Database 'Utilizza il tipo di ordinamento del database per i
confronti fra stringhe

Option Explicit
Option Base 1
Dim Tabella_Nomi(19) As String
Dim Tabella_Decine(9) As String

Private Function Centinaia (Numero As Double) As String
Dim NumCentinaia As Integer, StrCentinaia As String
NumCentinaia = Int(Numero / 100)
If NumCentinaia > 0 Then
If NumCentinaia = 1 Then
StrCentinaia = "cento"
Else
StrCentinaia = Tabella_Nomi(NumCentinaia) & "cento"
End If
End If
Centinaia = StrCentinaia & Decine_e_Unita(Numero - (NumCentinaia * 100))
End Function

Private Function Decine_e_Unita (Numero As Double) As String
Dim Decine As String, Unita As Integer

If Numero = 0 Then
Decine_e_Unita = ""
Else
If Numero < 20 Then
Decine_e_Unita = Tabella_Nomi(Numero)
Else
Decine = Tabella_Decine(Int(Numero / 10))
Unita = Numero Mod 10
If Unita = 0 Then
Decine_e_Unita = Decine
Else
Decine_e_Unita = Decine & Tabella_Nomi(Unita)
End If
End If
End If
End Function

Function Inizializza_variabili ()
' Inizializza tabella al caricamento del modulo
Tabella_Nomi(1) = "uno"
Tabella_Nomi(2) = "due"
Tabella_Nomi(3) = "tre"
Tabella_Nomi(4) = "quattro"
Tabella_Nomi(5) = "cinque"
Tabella_Nomi(6) = "sei"
Tabella_Nomi(7) = "sette"
Tabella_Nomi(8) = "otto"
Tabella_Nomi(9) = "nove"
Tabella_Nomi(10) = "dieci"
Tabella_Nomi(11) = "undici"
Tabella_Nomi(12) = "dodici"
Tabella_Nomi(13) = "tredici"
Tabella_Nomi(14) = "quattordici"
Tabella_Nomi(15) = "quindici"
Tabella_Nomi(16) = "sedici"
Tabella_Nomi(17) = "diciassette"
Tabella_Nomi(18) = "diciotto"
Tabella_Nomi(19) = "diciannove"
Tabella_Decine(1) = "dieci"
Tabella_Decine(2) = "venti"
Tabella_Decine(3) = "trenta"
Tabella_Decine(4) = "quaranta"
Tabella_Decine(5) = "cinquanta"
Tabella_Decine(6) = "sessanta"
Tabella_Decine(7) = "settanta"
Tabella_Decine(8) = "ottanta"
Tabella_Decine(9) = "novanta"
End Function

Private Function Milioni_e_Migliaia (Numero As Double) As String
Dim Assoluto As Double
Dim NumMilioni As Double
Dim Milioni As String
Dim Var1 As Double, NumMigliaia As Double
Dim Migliaia As String

If Numero > 999999999 Then
Milioni_e_Migliaia = "Numero troppo grande !"
Exit Function
End If

Assoluto = Int(Numero)
NumMilioni = Int(Assoluto / 1000000)
If NumMilioni = 0 Then
Milioni = ""
ElseIf NumMilioni = 1 Then
Milioni = "unmilione"
Else
Milioni = Centinaia(NumMilioni) & "milioni"
End If
Var1 = Assoluto Mod 1000000
NumMigliaia = Int(Var1 / 1000)
If NumMigliaia = 1 Then
Migliaia = "Mille"
Else
If NumMigliaia <> 0 Then Migliaia = Centinaia(NumMigliaia) & "mila"
End If
Milioni_e_Migliaia = Milioni & Migliaia & Centinaia(Var1 Mod 1000)
End Function

Function NumToCar (Numero As Double) As String
Dim Virgola As Integer
Dim StrIntero As String
Dim Decimale As String

Virgola = InStr(1, Str$(Numero), ".", 0)
StrIntero = Milioni_e_Migliaia(Int(Numero))
If Virgola = 0 Then
NumToCar = StrIntero
Else
Decimale = Milioni_e_Migliaia(Val(Mid$(Str$(Numero), Virgola + 1, 1)))
If Int(Numero) = 0 Then
NumToCar = "zero virgola " & Decimale
Else
If (Decimale = "") Then
NumToCar = StrIntero
Else
NumToCar = StrIntero & " virgola " & Decimale
End If
End If
End If
End Function

Proprietà

Identificativo articolo: 635601 - Ultima modifica: giovedì 28 marzo 1996 - Revisione: 1.0
Le informazioni in questo articolo si applicano a:
  • Microsoft Access 2.0 Standard Edition
Chiavi: 
KB635601
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilità per articoli della Microsoft Knowledge Base su prodotti non più supportati
Questo articolo è stato scritto sui prodotti per cui Microsoft non offre più supporto. L?articolo, quindi, viene offerto ?così come è? e non verrà più aggiornato.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com