Supportnet / Forum / Datenbanken
Suche innerhalb eines Abfrageergebnisses
Frage
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 1 von Teddy7
Dazu sollte man wissen, wie Du das bisherhige Springen programmiert hast.
Gruß
Teddy
Gruß
Teddy
Antwort 2 von Steinway
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
Die Abfrage habe ich programmiert, indem ich die anzuzeigenden Felder und die Sortierung in der Entwurfsansicht angegeben habe
Antwort 3 von Teddy7
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 ?
Und wo (in was für einem Feld) gibst Du den Buchstaben ein ?
Antwort 4 von Steinway
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.
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
Wenn ich das Formular öffne, erscheinen rechts und links die beiden Listen und dort gebe ich die Buchstaben ein
Antwort 6 von RalfH
Guten Morgen Steinway,
Hier kann man mit dem Like Operator arbeiten.
Man könnte beim Ereignis "Bei Taste Auf" eingeben:
Gruß Ralf
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
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
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
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
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
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
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

