Suchfunktion im Formular

Hallo!

Ich habe ein formular, in dem ein Unterformular enthalten ist und möchte gerne eine Suchfunktion einbauen.

Ich stelle mir das so vor, dass ich in ein Textfeld den Suchtext eingebe, dann dieser Suchtext in sämtlichen Feldern (sowohl im Hauptformular als auch im Unterformnular) sucht. Am Besten wäre es noch, wenn man nur im Teil des Feldeinhaltes sucht (z.B. wenn man nach der Bahnhofstraße sucht, man einfach Bahnhof als Suchtext eingibt).
Mit der Docmd.findrecord-Funktion komme ich leiider nicht weiter.

Hat jemand einen Tipp für mich?

Vielen Dank & viele Grüße aus Hannover

Hallo Yuppi,

Hat jemand einen Tipp für mich?

in der Symbolleiste hast du das Fernglas, damit kannst du suchen/lassen.

Die Suche im Unterformular ist nicht sinnvoll, da dann die Aktualisierung des Hauptformulars sehr aufwändig ist.

Grüße aus Essen
Wolfgang
(Netwolf)

Hallo Wofgang!

Danke für Deine Antwort!

Hm, nun habe ich aber ein echtes Problem: Ich habe eine Stammdaten-Tabelle, die 163 Datensätze enthält. Außerdem gibt es noch eine Tabelle mit Daten, die 860 Datensätze enthält.

Das genannte Formular basiert auf die Stammdaten, das Unterformular auf die Daten.

Nun habe ich eben erfahren, dass über alles Sätze nach einem Detail in dem Unterfomualr gesucht werden müsse…

Hast Du eine Idee?

Danke & Grüße

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Yuppi,

Nun habe ich eben erfahren, dass über alles Sätze nach einem
Detail in dem Unterfomualr gesucht werden müsse…
Hast Du eine Idee?

erstelle ine Abfrage
verknüpfe ALLE Felder zu einem Feld
Beispiel: Feld1 & Feld2 & Feld3 usw.

mit dem Kriterium: wie „*“ & Ltrim(Rtrim(SUCHE)) & „*“
kannst du dann nach allen Inhalten in diesem Mamutfeld „suchen“.
(funktioniert nicht mit Memofeldern!!)

Mit der ID des Datensatzes aktualisierst du dann das Hauptformular.

Grüße aus Essen
Wolfgang
(Netwolf)

Danke für Deine Antwort! Hm, ich glaube, das ist doch ein wenig zu aufwändig! Werde ein zweites (Such-)Formular basteln!

Eine Frage noch, ich habe die FindRecord-Funktion, diese funktioniert auch prima (sucht in allen DS etc…), möchte jedoch nur in einem TEIL des Feldes suchen. Habe das geht mit acAnywhere, oder? Nur wo muss ich das hintippen?

Im Moment sieht der Code so aus:

DoCmd.FindRecord Me!txtSuchtext, , True, , True, , False

Danke & Grüße!!

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Yuppi,

Eine Frage noch, ich habe die FindRecord-Funktion, diese
funktioniert auch prima (sucht in allen DS etc…), möchte
jedoch nur in einem TEIL des Feldes suchen. Habe das geht mit
acAnywhere, oder? Nur wo muss ich das hintippen?

DoCmd.FindRecord Me!txtSuchtext,>>acAnywhere>

Danke für die Hilfe. Leider klappt es nicht. Ich muss immer als wildcat „*“ drücken. Hast Du eine Idee, woran es liegt? Das ist der Code:

Private Sub Befehl21_Click()

If Me!txtSuchtext " " Then

Me!txtTeilnehmer.SetFocus
DoCmd.FindRecord Me!txtSuchtext, acAnywhere, True, , True, , False

Me!txtTN.Visible = True
Me!name_11.Visible = True

Else

MsgBox „Suchfeld ist leer“
End If

End Sub

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Yuppi,

Danke für die Hilfe. Leider klappt es nicht. Ich muss immer
als wildcat „*“ drücken. Hast Du eine Idee, woran es liegt?

ja, wenn du diese Wildcats nicht eingeben willst, muß du sie im Code vorgeben:

>

DoCmd.FindRecord Me!txtSuchtext, acAnywhere, True, , True, ,
False

>

DoCmd.FindRecord „*“ & Me!txtSuchtext & „*“, acAnywhere, True, , True, ,
False

Grüße aus Essen
Wolfgang
(Netwolf)