Suchfunktion in Access

poach

Grünschnabel
Hallo,

folgendes Problem: In Access habe ich einen Karteikasten gebastelt, in dem zu den Infos auch Stichwoerter angegeben werden, die in einer eigenen Tabelle gespeichert werden. Nun will ich die DAten nach diesen Stichwoertern filtern, es ist aber nicht möglich, in mehreren Stichwortfelden mit UND verknüpfte Suchkriterien einzugeben, um beipsielsweise nur Infos zu finden, die Reisbauer und Wolkenkratzer enthalten. Oder funktioniert natuerlich. Weiss jemand RAt?

gruebelnde Gruesse
poach
 
Versteh jetzt deine Anfrage ned ganz, aber daich zZ selber ne acces suchfunktion einbaue, etc (was ich noch immer ned richtig drauf ha), würd ichdir empfehlen es mit ner SQL anweisung zu pobieren


SELECT DISTINCTROW [Tabelle].[Infos], [Tabelle].[ID FROM [Tabelle] where Tabelle.Stichwort=W?;

Is jetzt keine Lösung, aber evtl bringts dir ja was.
 
details

vielen dank fuer die info, ich probier sie gleich mal aus, denke aber nicht, dass dies mein problem loest.

ich habe drei tabellen

karteikasten (Felder: KarteikastenID, info)
schlagwort (Felder: schlagwort)
karteiSchlagwort (Felder: KarteikastenID, schlagwort)

karteikasten.KarteikastenID ist mit karteiSchlagwort.KarteikastenID verbunden, karteiSchlagwort.schlagwort mit schlagwort.schlagwort

Was passiert:
Ich kann in einem Formular karteikasten.info aufrufen und veraendern und hier zusaetzlich aus schlagwort.schlagwort mehrere passende schlagwoerter auswaehlen, die dann in karteiSchlagwort.schlagwort mit dem Zusatz karteiSchlagwort.KarteikastenID gespeichert werden. Duplikate von karteiSchlagwort.KarteikastenID sind hier zugelassen, so dass korrekt ausgegeben wird:

KarteikastenID Schlagwort Info
1 Nachkriegszeit Besatzungsherrschaft und Neuaufbau ...
1 Alliierte Besatzungsherrschaft und Neuaufbau ...
2 Revolution Amerikanische Revolution 1776 bis ...
2 USA Amerikanische Revolution 1776 bis ...
2 Geschichte Amerikanische Revolution 1776 bis ...

ziel: filtern der daten nach schlagworten (UND/ODER-Verknuepfungen)

Problem: es ist nicht moeglich, in mehreren Schlagwortfeldern mit UND verknuepfte Suchkriterien einzugeben, um beispielsweise nur Infos zu finden, die die Stichwoerter "Revolution" und "USA" enthalten.

meine Idee als newbie:
ich sammle die schlagwoerter aus den verschiedenen Feldern in einem einzigen Feld, getrennt durch semikolon. Nur klappt auch das nicht bislang.

ratlos, poach
 
Hm, nun glaub hab ich es kappiert. Was mir dazu nun einfällt wäre folgendes:

erweitere deine Tabelle

schlagwort (Felder: schlagwort)

einfach um 2-3 Spalten (je nachdem wieviele Schlagwörter man eingeben können sollte) mach das ganze mit 3- 4 listenenfelder und speicere jedes Schlagwort wieer in einer einzelnen spalte in karteiSchlagwort

(Felder: KarteikastenID, schlagwort)

dann hast du jeweils 3 spalten, die du beim suchen durchlaufen lassen kannst, und somit die einzelnen schlagwörter auslesen kannst, ohne ein und/oder.


Weiß jetzt zwar immer nochned so recht, obs was hilft ( mach grad praktikum und acces grad ma 4 tage) oder ich bin einfach zu noob um deinprob zu checken :p

grüße slappy
 
Hmmm, das würd ich so nicht machen, slappy.

Zum einen kannst du dann nicht beliebig viele Schlagwörter eingeben, zum anderen verbrätst du so ne Menge Speicherplatz und Performance.

Der richtige Lösungsansatz wäre, die Zielmenge (KarteikastenID's) über eine Unterabfrage zu begrenzen:
ausdruck1: (SELECT DISTINCTOW KarteikartenID FROM ... WHERE ... LIKE "Suchbegriff1")
ausdruck2: (SELECT DISTINCTOW KarteikartenID FROM ... WHERE ... LIKE "Suchbegriff2")

Die verschachtelst du dann in der Abfrage:

SELECT * FROM ... WHERE KarteikartenID IS IN (Ausdruck1) AND KarteikartenID IS IN (Ausdruck2)

Schwierig wirds erst dann, wenn du nach einer beliebigen Anzahl Schlagworte suchen willst.
 

Neue Beiträge

Zurück