Newsgroup: it.comp.appl.access
Titolo: Si può trasformare un numero in lettere

Ciao a tutti
Vi espongo subito il mio problema.
Ho un gestionale che elabora automaticamente una particolare
contabilità, alla fine di tutto dovrei attraverso un report stampare in
automatico anche un centinaio di vaglia postali, fin quì nessun
problema, il problema sorge, quando devo stampare l'importo calcolato
non in formato numerico ma per esteso.
es: € 123,56 centoventitre/56
Ringrazio anticipatamente chiunque mi possa aiutare, e gli informo che
non so usare il codice visul basic, ma solo query e macro
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 non so usare il codice visul basic, ma solo query e macro
senza codice è un pò un problema, ma sei guardi su
www.sitocomune.com
 hai la soluzione
ciao MAssimiliano

funzioni per scrivere valori in lettere prese da utente NG pubblicate
su 
sitocomune.com
Function InLettere(numero As Double) As String
If numero > 999999999 Then
    InLettere = "Numero troppo grande!"
    Exit Function
End If
If CDbl(Decimali(numero)) >= 50 Then
    numero = numero - 1
End If
Dim decine(9) As String
Dim PrimaDecina(10) As String
Dim Numeri(10) As String
Numeri(1) = "uno"
Numeri(2) = "due"
Numeri(3) = "tre"
Numeri(4) = "quattro"
Numeri(5) = "cinque"
Numeri(6) = "sei"
Numeri(7) = "sette"
Numeri(8) = "otto"
Numeri(9) = "nove"
PrimaDecina(0) = "dieci"
PrimaDecina(1) = "undici"
PrimaDecina(2) = "dodici"
PrimaDecina(3) = "tredici"
PrimaDecina(4) = "quattordici"
PrimaDecina(5) = "quindici"
PrimaDecina(6) = "sedici"
PrimaDecina(7) = "diciassette"
PrimaDecina(8) = "diciotto"
PrimaDecina(9) = "diciannove"
decine(2) = "venti"
decine(3) = "trenta"
decine(4) = "quaranta"
decine(5) = "cinquanta"
decine(6) = "sessanta"
decine(7) = "settanta"
decine(8) = "ottanta"
decine(9) = "novanta"
Dim migliaia As Double
Dim centinaia As Double
Dim dec As Double
Dim interi As Double
Dim result As String
Dim milioni As Integer
migliaia = numero \ 1000
centinaia = (numero - migliaia * 1000) \ 100
dec = (numero - migliaia * 1000 - centinaia * 100) \ 10
interi = (numero - migliaia * 1000 - centinaia * 100 - dec * 10)
If migliaia = 1 Then
    result = "mille"
ElseIf migliaia > 1 And migliaia <= 9 Then
    result = Numeri(migliaia) & "mila"
ElseIf migliaia > 9 And migliaia < 20 Then
    result = PrimaDecina(migliaia - 10) & "mila"
ElseIf migliaia >= 20 And migliaia < 1000 Then
    result = InLettere(CDbl(migliaia)) & "mila"
ElseIf migliaia >= 1000 Then
    milioni = migliaia \ 1000
    If milioni = 1 Then
        result = "unmilione" & InLettere(CDbl(numero - milioni *
1000000))
        InLettere = result
        Exit Function
    Else
        result = InLettere(CDbl(milioni)) & "milioni" &
InLettere(CDbl(numero - milioni * 1000000))
        InLettere = result
        Exit Function
    End If
End If
If centinaia = 1 Then
    result = result & "cento"
ElseIf centinaia > 1 And dec = 8 Then
    result = result & Numeri(centinaia) & "cent"
ElseIf centinaia > 1 Then
    result = result & Numeri(centinaia) & "cento"
End If
If dec = 0 Then
    result = result & Numeri(interi)
ElseIf dec = 1 Then
    result = result & PrimaDecina(interi)
ElseIf dec > 1 And (interi = 1 Or interi = 8) Then
    result = result & Left(decine(dec), Len(decine(dec)) - 1)
    result = result & Numeri(interi)
ElseIf dec > 1 Then
    result = result & decine(dec) & Numeri(interi)
End If
InLettere = result
End Function
Function Decimali(numero As Double) As String
If InStr(numero, ",") = 0 Then
    Decimali = "00"
Else
    Decimali = Mid(numero, InStr(numero, ",") + 1, 2)
    If Len(Decimali) = 1 Then
        Decimali = Decimali & "0"
    End If
End If
End Function
Function EuroLettere(num As Double) As String
If IsNull(num) Then num = 0
EuroLettere = InLettere([num]) & "//" & Decimali([num])
End Function
Saluti.
Emanuele.

 es: ? 123,56 centoventitre/56
Ricordo che nell'ormai lontano 1993 fu uno dei primi esercizi di
programmazione che ci fecero fare all'universita'.
Bei tempi...
Sib
--
qualita.assicurazione su 
www.cerrinet.it
Il newsgroup sulla Qualita'