Beitrag aus SmartTools Access Weekly
Zeichenketten komfortabel aufteilen
Access 365 2024 2021 2019 2016 2013 2010
FRAGE Wie kann ich in Access möglichst einfach eine Zeichenkette auf mehrere Tabellenfelder verteilen. Konkretget es darum, eingelesene EAN-Codes nach dem Erfassen in Ihre einzelnen Bestandteile zu zerlegen und in einer separaten Tabelle zu speichern. Für die Erfassung ist es notwendig die VDZ-Nummer zu separieren, um einen konkreten Titel zuordnen zu können. Der Preis und die Ausgabenummer sollten ebenfalls in einem eigenen Datenfeld stehen. Aus 419056870170204
soll eine Aufteilung nach dem folgenden Muster ergeben.
Presse | D | MwSt | VDZ | Preis | Prüfziffer | Folge |
---|---|---|---|---|---|---|
41 | 9 | 0 | 5687 | 0170 | 20 | 4 |
ANTWORT Sie können Auszüge aus einer Zeichenkette generieren, indem Sie die Funktion "Left$()", "Right$()" oder "Mid$()" zum Beispiel in der Ereignisprozedur "Nach Aktualisierung" des Feldes für den EAN-Code wie folgt verwenden:
Dim strPresse As String
Dim strVDZ As String
Dim strPreis as String
Dim strAusgabe As String
Dim curPreis As Currency
strPresse = Left$(Me.EANCode, 2)
strVDZ = Mid$(Me.EANCode, 5, 4)
strPreis = Mid$(Me.EANCode, 9, 4)
strAusgabe = Right$(Me.EANCode, 1)
Diese Anweisungen lesen aus dem Feld "EANCode" zum Beispiel per "Left$(Quelle, 2)" zwei Zeichen für die Angabe "Presse" oder per "Mid$(Quelle, 9, 4)" vier Zeichen ab der neunten Position für die Angabe "Preis" aus. Ergebnisse wie "Preis" müssen ggf. noch umgerechnet werden:
curPreis = CCur(Left$(strPreis, 2) & _
"," & _
Right$(strPreis, 2))
Hier ermitteln wir mit "Left$()" und "Right$()" die ersten bzw. letzten zwei Zeichen, setzen ein Komma dazwischen und wandeln das Ganze per "CCur()" in ein Ergebnis vom Datentyp "Währung" um.
Anschließend können die einzelnen Ergebnisse separaten Feldern zum Beispiel wie folgt zugewiesen werden:
Me.Presse= strPresse
Me.VDZNr = strVDZ
Me.Preis = curPreis
Me.Ausgabe = strAusgabe
Damit werden die Inhalte der Variablen in die betreffenden Felder des Formulars übertragen und mit dem Datensatz gespeichert.