PDA

Vollständige Version anzeigen : Suchen nach Stichwort


toto73
09.08.2001, 14:28
Moin moin!

Ich bin auf der Suche nach einer geschickten Möglichkeit, Datensätze zu filtern.
Folgende Lage:
Ich habe eine Tabelle(tbl1) mit einem Feldnamen "Stichwort", in das ich ein oder mehere Stichwörter eingeben kann. In einem Formular(frm1) möchte ich nun ein Feld haben, in das ich ein Stichwort eingeben kann.Dann sollen mir alle Datensätze der Tabelle ausgegeben werden, bei denen in "Stichwort" eben jenes eingebene Wort vorkommt.
Gibt es sowas schon hier im Forum, dann hätte ich´s übersehen.
Hat sonst jemand ´ne Lösung parat?
Hoffe das mein Problem nicht zu umständlich beschrieben ist!

martiniz
09.08.2001, 14:40
hallo toto73,

du könntest deine filterung durch ein kombifeld lösen, das seine daten aus dem feld "Stichwort" erhält. dann müßtest du auch keine eingaben vornehmen, sondern könntest einfach per klick die ganze sache regeln. anstelle eines kombifeldes kannst du natürlich auch ein listenfeld nehmen, wenn dier das lieber ist.

toto73
09.08.2001, 15:03
Hi Martin!

Prizipiell egal, ich kann auch ein Kombifeld nehmen, das Problem scheint mir aber zu sein, dass im Feld "Stichwort" mehere Einträge(Stichworte) stehen dürfen.
Nehmen Wir folgendes an:

Datensatz Stichwort
1 Audio, Video, TV
2 Video, Audio, TV
3 Tv, Video, Audio

So, jetzt geb´ ich im "Suchfeld" bspw. Audio ein, so erscheint aber ja nur Datensatz 1 und nicht die Datensätze 2 & 3, obwohl diese ja auch im Feld "Stichwort" Audio stehen haben, nur eben halt in anderer Reihenfolge.
Verstehst Du das Problem? Ich bin jetzt auf der Suche, wie ich den einzugebenden Suchbegriff mit dem gesamten Inhalt von "Stichwort" vergleichen kann. Anschließend sollen alle Datensätze ausgegeben werden, die das Wort enthalten, egal in welcher Reihenfolge es in die Tabelle geschrieben wurde.

C. Palmetshofer
09.08.2001, 15:07
Hi,

eine einfach Möglichkeit ist

select * from tbl where stichwort like *suchbegrif*

Gruss

toto73
09.08.2001, 15:10
Danke C. Palmetshofer!

Werd´das mal probieren!

martiniz
09.08.2001, 15:10
hast du es schon mal mit dem makro versucht?
du kannst dort auch nach teilen des feldinhaltes suchen lassen. hast du so einen suchaktion schon einmal durchgeführt?

toto73
09.08.2001, 15:27
Nee,bis jetzt noch nicht, aber für Hilfe bin ja immer sehr dankbar!

toto73
09.08.2001, 15:32
Noch ´ne Frage zum Makro.

Was trage ich denn bei "Suchen nach" ein?

toto73
09.08.2001, 15:54
Nochmal zum Coding C.Palmetshofer.

Ich hab ein Kombifeld mit dem Assistenten erstellt. Bei der Abfrage nach den Daten habe ich aktiviert:
Einen Datensatz im Formular, basierend auf den im Kombifeld gewählten Wert suchen.
Danach: Ausgewählte Felder: "Stichwort"
und fertig.
Der jetzige Code sieht so aus:
Sub Kombinationsfeld216_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Me.RecordsetClone.FindFirst "[Stichwort] = '" & Me![Kombinationsfeld216] & "'"
Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub
Wie bring´ ich jetzt Deinen Code da hinein? Ich kenn´ mich damit nich´ so aus.

xmarcusx
10.08.2001, 10:49
Hi toto

Versuch mal eine Abfrage mit folgendem Kriterium
Wie "*" & [forms].[dein formular].[dein textfeld/kombiefeld mit suchberiff] & "*"

am besten du legst ein Hauptform an in dem nur ein Feld mit dem suchbegriff steht dann eine Abfrage mit dem Kriterium "siehe oben" und ein Unterform das die suchergebnisse auflistet.
cu mac

C. Palmetshofer
10.08.2001, 14:45
Hi toto,

wie marcus schreibt:

nicht = Suchbegriff
sondern

like|wie *Suchegriff*


und jetzt ab in den Urlaub!

toja
10.08.2001, 17:12
hai zusammen,

ich habe mit großem interesse die diskussion zu diesem beitrag verfolgt.
@toto: der vorschlag von martiniz müßte doch hervorragend klappen (?); bedenkst du, daß du das kombifeld im formular mit der spalte "stichwort" deiner tabelle verknüpfen kannst, so daß genau dieser inhalt vorhanden ist? oder habe ich irgend was mißverstanden?

viele grüße toja

Stema
11.08.2001, 01:48
Hallo Toto,

so wird ein Schuh draus.

Sub Kombinationsfeld216_AfterUpdate()
' Den mit dem Steuerelement übereinstimmenden Datensatz suchen.
Me.RecordsetClone.FindFirst "[Stichwort] = LIKE '*" & Me![Kombinationsfeld216] & "*'"
Me.Bookmark = Me.RecordsetClone.Bookmark
End Sub

toto73
13.08.2001, 10:24
Hi zusammen, danke für die Resonanz!

Hab´ jetzt die Lösung von xmarkusx gewählt, funktioniert auch prima. Ich kann jetzt sogar nach mehreren Stichworten in unterschiedlichen Spalten meiner Tabele filtern. Die anderen Vorschläge funktionieren mit Sicherheit auch, hab´mich aber jetzt für Markus´ Lösung entschieden, da mir diese am besten zusagt.

Trotzdem allen anderen vielen Dank!