MS-Office-Forum

MS-Office-Forum (https://www.ms-office-forum.net/forum/index.php)
-   MOF-FAQ - Formulare (https://www.ms-office-forum.net/forum/forumdisplay.php?f=142)
-   -   Plausibilitätskontrollen: Wie kann ich Prozentzahlen eingeben (https://www.ms-office-forum.net/forum/showthread.php?t=40946)

Manuela Kulpa 31.12.2002 12:48

Plausibilitätskontrollen: Wie kann ich Prozentzahlen eingeben?
 
Das Ausgabeformat: Prozentzahl wird sehr häufig falsch angezeigt, da die Benutzung des %-Zeichens bei der Eingabe häufig vergessen wird bzw. zu umständlich ist. Manche geben Prozentzahlen gewohnheitsmäßig als Dezimalzahl ein (z.B. 0,16 für 16%), andere wiederum lieber als ganze Zahl (hier also nur 16). Egal wie du das Feld formatierst, irgendjemand schafft es immer, es falsch einzugeben.

Wie kannst du es umgehen:
  • Erstelle in deinem Formular ein Textfeld und benenne das Feld z.B. in txtProzentfeld um.
  • Stelle als Ausgabeformat Prozentzahl ein (Textfeldeigenschaft – Register Format)
  • Öffne ein bestehendes Modul oder erstell ein neues Modul und füge folgende Funktion ein:
Code:

Public Function CheckProzent(vWert As Variant) As Single
  Dim sngWert As Single
 
  ' Wurde was übergeben
  If Not IsNull(vWert) Then
    ' ist der Wert ganzzahlig?
    If vWert > 1 Then
      ' teile ihn durch 100
      sngWert = vWert / 100
    Else
      ' ansonsten, belass den Wert so wie er ist
      sngWert = vWert
    End If
  End If
 
  ' Übergabe Überprüfung
  CheckProzent = sngWert
 
End Function

  • Erstell anschließend für dein Textfeld folgende Ereignisprozedur (Textfeldeigenschaft – Register Ereignis – Nach Aktualisieren – dort auf die Aufbauenschaltfläche […]Code-Generator):
Code:

Private Sub txtProzentfeld_AfterUpdate()
 
  Me!txtProzentfeld = CheckProzent(Me!txtProzentfeld)
 
End Sub

  • Überprüfe es, indem du beide Varianten z.B. Eingabe 16 bzw. 0,16 ausprobierst.
Das war's schon! Weitere Informationen findest du in der allgemeinen Onlinehilfe: Stichwort Programmieren in Access – Ereignisse bzw. Grundlegende Programmierkonzepte. Denk bitte auch immer an die [F1]-Taste (Wort markieren, F1-Taste betätigen), falls du nähere Informationen zu den im Code verwendeten Befehlen benötigst!

0din 12.04.2006 19:10

und was passiert wenn man z.B. 16,1 % eingebe... dann teilt er auch durch 100 oder? oder wenn ich tatsächlich nur 0,98 % von etwas ausrechnen will?

swati 06.05.2008 17:41

Hallo Manuela!

Super Code!. Aber wenn mann/Frau 1 eingibt wird 100% angezeigt, also musst Du statt
Code:

' ist der Wert ganzzahlig?
    If vWert > 1 Then

einfach
Code:

ist der Wert ganzzahlig?
    If vWert > =1 Then

' einfügen, dann klappt es!

michaellowry 08.06.2018 12:13

Re:
 
No matter how you format the field, somebody always manages to enter it incorrectly.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:26 Uhr.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.