Supportnet / Forum / Datenbanken
Schlagwort-Suche
Frage
Ich habe das Problem, dass ich in einer Tabelle in Memofeldern nach bestimmten Begriffen suchen will. Diese sind durch Leerzeichen oder Komma oder sonstwie getrennt, das weiß ich ja nicht, was der Bearbeiter in das Textfeld als Trennzeichen eingibt. z.B.: Musik machen, Text schreiben, Autofahren; Hulahupp
Jetzt soll nach beispielsweise Autofahren gesucht werden. Wie kann ich das mit der String, Mid, Len Funktion bewerkstelligen, das Autofahren gefunden wird und mir dann der DS angezeigt wird, der dem Begriff entspricht (können auch mehrere sein)
Danke für Anregungen ...
Antwort 1 von piano
Hallo
Die Funktion "InStr" bringt die Lösung, wobei das Ergebnis die Position des gefundenen Feldes anzeigt, sonst 0.
Eine Abfrage mit den Kriterien
findet alle gesuchten Datensätze .
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Die Funktion "InStr" bringt die Lösung, wobei das Ergebnis die Position des gefundenen Feldes anzeigt, sonst 0.
Eine Abfrage mit den Kriterien
InStr(1;[memofeld];"Autofahren")>0findet alle gesuchten Datensätze .
Gruß piano
Es wäre nett, wenn Du ein Feedback abgeben könntest,
ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Planet
Hi,
damit komme ich nicht ganz zurecht. Wo muß was eingetragen werden? Und was bedeutet dieser Ausdruck genau?
damit komme ich nicht ganz zurecht. Wo muß was eingetragen werden? Und was bedeutet dieser Ausdruck genau?
Antwort 3 von Knubbel
Hallo Planet,
erstelle eine Abfrage mit allen benötigten Datensatzfeldern incl. dem Memo-Feld.
Bei dem Memo-Feld gibst du bei Kriterien ein:
Wie("*"+[Suchtext eingeben]+"*")
Es öffnet sich hierbei zunächst ein Parameterfeld, in das der Suchtext eingegeben werden kann. Es reichen hier auch Textfragmente.
mfg Knubbel
erstelle eine Abfrage mit allen benötigten Datensatzfeldern incl. dem Memo-Feld.
Bei dem Memo-Feld gibst du bei Kriterien ein:
Wie("*"+[Suchtext eingeben]+"*")
Es öffnet sich hierbei zunächst ein Parameterfeld, in das der Suchtext eingegeben werden kann. Es reichen hier auch Textfragmente.
mfg Knubbel
Antwort 4 von piano
Hallo
Die Funktion
InStr(1;[memofeld];"Autofahren")>0
bedeutet:
Ist der Text "Autofahren" in dem Feld "memofeld" vorhanden? ,
wobei ab Position 1 gesucht wird.
Ich gehe davon aus, daß Du die Auswahl in einem Formular auswerten möchtest.
Dazu am einfachsten eine Abfrage als Datenherkunft wählen. In der Enwurfsansicht gibst Du hier in einer leeren Spalte folgene Werte ein:
Feld: InStr(1;[memofeld];[Auswahl])
Kriterien: > 0
SQL-Ansicht:
Diese Abfrage verlangt die Eingabe des Parameters "Auswahl" und hier den Suchbegriff (z.B. "Autofahren") eingeben.
Es gibt natürlich noch elegantere Methoden, diese ist jedoch eine der einfachsten und relativ leicht zu erklären!
Gruß piano
sonst wie @Knubbel
Die Funktion
InStr(1;[memofeld];"Autofahren")>0
bedeutet:
Ist der Text "Autofahren" in dem Feld "memofeld" vorhanden? ,
wobei ab Position 1 gesucht wird.
Ich gehe davon aus, daß Du die Auswahl in einem Formular auswerten möchtest.
Dazu am einfachsten eine Abfrage als Datenherkunft wählen. In der Enwurfsansicht gibst Du hier in einer leeren Spalte folgene Werte ein:
SQL-Ansicht:
SELECT Tabelle1. ..., Tabelle1.Memofeld
FROM Tabelle1
WHERE (((InStr(1,[memofeld],[Auswahl]))>0));
Diese Abfrage verlangt die Eingabe des Parameters "Auswahl" und hier den Suchbegriff (z.B. "Autofahren") eingeben.
Es gibt natürlich noch elegantere Methoden, diese ist jedoch eine der einfachsten und relativ leicht zu erklären!
Gruß piano
sonst wie @Knubbel

