Platzhalterauswahl per Kontextmenü

Manche Lösung scheint auf den ersten Blick kein besonders großes Einsatzgebiet zu haben, aber wenn man erst einmal darüber nachdenkt … Ein Beispiel dafür ist das Einfügen von Platzhaltern in Textfelder, wobei die Platzhalter den Feldnamen der Tabelle entsprechen, aus denen sie stammen. Ursprünglich wurde die Technik für ein eBay-Tool entwickelt, wobei der als Titel anzuzeigende Text aus Tabellenfeldern wie Artikelbezeichnung, Farbe, Größe und so weiter zusammengesetzt wurde.

Beim Einstellen von Artikeln las das Tool dann die benötigten Informationen aus der Tabelle aus und fügte sie zum Artikeltitel zusammen. Das hätte man aber auch über ein Feld einer einfachen Abfrage erledigen können, oder Stimmt: Aber erstens sollte der Titeltext flexibel einstellbar sein, um eine möglichst zugkräftige Beschreibung zu liefern und zweitens sollte das Tool von Mitarbeitern bedient werden, die anderes zu tun haben, als sich mit Access-Abfragen herumzuschlagen.

Nun ist es einfach, eine Routine zu schreiben, die beim Abarbeiten eines Datensatzes einen Ausdruck wie den folgenden mit den Inhalten der entsprechenden Felder eines Datensatzes füllt:

[Artikelnummer] [Bezeichnung] [Farbe] [Hersteller] [Groesse]

Der Clou ist es, dem Benutzer eine einfache Möglichkeit an die Hand zu geben, die in eckigen Klammern stehenden Platzhalter zum gewünschten Ausdruck zusammenzustellen, ohne dass er jeden einzelnen Feldnamen der zugrunde liegenden Tabelle kennen muss.

Beschreibung der Technik

Wir müssen dem Benutzer also irgendwie Zugriff auf die Feldnamen der Tabelle verschaffen und ihm erlauben, diese möglichst einfach in das Zieltextfeld einzutragen. Dazu gibt es mehrere Möglichkeiten: So könnte man etwa eine Liste mit allen verfügbaren Feldern in das Formular integrieren, welches auch das Zielfeld enthält, oder man erstellt ein eigenes Popup-Formular, das nur dem Zuweisen der Platzhalter dient. Am einfachsten ist es jedoch, wenn Sie einfach ein Kontextmenü erstellen, das der Benutzer per Rechtsklick auf das Zielfeld öffnet und aus dem er die gewünschten Platzhalter auswählen kann. Der Platzhalter wird dann genau an der Position der Einfügemarke hinzugefügt. Sollte gerade ein Bereich des Zielfeldes markiert sein, soll dieser einfach durch den Platzhalter überschrieben werden. Auf diese Weise kann der Benutzer Platzhalter für Platzhalter hinzufügen.

Weitere Einsatzmöglichkeiten

Damit auch Leser etwas von dieser Lösung profitieren, die diese nicht gerade zum Zusammensetzen der Titeltexte von eBay-Versteigerungen benötigen, hier noch einige Anregungen für weitere Anwendungsfälle:

  • Textbausteine für Briefe: Möglicherweise erstellen Sie Serienbriefe in Form von Access-Berichten. Damit Sie Betreff, Anrede und Fließtext flexibel gestalten können, tragen Sie die Platzhalter einfach per Kontextmenü in die entsprechenden Felder ein und ersetzen diese zur Laufzeit.
  • Serienmails: Das gleiche Verfahren lässt sich natürlich auch für Serienmails anwenden.
  • Rechnungen: Wenn Sie eine Artikeltabelle mit vielen Detailinformationen zu den jeweiligen Artikeln pflegen, möchten Sie diese Informationen vielleicht mal mehr und mal weniger detailliert in die Rechnungspositionen eintragen.
  • Generell können Sie dem Benutzer so die Möglichkeit geben, Ausdrücke für die Ausgabe in Berichten statt über die Erstellung einer Abfrage mithilfe von Platzhaltern zusammenzustellen.

Beispiel

Zu Beispielzwecken hält wieder einmal die Südsturm-Datenbank her, unsere optimierte Version der Nordwind-Datenbank. Dabei soll der Benutzer beliebige Felder aus der Artikeltabelle zum Positionstext in einer Bestellung zusammensetzen können. Vergessen Sie den Hintergrund nicht: Wir möchten dem Benutzer die Möglichkeit geben, Inhalt etwa von Berichten flexibel aus der Datenherkunft zusammenzusetzen, ohne dass er sich selbst mit Abfragen und weiteren Access-Spezialitäten auseinandersetzen muss.

Das Beispielformular enthält im Wesentlichen ein Textfeld namens txtPositionstext, das der Zusammenstellung der Platzhalter für den Positionstext eines Artikels dient. Für Beispielzwecke ist das Formular an die Abfrage qryArtikelPlatzhalter gebunden und zeigt all seine Felder an – so lässt sich leicht prüfen, ob die Platzhalter wie gewünscht gefüllt werden.

Doch eins nach dem anderen: Zunächst einmal brauchen Sie eine Abfrage, die alle infrage kommenden Felder liefert. Diese heißt in unserem Beispiel qryArtikelPlatzhalter und sieht wie in Abb. 1 aus. Diese Beispielabfrage zeigt gleich einen praktischen Nutzen: Wenn der Benutzer selbst eine Abfrage für das Zusammenstellen des Positionstextes erstellen müsste, käme er noch nicht einmal mit einer einfachen Abfrage über eine Tabelle aus, sondern müsste die Bezeichnung der Kategorie und des Lieferanten aus weiteren verknüpften Tabellen hinzufügen – dies erledigen wir an dieser Stelle für den Benutzer.

pic001.png

Abb. 1: Diese Abfrage dient als Datenherkunft für die Auswahl der Platzhalter.

Kontextmenü, selbst gebaut

Wenn der Benutzer nun mit der rechten Maustaste auf das Textfeld txtPositionstext klickt, soll ein Kontextmenü erscheinen, das alle Feldnamen der Abfrage qryArtikelPlatzhalter enthält. Zur Verdeutlichung, dass es sich dabei um Platzhalter handelt, klammern wir die Einträge des Kontextmenüs außerdem in eckige Klammern ein, sodass sich etwa das Bild aus Abb. 2 ergibt.

pic002.png

Abb. 2: So soll das Kontextmenü zum Einfügen der Platzhalter aussehen.

Sie haben das Ende des frei verfügbaren Textes erreicht. Möchten Sie ...

Workplace

Jahresabonnement TestzugangOder haben Sie bereits Zugangsdaten? Dann loggen Sie sich gleich hier ein:

Schreibe einen Kommentar