DatenbankManufaktur

Anwendungen so individuell wie Ihr Unternehmen   –   Office- und VBA-Erfahrung seit 1995

%-Eingabe in Währungsfeld

Ein Kunde erfasst in einem Datenbankformular Honorare und deren Nebenkosten. Diese Nebenkosten werden teilweise in absoluten Beträgen abgerechnet, teilweise als Prozentsatz vom Honorar. Damit der Benutzer im zweiten Fall nicht jedesmal zum Taschenrechner greifen muss, habe ich ihm eine "Fehleingabe" ermöglicht, nämlich die Eingabe von Prozentzahlen im Währungsfeld für die Nebenkosten.

Während der Eingabe wird auf das Prozentzeichen gewartet. Wird dieses eingegeben, wird der prozentuale Betrag vom Honorar berechnet und stattdessen eingesetzt:

Code-Schnipsel

Private Sub txtNebenkosten_Change()
'------------------------------------------------------------------------
' Prozent eingeben und Betrag ausrechnen
'------------------------------------------------------------------------
   On Error Resume Next
   If InStr(1, Me!txtNebenkosten.Text, "%") Then
      Me!txtNebenkosten.Text = Me!txtHonorar / 100 _
                               * Replace(Me!txtNebenkosten.Text, "%", "")
   End If
End Sub

Das Übergehen der Fehler sorgt dafür, dass alle anderen Fehleingaben nicht in dieser Prozedur sondern weiterhin im BeforeUpdate-Ereignis oder von der Datenbank selber ("Sie haben einen Wert eingegeben, der für dieses Feld nicht gültig ist") abgefangen werden.

Beim Berechnen werden Leerzeichen zwischen Zahl und %-Zeichen großzügerweise ignoriert (ich spare mir den Trim-Befehl), aber auch 1000er-Trennzeichen. D. h.: Bei der Eingabe von 7.5 % werden diese als 75 erkannt und gerechnet (bei deutschem Zahlenformat).