Access-o-Mania

Access-Forum (Deutsch/German) => Access-Hilfe => Thema gestartet von: lobo2000 am Juli 05, 2016, 01:18:05

Titel: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: lobo2000 am Juli 05, 2016, 01:18:05
Hallo,
ich benutze Access 2013.
Ist es möglich in 3 Feldern gleichzeitig zu suchen?
1. Feld: Filmtitel
2. Feld: Originaltitel
3. Feld: Aternativtitel

Oft fällt mir der Filmtitel nicht ein, oder nur ein Teil des Original- oder Alternativtitels.
Wie kann ich das machen bzw. wie muß die Abfrage aussehen, damit ich per Parameterabfrage suchen kann?
Oder gibt es eine andere Möglichkeit? Von VBA habe ich wenig Ahnung.

Meinen Dank schon in Voraus
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: MzKlMu am Juli 05, 2016, 07:49:32
Hallo,
ZitatOder gibt es eine andere Möglichkeit?
wenn es verschiedene Titel zu einem Film gibt, so sollten die Titel in eine extra Tabelle mit einem Fremdschlüssel zum Film.
Die Titel dann in einer Spalte, in je einem Datensatz. Dann muss auch nur in einer Spalte gesucht werden.
Zweckmäßig wäre es dann eine weitere Tabelle anzulegen mit den Titelarten und in der extra Tabelle für den Titel auch eine FS zur Titelart zu führen.
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: MaggieMay am Juli 05, 2016, 10:39:17
Hi,

natürlich kannst du auch in drei Feldern suchen, indem du die Kriterien mit OR verknüpfst.

Beispiel:
Select ...
From ...
Where Filmtitel LIKE '*' & [suchtext] & '*' OR Originaltitel LIKE '*' & [suchtext] & '*' OR Aternativtitel LIKE '*' & [suchtext] & '*'
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: Beaker s.a. am Juli 05, 2016, 12:13:40
Oder einfacher:

Select ...
From ...
Where (Filmtitel & Originaltitel & Alternativtitel) LIKE '*' & [suchtext] & '*'
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: Lachtaube am Juli 05, 2016, 12:40:32
Nee, das Aneinanderreihen der Feldinhalte kann zu ungewollten Artefakten führen. Maggies Version ist zu bevorzugen, wobei diese von Hause aus auch eine Indexverwendung ausschließt.
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: MzKlMu am Juli 05, 2016, 12:59:22
Hallo,
Zitatkann zu ungewollten Artefakten führen
welche z.B. ?
Unabhängig davon ich würde ich in jedem Fall meine Version bevorzugen.  :D
Nicht weil es meine ist, sondern weil es die Flexiblere und letztlich auch die einfachere Version ist.
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: Lachtaube am Juli 05, 2016, 13:14:08
Nun, mit etwas Fantasie ergibt die Endung eines Felds verkettet mit dem Anfung eines weiteren Felds ein Wort, dass in der Suche angegeben ist, aber in keinem Feld einzeln vorkommt.
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: Beaker s.a. am Juli 05, 2016, 13:33:23
Moin,
Zitatergibt die Endung eines Felds verkettet mit dem Anfung eines weiteren Felds
Abgesehen von Klaus' auf jeden Fall besserer Lösung (hatte ich gar nicht gelesen  >:( )
könnte man das so umgehen:
Where (Filmtitel & "*" & Originaltitel & "*" &  Alternativtitel) LIKE '*' & [suchtext] & '*'

gruss ekkehard
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: Lachtaube am Juli 05, 2016, 13:51:21
So würde es gehen, wenn das Trennzeichen selbst nicht Bestandteil eines Suchtexts sein wird.
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: Beaker s.a. am Juli 05, 2016, 14:26:26
Hallo Lachtaube,

Hast schon recht, Maggies Statement ist auf jeden Fall das sicherste.
Wobei Indexnutzung durch LIKE schon per se ausgeschlossen ist (so
weit mir bekannt).
Die bessere Lösung ist auf jeden Fall Klaus'. Soll der TS sich entscheiden.

gruss ekkehard
Titel: Re: In 3 Formularfeldern gleichzeitig suchen
Beitrag von: Lachtaube am Juli 05, 2016, 15:15:12
Partiell werden Indizes durch den Like-Operator unterstützt - ab dem ersten Platzhalterzeichen (* bzw. %, ? bzw. _, #, [Zeichenliste], [!Zeichenliste]) ist allerdings Schluß. Leider gibt es dazu von Microsoft keine offizielle Dokumentation und ist auf JetShowPlan angewiesen.

Für wirklich große Volltext-Suchen (speziell im LAN-Betrieb) ist es sinnvoll, seine Texte abzuscannen, Worte in einer Tabelle abzulegen und Vorkommnisse in weiteren Tabellen festzuhalten. Artikel, Bindeworte u.ä. kann man dabei optional übergehen.

Besser wäre auf jeden Fall der Einsatz eines Datenbankservers, der Volltextsuchen unterstützt.

Aber auch mit Olaf Schidts vbRichClient5 (http://vbrichclient.com/#/en/About/), der SQLite3 mit FTS3-Modul implementiert, könnte man sich aushelfen.
Vorteil: Tabellen mittlerer Größe können im Speicher verweilen, um super schnellen Zugriff zu erlangen.
Nachteil: Es liegt (fast) keine Dokumentation vor (aber immerhin intuitiv gut zu verwenden) und die Bibliothek ist ein schwarzes Loch (Closed Source).