Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Listenfeld als Formularfilter





Frage

Ich möchte gerne in einer Adressdatenbank ein Listenfeld als Filter einsetzten. Es soll so aussehen, daß man im Listenfeld den Kundennamen auswählen kann und dann sollen die Detaildaten eingeblendet werden. Kenne mich mit VB nicht so gut aus. Was muß ich tun, damit nur noch die Datensätze des Kunden angezeigt werden, den ich im Listenfeld ausgewählt habe? ?

Antwort 1 von Nanuk

Ich hoffe, ich drücke mich nicht zu kompliziert aus:

Ich habe das an einem einfachen Beispiel ausprobiert. Eine Datenbank mit einer Tabelle "Kundendaten" sowie einem Formular "Kundendaten".
Die Tabelle hat folgende Felder:
Kdnr (AutoWert, Primärschlüssel)
Name (Text)
Vorname (Text)
Firma (Text)

Das Formular habe ich vom Assistenten mit je einem Feld entsprechend der Tabelle erstellen lassen und zu einem Einzelblattformular umgestrickt.

In dieses Formular habe ich ein ungebundenes Listenfeld (ebenfalls über den Assistenten) einfügen lassen, das seine Daten aus der Tabelle Kundendaten entnimmt (den Vorschlag, das Schlüsselfeld auszublenden habe ich akzeptiert, dieses Schlüsselfeld enthält aber den Wert, der zum Anzeigen des ausgewählten Datensatzes benötigt wird).

Anschließend habe ich noch folgende Prozedur unter der Aktion "Nach Aktualisierung" in die Eigenschaften des Listenfelds("Auswahl") eingefügt:


Private Sub Auswahl_AfterUpdate()
Dim SQL, Test 'Deklarieren benötigter Variablen

Test = Me.Auswahl 'Übernahme der Kundennr.
       aus dem Listenfeld

SQL = "SELECT Kundendaten.* FROM Kundendaten _
       WHERE Kundendaten.Kdnr=" _
       & Test & ";" 'SQL-Anweisung zur Auswahl
                    'des gewünschten Daten-
                    'satzes

Me.RecordSource = SQL 'Die SQL-Anweisung wird
                      'Datengrundlage für das
                      'Formular



Kannst das ja mal für Deine Belange probieren, bei mir hat´s geklappt!!

** Sollte das mit dem Zeilenumbruch innerhalb der SQL-Anweisung nicht funktionieren, dann in eine Zeile schreiben, wobei der Unterstrich am jeweiligen Zeilenende entfernt werden muss.**
Gruß

Nanuk

Antwort 2 von Nanuk

P.S.:
Kleiner Fehler!!!
Die vierte Zeile im VBA-Code muss durch ein Hochkomma eingeleitet werden, da sie noch zumm Kommentar gehört.
(Der Code funktioniert sonst nicht...)

Nanuk

Antwort 3 von Barbarella

Hallo Nanuk,

super, es hat geklappt!!
Vielen Dank für Deine Hilfestellung, hätte es alleine nicht hinbekommen.
Gruß
Barbarella