Hallo,
ich möchte gern eine Funktion schreiben, welche StringWerte nach bestimmten Wörtern durchsucht und dann in Abhängigkeit einen Kategoriewert liefert. Ich hab mir das folgendermaßen vorgestellt:
public function Kategorie (Buchungstext as string) as string
select case Buchungstext
case is="*umb*"
Kategorie="Umbuchung"
case else
Kategorie="nicht definiert"
end select
end function
Nun kann es ja sein, dass dort im Feld "Buchungstext" das Wort "umb" oder "umb." oder "umbuchung" oder Ähnliches steht. Mit Hilfe der Sternchen wollte ich, dass die Funktion den kompletten String durchsucht und dann trotz unterschiedlicher Schreibweisen den Wert zurückliefert. Haut aber nicht hin. Access gibt lediglich "nicht definiert" zurück.
Über Hilfe wäre ich sehr dankbar.
Platzhalter (*) sollte man in Verbindung mit Like einsetzen (Prüfung auf Gleichheit ist da etwas anderes), sowohl in VBA als auch in SQL, bzw. man setzt konsequent reguläre Ausdrücke (http://www.ms-office-forum.net/forum/showthread.php?t=256917) ein. Diese Like-/Platzhalter-Lösungen sind ja ehrlicherweise Teilmengen von regulären Ausdrücken.
MfGA
ebs
Ok... Und wie soll ich es formulieren, dass es funktioniert?
Code ist die Umsetzung von konkret formulierten Regeln und Abläufen.
ZitatFunktion ... welche StringWerte nach bestimmten Wörtern durchsucht und dann in Abhängigkeit einen Kategoriewert liefert
Das ist dann nicht konkret.
MfGA
ebs
Doch bei
case like "*umb*"
Kommt eine Fehlermeldung.
ZitatKommt eine Fehlermeldung.
Das nennt man dann informativ, konkret, umfassend?
Da ich meine Kindergartenstunden für dieses Jahr schon absolviert habe, verbleibe ich mit der Empfehlung: Lesen, Verstehen, passend Reagieren.
MfGA
ebs
Letzendlich will ich nur dobald das Wort Umb. Oder Umb in der Spalte auftaucht die Funktion den Wert Umbuchung liefert.
If Instr(1, "tralala", "umb") > 0 Then ...
Dabei wird "umb" aber nicht als Wort gewertet, sondern als Zeichenkette, die irgendwo im String vorkommen kann.
Ein Wort würde außerdem begrenzt durch Stringanfang oder -ende, Leerzeichen, Komma, Punkt o.ä.
MfGA
ebs