Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Suchefelder in Formular

Begonnen von AB, August 21, 2023, 15:55:43

⏪ vorheriges - nächstes ⏩

AB

Hallo,
ich bin neu in diesem Forum und hoffe, hier die erlösende Hilfe zu finden! ;-)

Mein Problem ist folgendes:
Ich habe ein Formular für eine Tabelle mit Projektdaten u.a. in den Feldern
"Projektnummer | Bauvorhaben | Adrese | PLZ | Ort | ..."
In dem Forlular habe ich ein ungebundenes Texrfeld mit der Bezeichnung "Suchwort",

einen Button Befehl239 "Filter AN" mit dem VBA-Code

Private Sub Befehl239_Click()
    Me.Filter = "[Ort] Like '*" & [Suchwort] & "*'"
    Me.FilterOn = True
End Sub

und einen weiteren Button Befehl 240 mit dem VBA-Code
Private Sub Befehl240_Click()
    Me.FilterOn = False
End Sub

Wenn ich nun zum Beispiel "Köl" in das Textfeld eintrage, den Filter mit Klick auf "Filter AN" anschalte, zeigt mir das Formular -wie gewünscht- nur Projekte aus Köln (bzw. mit der Zeichenfolge "Köl" in dem Feld Ort) an. Nach dem Ausschalten über den Button "Filter AUS" werden mir wieder alle Projekte angezeigt.
Bis hierher genau das, was ich möchte.

Nun habe ich ein ungebundenes Kombinationsfeld "Suchfeld" hinzugefügt, über welches ich ein Feld aus der FELDLISTE (s.o) meiner Tabelle auswählen kann und würden den Filter gerne in der Art ändern, dass ich für obiges Beispiel "Köl" in das Textfeld Suchwort eintragen müsste und "Ort" in der Kombinationsfeld "Suchfeld" auswählen könnte. (Filter an/aus wie oben...)
Für eine Filterung nach Projekten in z.B. Goethestraßen müsste ich denn "Goethe" in das Textfeld Suchwort und "Adresse" im Kombinationsfeld "Suchfeld" auswählen.

Hierfür müsste in o.g. VBA-Code
   Me.Filter = "[Ort] Like '*" & [Suchwort] & "*'"
das Feld [Ort] also durch die Variable ersetzt werden, die ich über das Kombinationsfeld "Suchfeld" auswähle.

Leider reichen hierfür meine Kenntnisse nicht aus.
Kann mir bitte jemand helfen, wie dies programmieren könnte?
Vielen Dank vorab!


andyfau

#1
Hallo, versuch mal: Me.Filter = "[" & Me.Suchfeld & "] Like '*" & [Suchwort] & "*'"
Beste Grüße
Andreas

Beaker s.a.

Aber vorher nicht vergessen das Textfeld auf Inhalt zu prüfen
If Len(Me.Suchwort) > 0 Then
    Me.Filter = "[" & Me.Suchfeld & "] Like '*" & [Suchwort] & "*'"
    Me.FilterOn = True
Else
'Msgbox, Abbruch; - deine Entscheidung
End If
Alles, was geschieht, geschieht. - Alles, was während seines Geschehens etwas anderes geschehen lässt, lässt etwas anderes geschehen. - Alles, was sich selbst im Zuge seines Geschehens erneut geschehen lässt, geschieht erneut. - Allerdings tut es das nicht unbedingt in chronologischer Reihenfolge.
(Douglas Adams, Mostly Harmless)

AB

Super, es funktioniert tadellos!
Vielen Dank!!!

(Statt zweier Schalter für Filter an/aus habe ich jetzt noch eine Checkbox verwendet, dadurch ist es etwas mMn übersichtlicher.)