Beitrag aus SmartTools Access Weekly
Anzahl der Sätze in einem Memofeld ermitteln
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Die Anwender unserer Access-Datenbank erfassen unter anderem Produktinfos in Memofeldern. Hier müssen wir allerdings aus technischen Gründen die Textmenge begrenzen. Diese Texte sollen in keinem Fall mehr als fünf Sätze umfassen. Wie können wir zum Beispiel in der Ereignisprozedur "Vor Aktualisierung" ermitteln, wie viele Sätze in einem Memofeld vorhanden sind und den Anwender ggf. zum Kürzen auffordern?
Diverse Anfragen
ANTWORT Dazu verwenden Sie folgende Anweisungen:
Dim strText As String
Dim tmp As Variant
strText = Me.Memofeld & " "
tmp = Split(strText, ". ")
If UBound(tmp) > 4 Then
MsgBox "Mehr als 5 Sätze!"
Cancel = True
End If
Zunächst wird der Inhalt des Memofeldes zuzüglich eines Leerzeichens in eine Variable übertragen. "Split" zerlegt den Text anhand der Trennzeichen ". ", die üblicherweise das Ende eines Satzes bilden, in ein 0-basiertes Array "tmp", das anschließend die einzelnen Sätze in seinen Elementen enthält. "UBound(tmp)" gibt dann Auskunft darüber, wie viele Elemente vorhanden sind, so dass abhängig davon zum Beispiel "Cancel = True" gesetzt und so die Speicherung abgebrochen werden kann.