Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Access: Zahlen in Worten





Frage

Hallo liebe Access Freunde Ist es möglich anhand einer Formel ein Zahlenbetrag in Worten auszuschreiben. Bsp Der Betrag von 80 € soll als "achtzig" angezeigt werden. Würde mich über eine baldige Antwort freuen ! Vielen Dank für eure Hilfen. mfg Jimmy

Antwort 1 von Koebi

Grüezi Jimmy

Folgende Funktion sollte helfen. Sie stammt nicht von mir, dürfte also funktionieren.

Function CurStr(InputValue, Optional Round, Optional Nulls)
´Gibt #InputValue in Worten aus, wobei auf #Round gerundet wird
´Standardeinstellung #Round = 0 (ohne Nachkommastellen)
´z.B. #Round = 3 (nur Tausender), oder -2 (zwei Nachkommastellen)
´Standardeinstellung #Nulls = False (0 wird nicht ausgeschrieben)

    If IsNull(InputValue) Then
        CurStr = Null
        Exit Function
    End If

    If VarType(Round) = vbError Then Round = 0
    If VarType(Nulls) = vbError Then Nulls = False

    Dim Dec As String
    Select Case Round
        Case Is > 0
            InputValue = CLng((InputValue \ (10 ^ Round)) * (10 ^ Round))
            Dec = "..."
        Case -1
            Dec = " komma " & CurStr((((InputValue - Int(InputValue)) * 100) \ 10) * 10, , True)
            InputValue = CLng(Int(InputValue))
        Case Is < -1
            Select Case (InputValue - Int(InputValue)) * 100
                Case Is = 0
                    Dec = " komma null" ´oder Leerstring wenn nicht geschrieben werden soll
                Case 1 To 9
                    Dec = " komma null" & CurStr(((InputValue * 10 - Int(InputValue * 10)) * 10), , True)
                Case Else
                    Dec = " komma " & CurStr(((InputValue - Int(InputValue)) * 100), , True)
            End Select
            InputValue = CLng(Int(InputValue))
        Case Else
            InputValue = CLng(Int(InputValue))
            Dec = ""
    End Select

    Select Case InputValue
        Case Is >= 1000000000
            CurStr = "#FEHLER"
        Case 0
            CurStr = IIf(Nulls, "null", "") ´wenn Parameter Nulls wahr ist
        Case 1
            CurStr = "ein"
        Case 2
            CurStr = "zwei"
        Case 3
            CurStr = "drei"
        Case 4
            CurStr = "vier"
        Case 5
            CurStr = "fünf"
        Case 6
            CurStr = "sechs"
        Case 7
            CurStr = "sieben"
        Case 8
            CurStr = "acht"
        Case 9
            CurStr = "neun"
        Case 10
            CurStr = "zehn"
        Case 20
            CurStr = "zwanzig"
        Case 30
            CurStr = "dreißig"
        Case 40
            CurStr = "vierzig"
        Case 50
            CurStr = "fünfzig"
        Case 60
            CurStr = "sechzig"
        Case 70
            CurStr = "siebzig"
        Case 80
            CurStr = "achzig"
        Case 90
            CurStr = "neunzig"
        Case 11
            CurStr = "elf"
        Case 12
            CurStr = "zwölf"
        Case 13 To 19
            CurStr = CurStr(InputValue - 10) & "zehn"
        Case 100 To 999
            CurStr = CurStr(InputValue \ 100) & "hundert" & _
CurStr(InputValue - ((InputValue \ 100) * 100))
        Case 1000 To 999999
            CurStr = CurStr(InputValue \ 1000) & "tausend " & _
CurStr(InputValue - ((InputValue \ 1000) * 1000))
        Case 1000000 To 999999999
            CurStr = CurStr(InputValue \ 1000000) & "million" & _
IIf(InputValue \ 1000000 = 1, " ", "en ") & CurStr(InputValue - ((InputValue _
\ 1000000) * 1000000))
        Case Else
            CurStr = CurStr(InputValue - ((InputValue \ 10) * 10)) & "und" & _
CurStr(((InputValue \ 10) * 10))
    End Select
    CurStr = LTrim(Trim(CurStr) & Dec)


End Function




Gruss
Köbi

Antwort 2 von jimmy81

Danke für die Info.

Aber wo soll ich diesen Quelltext den einfügen?

Im Textfeld etwa ?

mfg
Jimmy

Antwort 3 von Koebi

Hallo Jimmy

Kopiere die Funktion in ein neues Modul (das Modul darf dann nicht den gleichen Namen haben wie die Funktion).

Im Formular brauchst Du für die Darstellung der Zahl in Worten ein zusätzliches Textfeld, mit folgendem Steuerelementinhalt:

=CurStr([InputValue])

Wobei InputValue das entsprechende Zahlenfeld darstellt.

Wenn Du auch das Runden und die Nullerdarstellung der Funktion verwenden willst, lautet der Steuerelementinhalt:

=CurStr([InputValue];[Round];[Nulls])

Dafür müssen dann natürlich auch die entsprechenden Felder Round und Nulls vorhanden sein.

Wenn Du nicht klar kommst, kann ich Dir eine Beispiel-DB senden, bräuchte dann aber dazu Deine Mehl-Adresse und Angaben zur Access-Version.

Gruss
Köbi

Antwort 4 von jimmy81

Hi Köbi

danke für deine schnelle Hilfe, ich würde mich gerne über eine Bsp.-DB freuen. Habe Access 2003.
E-mail: jimmyjames@web.de

Vielen Dank im Voraus

mfg
Jimmy

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: