8.6k Aufrufe
Gefragt in Datenbanken von suki Mitglied (131 Punkte)
Hallo zusammen,

ich möchte in Access Übereinstimmungen in Feldern verschiedener Tabellen ermitteln. Der Einfachheit halber füge ich hier die Datenbank ein:
https://www.dropbox.com/s/y25zqppri291afm/Datenbank%20Abfrage.accdb

Im Beispiel habe ich zwei Texte (ID_text), die über einen Titel, den Volltext sowie Schlagworte verfügen. Diese sind in den drei Tabellen aufgeführt. Nun möchte ich eine Abfrage erstellen, die mir die Schlagworte mit den Titeln und dem Volltext der jeweiligen Text-ID abgleicht, d.h. quasi, dass die Zeichenfolge dort auch vorkommen muss. Beispiel: Schlagwort "Affe" bei Text Nr. 1 ist im Titel des Textes Nr. 1 enthalten (Affen). Ich möchte, dass mir dies für jedes Schlagwort einzeln ausgegeben wird.

Es wäre super, wenn mir jemand weiterhelfen könnte!

Liebe Grüsse,
Suki

25 Antworten

0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Suki



https://supportnet.de/t/2406684


Leider konnte ich mir die Datei nicht downloaden, da 2010 nach 2003 nicht konvertierbar ist.

Schau mal im nachfolgenden Link AW 2 bis 4, ob es das ist was Du brauchst.

AW 2 bis 4

Die Eingabe des Suchbegriffs ist auch nur teilweise möglich.

Ein Beispiel in der 2003er Version kann ich beisteuern:

Beispiel

Gruß

Paul1
0 Punkte
Beantwortet von suki Mitglied (131 Punkte)
Hallo Paul

besten Dank für deine Antwort und den Link! Leider ist es nicht das, was ich brauche. Es geht nicht darum, dass von Hand Suchbegriffe eingegeben werden sollen, sondern dass Schlagwort für Schlagwort mit Titel und Volltext verglichen.

Habe die drei Tabellen mal ins Excel reinkopiert:
https://www.dropbox.com/s/rfte7509u5b8eum/DatenbankAbfrage.xls

Liebe Grüsse
Suki
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Suki,

Wie kann man sich die Auswertung vorstellen, wenn Titel und Volltext mit dem Schlagwort übereinstimmen sollen.

Ich will nicht indiskret sein, aber wo liegt eigentlich der praktische Nutzen, sollen bei Anwahl des Schlagwortes oder vorhandener Abfrage sämtliche Datensätze unter Titel bzw. unter Volltext aufgeführt werden und wie.

Habe Verschiedenes ausprobiert mit Gruppierung und auch Kreuztabellenabfrage, jedoch es ist nicht so, dass es für meine Begriffe herzeigbar wäre.

Jedenfalls ist es sehr schwierig das ganze in Access umzusetzen.

Sollte mir noch was brauchbares einfallen, würde ich es schreiben.


Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Suki,

Das nachfolgende Beispiel könnte den Anforderungen entsprechen:

Beispiel

Schau Dir speziell folgende Abfragen an:

1)UNION ABFRAGE mit Auswahlmöglichkeit nach Schlagwort (sortiert nach ID_Text)
2)*Affe* (Spezialabfrage)

Es gibt natürlich zusätzlich darüberhinaus noch ein großes Spektrum der Sortierung und Filterung über die Entwurfsansicht (oder Datenblattansicht).

Gruß

Paul1

P.S.

bei Fragen schreibe es
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Suki,

Zusatzinfo:

gib in der
>UNION ABFRAGE mit Auswahlmöglichkeit nach Schlagwort (sortiert nach ID_Text)
>Entwurfsansicht
>Schlagworte
>Kriterien
>Wie "*" & [SUCHE] & "*"
ein

Es erscheint zwar beim öffnen der Anfrage das Fenster "Parameterwert eingeben" ist möglich aber nicht zwingend, mit "OK" ist die komplette Anfrage trotzdem zu sehen, wäre eine Alternative zur Spezialabfrage *Affe*.

Gruß

Paul1
0 Punkte
Beantwortet von suki Mitglied (131 Punkte)
Hallo Paul,

vielen Dank für deine Antworten!!!

Du hast gefragt, wie man sich die Auswertung vorstellen kann. Ich habe mal in einer Excel-Tabelle aufgeführt, wie das Resultat quasi aussehen sollte:
https://www.dropbox.com/s/6w6zjevy87y7ofz/DatenbankAbfrageResultat.xls

Die Spezialabfrage entspricht dem am ehesten, jedoch gibt es ein Problem dabei: wenn ich im Titel des zweiten Textes das Wort „affe“ ergänze, so wird mir bei der Abfrage auch dieser Titel ausgegeben. Es sollen aber immer nur Schlagworte, Titel und Volltext von einer Text-ID verglichen werden. Darüber hinaus müsste ich bei der Spezialabfrage immer jedes Schlagwort einzeln eingeben, was bei einer Datenbank von 10.000 Schlagworten nicht realisierbar ist.

Liebe Grüsse,
Suki
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Suki,

Direkt in Access geht es nicht, habe die Formeln in Deine Bespieltabelle unter Berücksichtigung des Schlagwortes und der ID_Text eingefügt.

Beispiel

Entweder Du importierst die Excel-Tabellen nach Access oder Du erstellt eine Abfrage in Access mit den 2 Spalten zusätzlich und importierst sie dann nach Excel zwecks Auswertung.

Die Anführungszeichen bei den Texten (Volltext) habe ich entfernt (>Bearbeiten>Ersetzen (Ersetzen freilassen)>OK geht ganz einfach, zumal die Formeln diese nicht akzeptieren (Klammern schon).Was in Anführungszeichen stand habe ich andersfärbig abgesetzt.

Die Formeln sind Matrixformeln und müssen mit STRG/SHIFT/ENTER gleichzeitig abgeschlossen werden.


Gruß

Paul1

Excel/Access 2003
0 Punkte
Beantwortet von suki Mitglied (131 Punkte)
Hallo Paul,

wow, das ist genial! Vielen Dank!

Habe meine Tabellen jetzt in die Beispiel-Datei übertragen, funktioniert bis und mit Datensatz 9 (= TextID) wunderbar, bei den Datensätzen 10 bis 1000 wird aber in allen Feldern "nein" angezeigt. Woran könnte das liegen?

> Die Formeln sind Matrixformeln und müssen mit
> STRG/SHIFT/ENTER gleichzeitig abgeschlossen werden.
Das verstehe ich nicht, kannst du es mir erklären?

Tausend Dank!
Suki
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Hallo Suki,

Das "nein"steht für #NV (Bereich Verweis: no value d.h. nicht vorhanden) durch die Formel habe ich es in ein „nein“ umgewandelt.

Was die Tastenkombination STRG/SHIFT/ENTER betrifft ist im nachfolgenden Link besser erklärt als ich es kann:

Tastenkombination

Freut mich, dass es jetzt so ist wie Du es brauchst.


Gruß

Paul1
0 Punkte
Beantwortet von paul1 Experte (4.9k Punkte)
Nachtrag:

Die Formeln gehen nur bis Zeile 10, die Zellbereiche musst Du natürlich anpassen, das hatte ich vergessen zu erwähnen.

z.B. in F2

=WENN(ISTNV(INDEX(Titel!$C$2:$C$10000;VERGLEICH(B2&"*"&C2&"*";Titel!$B$2:$B$10000&Titel!$C$2:$C$10000;0)));"nein";WENN(ISTTEXT(INDEX(Titel!$C$2:$C$10000;VERGLEICH(B2&"*"&C2&"*";Titel!$B$2:$B$10000&Titel!$C$2:$C$10000;0)));"ja"))

das gleiche in G2

Gruß

Paul1
...