online 1
gast (50)

/ Forum / Datenbanken

DatenbankenDatenbanken

Fragevon Johann26 vom 16.08.2020, 22:49 Options

Suchkriterien in einer Abfrage erstellen

Hallo, ich will mir mit Access eine Fotodatenbank anlegen und bin auf folgendes Problem gestoßen.
Ich habe eine Spalte mit den Namen der Personen, die auf dem Foto zu sehen sind um Später fotos nach Namen suchen zu können.
Wie kann ich einen Befehl eingeben der verschiedene Namen in der gleichen Spalte sucht. Meine Namen habe ich durch ein Komma getrennt.
Vielleicht kann mir da jemand helfen.

Vielen Dank


Antwort schreiben

Antwort 1 von Marie vom 17.08.2020, 04:28 Options

Was verstehst Du unter einer Spalte? Suchst Du unterschiedliche Namen in einem einzigen Datenbankfeld? Oder stehen die Namen untereinander in unterschiedlichen Datensätzen in Deiner Datenbank? Wenn ja, wo hast Du die mit Komma getrennt??

Also Du kannst selbstverständlich nach allem suchen, aber halt hintereinander, nicht gleichzeitig.

Also falls Du Oma, Opa suchst in einer einzigen Zelle, in der Monika, Oma, Frank, Opa steht, dann ist das etwas aufwändiger, wie wenn Du nach einer Zeichenfolge suchst, die auch in Deiner Datenbank hintereinander steht oder nach zwei Namen in unterschiedlichen Zeilen.

Es geht alles, aber ich müsste halt mal wissen was genau Du willst. Erklär mal eben genauer.

Gruß Marie

Antwort 2 von lorf55 vom 17.08.2020, 17:34 Options

Hallo Johann,
angenommen deine Tabelle fotos sieht so aus:
FOTONAME	PERSONEN
pict00567.jpg	moni, fritz, shireen
pict00568.jpg	oma, opa, moni
pict00569.jpg	kevin, fritz
pict00570.jpg	evi, pa, ma, justin
PICT0456.jpg	oma
PICT3445.jpg	kevin, oma

Denn kannst du mit der INSTR-Funktion abfragen, ob eine Zeichenkette in PERSONEN enthalten ist: z.B. moni
mit
SELECT fotoname, personen
FROM fotos
WHERE (((InStr(1,[personen],"moni",1))<>False))
ergibt:
FOTONAME	PERSONEN
pict00567.jpg	moni, fritz, shireen
pict00568.jpg	oma, opa, moni

Wenn du alle Bilder mit Kevin oder Fritz suchen willst, verbindest du die INSTRs über OR:
SELECT fotoname, personen
FROM fotos
WHERE (((InStr(1,[personen],"Kevin",1))<>False))
or (InStr(1,[personen],"fritz",1)<>False)

ergibt
FOTONAME	PERSONEN
pict00567.jpg	moni, fritz, shireen
pict00569.jpg	kevin, fritz
PICT3445.jpg	kevin, oma
Wenn du alle Bilder mit Kevin und Fritz suchst, tauschst du das Or gegen AND.

Nachteile der INSTR-Methode:
- Ist der Name falsch geschrieben, wird das Foto nicht gefunden,
- Wird nach evi gesucht wird auch kevin gefunden (kann man aber unterbinden, indem man Groß-/Kleinschreibung benutzt und mit binärer statt Textgenauigkeit arbeitet: InStr(1,[personen],"Evi",0) )
- Es tauchen bei gleichem Personenkreis immer wieder die selben Namen auf (vergrößert die Datenbank unnötig)

Besser ist es denn evtl., für häufig wiederkehrende Personen (nicht Namen ;-) ) jeweils eine Spalte anzulegen, die nur Ja oder Nein enthält.

Nun ja, in diesem Sinne
Gruß
lorf

Ähnliche Themen

Eigenen Funktionen
JoeKe  29.08.2006 - 1941 Hits -

Ja/Nein Abfrage
ichhabeinefrage  09.08.2007 - 49 Hits - 3 Antworten

verschachtelte Suchkriterien
mbalrog  26.09.2007 - 17 Hits - 5 Antworten

Abfrage
RalfH  16.10.2007 - 85 Hits - 2 Antworten

access - Abfrage durch ein Formular erstellen ?!
shyning  10.06.2008 - 91 Hits - 1 Antwort

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 01:23:17 2026