Supportnet Computer
Planet of Tech

Supportnet / Forum / Datenbanken

Suchkriterien in einer Abfrage erstellen





Frage

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 1 von Marie

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

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

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: