Access 2016 Grundkurs

Namen zerlegen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Auch mit Texten lassen sich Werte "berechnen", wie in diesem Video anhand der Zerlegung eines kompletten Namens in Vor- und Nachnamen gezeigt wird.

Transkript

Anhand dieser Testtabelle lässt sich auch sehr schön zeigen, dass Access nicht nur mit Zahlen oder Datumswerten, die ja spezielle Zahlen sind, rechnen kann, sondern auch mit Texten. Ich nenne das weiterhin rechnen, auch wenn es um Texte geht. Ich möchte diese Texte nämlich hier zerlegen in Vor- und Nachname. Dazu schließe diese Testtabelle und erstelle wie immer eine neue Abfrage, die darauf basiert und dieses Testname erstmal anzeigt. Und ich möchte an dieser Stelle erstmal den Vornamen anzeigen. Dazu kann ich mit Steuerung F2 den Ausdrucksgenerator öffnen und hier die Formel schreiben. Zuerst mal muss ich einen neuen Feldnamen schreiben also Vorname Doppelpunkt. Jetzt brauche ich eine Funktion, die mir von der gesamten Zeichenkette die linken Zeichen zurück gibt und wenn ich nicht weiß, wie die heißt, guck ich mal hier bei den integrierten Funktionen nach und zwar insbesondere bei den Textfunktionen und wie es der Zufall will, heißt die Funktion auch "links". Die Unterschiede mit und ohne Dollarzeichen können Sie völlig ignorieren, das sind historische Gründe. In der Basic-Anfangszeit waren Funktionen mit dem Rückgabe-Datentyp String immer mit einem Dollarzeichen versehen. Also mit einem Doppelklick nehme ich die "Links"-Funktion. Dieser Ausdruck hier ist fehlerhaft, der kann weg und die Zeichenfolge die ich untersuchen will, ein Klick hier und entfernen, die kommt aus diesem Feld hier, also ich kann anfangen zu schreiben, wenn es jetzt den Feldnamen nicht anzeigt, dann müsste ich eigentlich davor tblTest schreiben, aber das ist hier schneller geschrieben, also testen Name, der Feldname, der untersucht werden soll und hier gebe ich die Länge vor, ich sag mal einfach 6. Lorenz hat 6 Zeichen, dann wird das wenigstens funktionieren. Und nach dem okay und hier dem Syntax Check mit Return kann ich das ganze mal ansehen. Das sieht schon ganz ordentlich aus. Sie sehen, aus der Zeichenkette werden die ersten 6 Zeichen raus geholt und für die meisten klappt das ganz ordentlich, wobei hier auch ein Leerzeichen drin steckt, was man so erstmal nicht bemerkt, aber das sieht leidlich aus, es ist nicht perfekt, denn tatsächlich ist ja die Länge des Vornamens sehr unterschiedlich. Also muss ich erstmal raus bekommen, wo der Vorname eigentlich liegt, das heißt ich werde mich hier ein neues Feld dazwischenschieben. Ich mach das jetzt mal mit Schift-F2, da ist es ein klein bisschen größer zu sehen und ich werde diese Variable, hätte ich jetzt beinahe gesagt, also diesen neuen Feldnamen, aber es verhält sich letzten Endes wie eine Variable, einfach WoLeer nennen. Soll bedeuten: Wo ist denn eigentlich das Leerzeichen, ich kriege gleich eine Position zurück. Und zwar von einer Funktion, die heißt InString. In einem String etwas suchen, trotzdem schreibt sie sich so kurz InStr Klammer auf, die will zuerst wissen, wo soll ich suchen, das ist wie eben auch test_Name, der Feldname, der kriegt nachher seine eckigen Klammern, die müssen sie aber nicht selber setzen, das merkt der Syntax Check. Als zweites, wie sie wissen, was suche ich denn da drin, Parameter werden ja durch Semikolon getrennt. Ich suche ein Leerzeichen, das muss ich natürlich in Gänsefüßchen packen. Und damit bin ich schon fertig, Klammer zu. Und ich bekomme eine Zahl zurück, das werden sie gleich sehen, nach dem okay. Ich werde das ganze einfach vorsichtshalber schonmal speichern als qryTestNamenZerlegen. Und das Ausführen und dann sehen sie, hier steht eine 7, der Vorname Lorenz ist 6 Zeichen lang, damit steht das Leerzeichen an Position 7. Theo ist 4 Zeichen lang, das Leerzeichen steht also an Position 5. Damit habe ich die Lösung für diese Version hier, anstatt fest die 6 einzugeben, weiß ich jetzt, das Leerzeichen steht an der Position wo leer und bis einen weniger will ich haben. Und sie können in Access und Abfragen mit allen Feldern rechnen, die von hieraus gesehen links oder oberhalb stehen und dieses Feld WoLeer ist also hier schon berechnet worden es steht links davon, deswegen muss sich dazwischen schieben und da steht ne Zahl drin, von der ich jetzt einen abziehen. Wenn ich also WoLeer an siebter Position habe, dann will ich die 6 Zeichen davon sehen. Damit haben wir schon mal die Vornamen, sie sehen jetzt abgesehen, davon, dass hier beim Götz von Berlichingen der Freiherr für einen Vornamen gehalten wird, das erste Wort erkläre ich hiermit zum Vornamen. Jetzt bräuchte ich noch den Nachnamen. Also das können wir ähnlich handhaben. Hier, ich mach das wieder mit Umschalt-F2 in der Vergrößerung, hier haben wir ein neues Feld Nachname. Und ich behaupte jetzt einfach mal, was nicht Vorname ist, muss Nachname sein. Und ich werde jetzt nicht als Gegenstück zur Links-Funktion die Rechts-Funktion nehmen, denn die rechnet von hinten, von rechts. Was ich brauche, ist eine Funktion, die ab der Mitte weiter rechnet und die heißt entsprechend Teil, Runde Klammer auf, dann will die als erstes wieder wissen, welcher Feldname, also test, Unterstrich, Name, Semikolon und jetzt nicht wie viele Reststückchen ich haben will, sondern ab wo geht es denn los. Also hinter dem Leerzeichen damit frage ich wieder meinen Feldnamen, WoLeer, wenn der an siebter Position steht, möchte ich jetzt +1 dahinter weiter machen. Und eigentlich kann die Teilfunktion noch ein drittes Argument: Wie viele Buchstaben möchte ich ab da sehen. Wenn sie dieses Argument nicht bedienen, sondern direkt die Klammer einfach zu machen, dann kriegen sie den gesamten Rest. Die eckigen Klammern um diese beiden Feldnamen werden automatisch gesetzt. Das können wir hier ein bisschen verbreitern. Jeweils mit Doppelklick an dieser Trendlinie und vorsichtshalber speichern, dann sehen sie jetzt an dieser Stelle, für typische Vor- und Nachnamen funktioniert das wunderbar. Und zwar sogar live, also wenn ich jetzt einen neuen erfinde. Und mit Tab weiter gehe, sobald dieser Datensatz existiert sozusagen, aber noch nicht mal gespeichert ist, wie sie hier sehen, kann ich sofort getrennt sehen, welche Wörter Vor- und Nachnamen bilden. Für normale Namen funktioniert das wunderbar. Ich habe jetzt boshaft hier noch ein paar besondere Namen aufgenommen, die entweder mehrere Vornamen haben oder so ein pseudoadliges von davor, in Wirklichkeit ist das nämlich ein Künstlername, den er aus seinem vorherigen Adel übernommen hat, hier vielleicht nochmal ein Titel, unten Doktor, unten Diplomingenieur und Professor und sowas, das würde irren Aufwand machen, das kriegt man mit so einfachen Techniken nicht hin, sie müssten im Prinzip ne Worterkennung machen. Der Freiherr muss nicht mal vorne stehen: Es gibt auch die Variante Götz Freiherr von Berlichingen, also diese besonderen Namen, die kriegen sie damit nicht zerlegt, aber ganz ehrlich, das ist so eine Größenordnung unter 1000 Namen haben sie wahrscheinlich 10, die diesem Schema nicht entsprechen, die Normalform so einer Namenszerlegung, und darum ging es jetzt eigentlich auch nur, zu zeigen, wie so was berechnet wird, die funktioniert damit wunderbar. Und da gibt es eben auch für Texte die Möglichkeit, das anhand von Funktionen zu berechnen.

Access 2016 Grundkurs

Erwerben Sie die notwendigen Kenntnisse, um mit Access 2016 leistungsfähige Datenbanken zu erstellen.

6 Std. 18 min (75 Videos)
Derzeit sind keine Feedbacks vorhanden...

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!