Newsgroup: it.comp.appl.access
Titolo: Convertire Cifre in Lettere

Ragazzi ho trovato sul Vs sito un file che fa al mio caso 
(
http://www.sitocomune.com/download/Cur2StrEuro.zip
) solo che il problema e 
che non conosco bene il linguaggio di programmazione e quindi non riesco a 
capire come e cosa devo inserire nel mio database. Ho seguito il file di 
testo allegato, ho esportato e poi ho inserito il modulo nel mio progetto e 
poi ho scritto il codice allegato nel file txt, ma nulla.
Mi dareste una mano?
Nel file c'è anche la possibilità di scegliere in quale lingua convertire i 
numeri (italiano, francese, tedesco, inglese) a me tale funzione non serve 
mi serve solo fare la funzione + semplice:
una casella di testo che contine il numero,
un'altra casella di testo contiene il numero in lettere.
grazie mille mazzapa

 wrote in message 
news:Z89He.31404$fm.22...@news4.tin.it...

Questa è un po' lunghina e funziona solo in italiano.
Metti il numero in T1 e nel Control Source di altro Text Box:
=IIf(IsNull([T1]),Null,NumLet([T1],True))
-----------------------------------------------------------------------
Public Function NumLet(Num As Currency, Optional ShowFractionalPart As 
Boolean = True)
Dim F(1 To 27, 1 To 2), NumArray() As Currency, NumArrayStr() As String
Dim NumStr As String, NumLen As Byte, i As Integer, j As Integer, NumTerne 
As Byte
Dim NumX As Integer, NumStrX As String, LetX As String
Dim SuffissoM(1 To 5, 1 To 2) As String, FractionalPart As String
F(1, 1) = 1: F(1, 2) = "uno"
F(2, 1) = 2: F(2, 2) = "due"
F(3, 1) = 3: F(3, 2) = "tre"
F(4, 1) = 4: F(4, 2) = "quattro"
F(5, 1) = 5: F(5, 2) = "cinque"
F(6, 1) = 6: F(6, 2) = "sei"
F(7, 1) = 7: F(7, 2) = "sette"
F(8, 1) = 8: F(8, 2) = "otto"
F(9, 1) = 9: F(9, 2) = "nove"
F(10, 1) = 10: F(10, 2) = "dieci"
F(11, 1) = 11: F(11, 2) = "undici"
F(12, 1) = 12: F(12, 2) = "dodici"
F(13, 1) = 13: F(13, 2) = "tredici"
F(14, 1) = 14: F(14, 2) = "quattordici"
F(15, 1) = 15: F(15, 2) = "quindici"
F(16, 1) = 16: F(16, 2) = "sedici"
F(17, 1) = 17: F(17, 2) = "diciassette"
F(18, 1) = 18: F(18, 2) = "diciotto"
F(19, 1) = 19: F(19, 2) = "diciannove"
F(20, 1) = 20: F(20, 2) = "venti"
F(21, 1) = 30: F(21, 2) = "trenta"
F(22, 1) = 40: F(22, 2) = "quaranta"
F(23, 1) = 50: F(23, 2) = "cinquanta"
F(24, 1) = 60: F(24, 2) = "sessanta"
F(25, 1) = 70: F(25, 2) = "settanta"
F(26, 1) = 80: F(26, 2) = "ottanta"
F(27, 1) = 90: F(27, 2) = "novanta"
SuffissoM(1, 1) = ""
SuffissoM(1, 2) = ""
SuffissoM(2, 1) = "mille"
SuffissoM(2, 2) = "mila"
SuffissoM(3, 1) = "unmilione"
SuffissoM(3, 2) = "milioni"
SuffissoM(4, 1) = "unmiliardo"
SuffissoM(4, 2) = "miliardi"
SuffissoM(5, 1) = "unbilione"
SuffissoM(5, 2) = "bilioni"
LetX = ""
If Num > 999999999999999# Or Num < 0 Then
    MsgBox "Solo numeri (interi o decimali) compresi nell'intervallo  0 
|---|  999 999 999 999 999."
    Exit Function
End If
If Fix(Num) <> Num Then
    If ShowFractionalPart Then
        FractionalPart = "/" & Mid(Str(Num - Fix(Num)), 3)
        Num = Fix(Num)
    Else
        Num = Round(Num, 0)
    End If
Else
    If ShowFractionalPart Then
        FractionalPart = "/00"
    End If
End If
If Len(FractionalPart) = 2 Then
    FractionalPart = FractionalPart & "0"
End If
NumStr = Mid(Str(Num), 2)
NumLen = Len(NumStr)
    If NumLen Mod 3 = 0 Then
        NumTerne = NumLen / 3
    Else
        NumTerne = Int(NumLen / 3) + 1
    End If
ReDim NumArray(1 To NumTerne)
ReDim NumArrayStr(1 To NumTerne)
For i = 1 To NumTerne
    If NumLen - i * 3 + 1 > 0 Then
        NumArray(i) = Mid(NumStr, NumLen - i * 3 + 1, 3)
    Else
        NumArray(i) = Mid(NumStr, 1, NumLen - 3 * (NumTerne - 1))
    End If
Next i
For i = 1 To NumTerne
    If NumArray(i) > 0 Then
        NumX = NumArray(i)
        GoSub Centinaia
        NumArrayStr(i) = NumStrX
    End If
Next i
j = 0
For i = NumTerne To 1 Step -1
    If NumArray(i) > 0 Then
        If NumArray(i) = 1 Then
            If j = 0 And i > 1 Then
                LetX = LetX & SuffissoM(i, 1)
                j = j + 1
            Else
                LetX = LetX & NumArrayStr(i) & SuffissoM(i, 2)
            End If
        Else
            LetX = LetX & NumArrayStr(i) & SuffissoM(i, 2)
        End If
    End If
Next i
i = Len(LetX)
If i > 3 Then
    If Right(LetX, 3) = "tre" Then
        LetX = Left(LetX, i - 3) & "tré"
    End If
End If
NumLet = UCase(Left(LetX, 1)) & Mid(LetX, 2) & FractionalPart
Exit Function
Centinaia:
'---------
NumStrX = ""
If NumX > 99 Then
    If NumX > 199 Then
        NumStrX = NumStrX & F(Left(NumX, 1), 2) & "cento"
    Else
        NumStrX = NumStrX & "cento"
    End If
    NumX = Right(NumX, 2)
End If
Select Case NumX
    Case 1 To 20
        NumStrX = NumStrX & F(NumX, 2)
    Case 21 To 99
        If Right(NumX, 1) = "0" Then
            NumStrX = NumStrX & F(20 + Int((NumX - 20) / 10), 2)
        ElseIf Right(NumX, 1) = 1 Or Right(NumX, 1) = 8 Then
            j = Len(F(20 + Int((NumX - 20) / 10), 2))
            NumStrX = NumStrX & Left(F(20 + Int((NumX - 20) / 10), 2), j - 
1) & F(Right(NumX, 1), 2)
        Else
            NumStrX = NumStrX & F(20 + Int((NumX - 20) / 10), 2) & 
F(Right(NumX, 1), 2)
        End If
End Select
Return
End Function
-------------------------------
Bruno 

 ha scritto nel messaggio 
news:_P9He.31506$fm.22...@news4.tin.it...


 Mazzapa
Ti ho già inviato il file con alcuni chiarimenti.
Altri te n'accorressero, fammelo sapere.
Bruno