Suche innerhalb eines Abfrageergebnisses
Hallo zusammen, ich habe eine Abfrage in Access 2002 programmiert,
die eine Musikdatenbank nach Titel und nach Interpret sortiert.
Die Ergebnisse werden in einem Formular in zwei nebeneinanderliegenden Fenstern angezeigt.
Wenn ich in einem der Fenster einen Buchstaben eingebe, springt der Cursor zu dem Interpreten bzw. Titel, der mit diesem Buchstaben anfängt.
Wie kann ich erreichen, dass der Cursor bei Eingabe eines weiteren Buchstabens nicht zum nächsten Interpreten/Titel springt, der mit dem Buchstaben anfängt, sondern zu den Datensätzen, in denen beide Buchstaben vorkommen?
Beispiel: Wenn erst B eingebe und dann E, sollen sowohl Beatles als auch Beach-Boys angezeigt werden und nicht ein Interpret, der mit E anfängt.
Antwort schreiben
Antwort 1 von Teddy7 vom 28.08.2019, 13:19 Options
Dazu sollte man wissen, wie Du das bisherhige Springen programmiert hast.
Gruß
Teddy
Antwort 2 von Steinway vom 28.08.2019, 14:02 Options
Danke für die schnelle Antwort, das Springen habe ich nicht programmiert, das funktioniert automatisch.
Die Abfrage habe ich programmiert, indem ich die anzuzeigenden Felder und die Sortierung in der Entwurfsansicht angegeben habe
Antwort 3 von Teddy7 vom 28.08.2019, 15:14 Options
Kann ich mir nicht so recht vorstellen. Was sind denn das für "Fenster" ? Unterformulare, Listboxen, Kombifelder,......
Und wo (in was für einem Feld) gibst Du den Buchstaben ein ?
Antwort 4 von Steinway vom 28.08.2019, 21:38 Options
Bei den Fenstern handelt es sich um zwei Listenfelder, unter Herkunftstyp habe ich Tabelle/ Abfrage eingetragen und unter Datensatzherkunft folgenden Ausdruck:
SELECT [Tabellenname].[INTERPRET], [Tabellenname].[SONG], [Tabellenname].[CD-TITEL], [Tabellenname].[TRACK] FROM [Tabellenname] ORDER BY [INTERPRET];
bzw. ORDER BY Song für die andere Liste.
Antwort 5 von Steinway vom 28.08.2019, 21:40 Options
Wenn ich das Formular öffne, erscheinen rechts und links die beiden Listen und dort gebe ich die Buchstaben ein
Antwort 6 von RalfH vom 29.08.2019, 07:19 Options
Guten Morgen Steinway,
Hier kann man mit dem Like Operator arbeiten.
Man könnte beim Ereignis "Bei Taste Auf" eingeben:
Me.FilterOn = False
Me.Filter = "suche like '*" & Dein TextFeld& "*'"
Me.FilterOn = True
eingeben.
Gruß Ralf
Antwort 7 von Teddy7 vom 29.08.2019, 08:37 Options
Innerhalb der Listenfelder geht das gar nicht. Es wird nur nach dem Anfangsbuchstaben gesucht/positioniert. Drückt man den Buchstaben nochmals, dann springt er auf den nachsten Begriff, der mit diesem Buchstaben anfängt.
Mach mal Kombifelder daraus.
Ansonsten bleibt Dir nur die aufwändige Programmierung über ein zusätzliches freies Suchfeld und den Filter wie von Ralf beschrieben.
Gruß
Teddy
Antwort 8 von Steinway vom 29.08.2019, 14:15 Options
Danke für Eure Vorschläge,
die Eingabe mehrerer Buchstaben über ein Kombinationsfeld funktioniert, jedoch wird nur der Inhalt eines Feldes angezeigt.
Heisst das, dass ich für jedes Feld der Tabelle, das ich angezeigt haben möchte, ein Kombinationsfeld in das Formular einbauen muss?
Und wie stelle ich dann den Zusammenhang zwischwen der Eingabe in das Kombinationsfeld und der Ausgabe der dazugehörigen Datensätze her ?
Ist es denn nicht möglich, dass eine Tabelle mit Spaltenüberschriften angezeigt wird, in der alle Datensätze sortiert nach einem Feld dargestellt werden.und der Cursor innerhalb dieser Tabelle zu den in Frage kommenden Datensätzen springt bei Eingabe mehrerer Buchstaben
Antwort 9 von Teddy7 vom 29.08.2019, 15:18 Options
1) in einem Kombifeld können mehrere Felder eines Datensatzes angezeigt werden - es kann aber nur nach einem Feld gesucht werden
2) natürlich ist das möglich - siehe Antwort von Ralf
Dazu würde man die Daten in einem Unterformular anzeigen und dieses Unterformular mittels Filter auf die in einem separaten, ungebundenen Textfeld eingegebenen Buchstaben beschränken
oder man würde VBA-Code schreiben, der mittels goto Record oder mittels bookmark die Treffer markiert.
ODER aber man macht die russische Lösung und zeigt einfach alle Datensätze in einem Endlosformular an und benutzt zum sortieren und suchen die Access-"Bordmittel"
Gruß
Teddy