Kombinationsfelder von A-Z

Lies diesen Artikel und viele weitere mit einem kostenlosen, einwöchigen Testzugang.

Autor: André Minhorst, Duisburg

Kombinationsfelder sind ein sehr wichtiges Instrument zur Auswahl von Daten. Mit Kombinationsfeldern können Sie Daten aus bestehenden Tabellen und Abfragen auswählen. Sie können aber auch neue Datensatzherkünfte festlegen sowie statische Wertlisten oder Feldlisten als Inhalt des Kombinationsfeldes verwenden. Im vorliegenden Beitrag erfahren Sie, welche Möglichkeiten Kombinationsfelder bieten und wie Sie diese an Ihre Bedürfnisse anpassen.

Die Beispiele des folgenden Beitrags verwenden verschiedene Tabellen der Datenbank Nordwind als Grundlage. Sie finden alle Beispiele in der Beispieldatenbank Kombinationsfelder97.mdb bzw. Kombinationsfelder2000.mdb auf der Heft-CD.

Oftmals dienen Kombinationsfelder der Auswahl von Datensätzen einer Tabelle, die in einer 1:n-Beziehung zu der angezeigten Tabelle stehen. Ein gutes Beispiel ist die Tabelle Artikel, die gleich zwei solcher Verknüpfungen zu anderen Tabellen aufweist: erstens zu der Tabelle Lieferanten und zweitens zu der Tabelle Kategorien (siehe Bild 1).

Bild 1: Ein typischer Einsatzfall für Kombinationsfelder zur Auswahl von Datensätzen verknüpfter Tabellen

Anlegen eines Beispielformulars

Um die Beziehung zu den verknüpften Tabellen im Formular anzuzeigen und dem Benutzer die komfortable Auswahl der gewünschten Datensätze zu ermöglichen, legen Sie zunächst ein neues Formular an und speichern es unter dem Namen frmArtikel.

Beim Erstellen können Sie direkt die Tabelle Artikel als Datenherkunft des Formulars auswählen.

Im Entwurf ziehen Sie dann einfach alle Felder aus der Feldliste in den Detailbereich des Formulars. Anschließend wechseln Sie in die Formularansicht und finden direkt zwei fertige Kombinationsfelder zur Auswahl von Lieferanten und Kategorien vor (siehe Bild 2).

Berechtigterweise werden Sie nun die Frage in den Raum stellen, warum Sie eigentlich den vorliegenden Beitrag lesen sollen. Allem Anschein nach scheint Access die Kombinationsfelder ja wohl intuitiv richtig zu erstellen.

Das ist aber leider nur Wunschdenken, denn sämtliche Einstellungen, die zum automatischen Anlegen der Kombinationsfelder führten, sind bereits im Tabellenentwurf enthalten.

Bild 2: Das neue Formular nach dem Anlegen der Felder

Bild 3: Die Grundlage für das Anlegen eines Kombinationsfeldes findet sich im Tabellenentwurf.

öffnen Sie einmal die Tabelle Artikel in der Entwurfsansicht, aktivieren Sie eines der Felder Lieferanten-Nr oder Kategorie-Nr und wechseln Sie unter Feldeigenschaften in das Register Nachschlagen (siehe Bild 3).

Hier sind einige Eigenschaften aufgeführt, die sowohl das Aussehen eines Nachschlagefeldes einer Tabelle als auch das Aussehen des entsprechenden Kombinationsfeldes im Formular festlegen.

Wenn Sie in die Entwurfsansicht des neuen Formulars wechseln und die Eigenschaften eines der beiden Kombinationsfelder anzeigen, finden Sie die entsprechenden Eigenschaften in den beiden Registern Format und Daten.

Gebundenes Kombinationsfeldvon Hand erstellen

Um die Bedeutung aller benötigten Eigenschaften zu vermitteln, löschen Sie nun das Kombinationsfeld mit dem Namen Kategorie-Nr und legen es von Hand neu an.

Bild 4: Anlegen eines neuen Kombinationsfeldes

Dazu klicken Sie in der Toolbox auf die entsprechende Schaltfläche (siehe Bild 4) und klicken anschließend im Formular auf die Stelle, an der sich der linke, obere Punkt des Kombinationsfeldes befinden soll. Sie können auch einen Rahmen in der gewünschten Größe des Kombinationsfeldes aufziehen.

Bitte schalten Sie vorher den Assistenten zur Erstellung von Kombinationsfeldern ab, indem Sie die Schaltfläche mit dem Zauberstab deaktivieren.

ändern Sie den Namen des Kombinationsfeldes auf cmbKategorien ab und passen Sie das Bezeichnungsfeld an.

Einstellen der wichtigstenEigenschaften desKombinationsfeldes

Anschließend widmen Sie sich den wichtigsten Eigenschaften des Kombinationsfeldes. Beginnen Sie damit im Register Daten des Eigenschaftsfensters.

Steuerelementeninhalt

Die Eigenschaft Steuerelementeninhalt bleibt allerdings leer, wenn es sich um ein ungebundenes Steuerelement handelt. Im hier nun vorliegenden Fall soll es aber angeben, mit welchem Eintrag der Tabelle Kategorien der aktuell im Formular angezeigte Datensatz der Tabelle Artikel verknüpft ist.

Bei verknüpften Tabellen ist das in der Regel ein Zahlenwert, der dem Primärindex der Tabelle entspricht, aus der die Daten ausgewählt werden. Konkret handelt es sich hier um das Feld Kategorie-Nr der Datenherkunft des Formulars. Wenn das Formular eine Datenherkunft hat, können Sie das gewünschte Feld aus einer Liste auswählen.

Herkunftstyp und Datensatzherkunft

Diese beiden Eigenschaften stehen in engem Zusammenhang und sollen daher in einem Schritt erläutert werden.

Die Eigenschaft Herkunftstyp gibt an, ob es sich bei den Daten, die mit dem Kombinationsfeld ausgewählt werden können, um eine Tabelle bzw. Abfrage, eine Feldliste oder eine Wertliste handelt.

Im vorliegenden Fall handelt es sich um den voreingestellten Eintrag Tabelle/Abfrage, da die Werte aus der Tabelle Kategorien ausgewählt werden sollen.

Die anderen Werte, Wertliste und Feldliste, sowie ein weitere Alternative werden später erläutert. Die Eigenschaft Datensatzherkunft gibt an, aus welcher Tabelle oder Abfrage die angezeigten Daten stammen sollen. Sie können hier eine bestehende Tabelle oder Abfrage auswählen oder eine neue Abfrage speziell für das Kombinationsfeld erstellen. Wählen Sie hier die Tabelle Kategorien als Wert der Eigenschaft Datensatzherkunft aus.

Gebundene Spalte

Wenn Sie einen Wert aus einer verknüpften Tabelle auswählen, wird selbstverständlich nicht der gesamte ausgewählte Datensatz in dem an das Kombinationsfeld gebundene Feld der Tabelle gespeichert, sondern nur ein Verweis auf den entsprechenden Datensatz. In der Regel ist das der Primärindex der Datensatzherkunft des Kombinationsfeldes.

Die Eigenschaft Gebundene Spalte gibt dabei an, aus welcher Spalte der Datensatzherkunft der einzutragende Wert stammt. Voreingestellt und in den meisten Fällen sinnvoll ist der Wert 1.

Nur Listeneinträge

Die Eigenschaft Nur Listeneinträge legt fest, ob als Inhalt des Kombinationsfeldes nur Einträge der zugrunde liegenden Datensatzherkunft verwendet werden können oder auch andere Einträge.

Im Falle gebundener Kombinationsfelder müssen Sie eine entsprechende Ereignisprozedur anlegen, falls ein Kombinationsfeld das Neuanlegen von Datensätzen in der Datensatzherkunft erlauben soll. Weiter hinten (Kapitel 3) finden Sie ein Beispiel für eine solche Ereignisprozedur.

Spaltenanzahl und Spaltenbreiten

Wenn Sie nun in das Register Format des Eigenschaftsfensters wechseln, finden Sie weitere für die Verwendung von Kombinationsfeldern wichtige Eigenschaften.

Diese Eigenschaften kommen dann zur Geltung, wenn die Datensatzherkunft mehr als ein Feld enthält und Sie genau festlegen möchten, welche Felder beim öffnen des Kombinationsfeldes wie angezeigt werden sollen.

Wenn Sie wie im Beispiel eine Tabelle als Datensatzherkunft verwenden, von der Sie nur ein Feld anzeigen möchten, können Sie das ganz einfach mit den beiden Eigenschaften Spaltenanzahl und Spaltenbreiten einstellen.

Hier setzen Sie beispielsweise Spaltenanzahl auf den Wert 2 und Spaltenbreite auf den Wert 0cm;4cm.

Damit zeigen Sie die ersten zwei Felder der Datensatzherkunft an. Die erste Spalte blenden Sie aus, indem Sie die erste Spaltenbreite auf den Wert 0cm setzen.

Im vorliegenden Fall können Sie den zweiten Wert auch weglassen. Da keine weiteren Spalten folgen, wird die letzte Spaltenbreite automatisch so eingestellt, dass sie die Summe der Spaltenbreiten auf die Listenbreite ergänzt.

Spaltenüberschriften

Wenn Sie mehrere Felder der Datensatzherkunft beim öffnen des Kombinationsfeldes anzeigen, empfiehlt sich das Einblenden der Spaltenüberschriften.

Listenbreite

Ein Kombinationsfeld kann bei der Auswahl mehr als ein Feld der Datensatzherkunft anzeigen. Nach der Auswahl ist jedoch nur die gleichzeitige Anzeige eines einzigen Feldes möglich.

Daher kann es vorkommen, dass die auszuwählenden Einträge mehr Platz benötigen, als es die eigentliche Breite des Kombinationsfeldes zulässt. Unter diesen Umständen können Sie die Eigenschaft Listenbreite auf einen größeren Wert als den der Eigenschaft Breite einstellen.

Auf diese Weise können Sie bei der Auswahl beispielsweise weitere Detailinformationen zu der jeweiligen Kategorie anzeigen. Das Beispiel aus Bild 5 beinhaltet außerdem aktivierte Zeilenüberschriften.

Bild 5: Kombinationsfeld mit Zeilenüberschriften und großer Listenbreite

Zeilenanzahl

Die Eigenschaft Zeilenanzahl bestimmt, wie viele Zeilen bei aufgeklapptem Kombinationsfeld gleichzeitig angezeigt werden. Oft ist hier eine feste Anzahl gefragt – z. B. wenn das Kombinationsfeld zur Auswahl von Monaten oder anderen Werten mit fest definierter und begrenzter Anzahl dient. Dabei wird die Anzahl durch den verfügbaren Platz zum Ausklappen eingeschränkt.

Weitere Eigenschaften

Das Eigenschaftsfenster beinhaltet noch einige weitere Eigenschaften, die sich jedoch auf die grundlegende Funktionalität des Kombinationsfeldes nicht auswirken. Einzige Ausnahme sind die Ereigniseigenschaften. Einige von ihnen werden Sie im Verlauf des Beitrags aber noch kennen lernen.

Mit Hilfe geeigneter VBA-Prozeduren können Sie die Möglichkeiten von Kombinationsfeldern noch erweitern und sie optimal auf die Bedürfnisse der Anwender anpassen. In den folgenden Abschnitten finden Sie einige Tricks und Kniffe, um die Kombinationsfelder Ihres Formulars zu optimieren.

Beispielformular vorbereiten

Zu Beispielzwecken erstellen Sie ein Formular namens frmArtikelSuche, mit dem Sie anhand einiger Kombinationsfelder nach bestimmten Artikeln suchen können.

Sie benötigen zwei Kombinationsfelder namens cmbLieferanten und cmbKategorien sowie ein Unterformular namens sfmArtikelSuche. Die beiden Kombinationsfelder dienen der Einschränkung der im Unterformular angezeigten Einträge.

Das Kombinationsfeld cmbLieferanten soll zur Auswahl aller verfügbaren Lieferanten dienen und erhält dementsprechend als Datenherkunft die Tabelle Lieferanten. Es soll nur den Lieferantennamen anzeigen – setzen Sie daher die Eigenschaft Spaltenanzahl auf den Wert 2 und die Eigenschaft Spaltenbreiten auf den Wert 0cm;4cm ein.

Das Unterformular sfmArtikelSuche importieren Sie aus der Beispieldatenbank. Es hat als Datenherkunft die Tabelle Artikel und als Standardansicht die Datenblatt-Ansicht.

Anschließend fügen Sie es als Unterformular in das Formular frmArtikelSuche ein. Es soll keine Verknüpfung zwischen Haupt- und Unterformular erstellt werden.

Weitere Informationen zum Einfügen eines Unterformulars in ein Hauptformular finden Sie im Beitrat Einbinden von Unterformularen in Hauptformulare des vorliegenden Heftes.

Erstellen Sie außerdem ein weiteres Kombinationsfeld namens cmbKategorien. Informationen über die weiteren Eigenschaften des Kombinationsfeldes erhalten Sie in den folgenden Kapiteln. Das Formular sollte nun etwa wie in Bild 6 aussehen.

In den folgenden Beispielen werden nicht alle Schritte detailliert beschrieben, sondern nur diejenigen, die sich direkt auf die Kombinationsfelder beziehen. Um weitere Informationen zu erhalten, schauen Sie sich das Formular frmArtikelSuche der Beispieldatenbanken genauer an.

Bild 6: Das Beispielformular frmArtikelSuche in der Entwurfsansicht

Kombinationsfeld automatischöffnen

Oftmals kann es praktisch sein, wenn ein Kombinationsfeld direkt beim Anzeigen des Formulars oder nach der Eingabe eines Wertes in ein anderes Steuerelement geöffnet wird. Eine weitere Möglichkeit ist das automatische öffnen des Kombinationsfeldes, sobald es den Fokus erhält.

Kombinationsfeld beim öffnen des Formulars aufklappen

Wenn Sie ein Kombinationsfeld direkt beim Anzeigen des Formulars öffnen möchten, verwenden Sie die Methode Dropdown des Kombinationsfeldes.

Ende des frei verfügbaren Teil. Wenn Du mehr lesen möchtest, hole Dir ...

Testzugang

eine Woche kostenlosen Zugriff auf diesen und mehr als 1.000 weitere Artikel

diesen und alle anderen Artikel mit dem Jahresabo

Schreibe einen Kommentar