Access vba: Fortschreibende Vorgabewerte erstellen
Aufgabe:
in einem Eingabefeld sollen die Vorgabewerte für neue
Zeilen automatisch einem Zähler oder einer fortlaufenden Nummerierung
entsprechen
Lösung:
In Vba ermittelt man den eingegebenen Wert. Hiervon
berechnet man ob es einen Trennpunkt gibt und erhöht anschliessend den rechten
Teil ab der Trennung durch erhöhung der ASCII – Nummern.
Fortschreibung einer Nummererierung mittels Ascii
'*.a or .1
Next_Letter = Chr(Asc(sExt) + 1)
|
Lösungs-Code
in vba Visual Basic for Applcations.
Eingesetzt in Microsoft Access alle Versionen
Private Sub
ctlPosition_AfterUpdate()
'--------<
ctlPosition_AfterUpdate() >--------
'< check input >
Dim sInput As String
sInput = Nz(ctlPosition.Value, "")
Dim posPoint As Integer
posPoint = InStr(1, sInput, ".")
'</ check input >
If posPoint
> 0 Then
'----<
Has .Point >----
Dim sExt As String
sExt = Mid(sInput, posPoint + 1)
If Len(sExt)
= 1 Then
'--<
Single Extension >--
'*.a or .1
sExt = Chr(Asc(sExt) + 1)
Dim sFront As String
sFront = Mid(sInput, 1, posPoint)
'< set
Default >
ctlPosition.DefaultValue = "'" &
sFront & sExt & "'"
'</ set
Default >
'--</
Single Extension >--
End If
'----</
Has .Point >----
Else
'----<
Numeric >----
If
IsNumeric(ctlPosition) Then
'-<
IsNumeric >-
Dim sNext As Integer
sNext = CLng(ctlPosition)
+ 1
'< set
Default >
ctlPosition.DefaultValue = "'" &
sNext & "'"
'</ set
Default >
'-</
IsNumeric >-
End If
'----<
Numeric >----
End If
'--------</ ctlPosition_AfterUpdate() >--------
End Sub
|
Einfach in den AfterUpdate Event einsetzten.