Erneute Suche mit Kombinationsfeld

Hallo,

ich brauche Hilfe bei folgender Problemstellung:

Datensätze suchen nach Vorauswahl, dann filtern der Datensätze nach gleichen Benennungen. Danach möchte ich das Gleiche noch eimal mit einer neuen Auswahl machen.

Meine Lösung mit Kombinationsfeld:

Datensatzherkunft über eine Abfrage und dann Ereignisprozedur

Private Sub Kombinationsfeld113_AfterUpdate()
Me.FilterOn = False
Me.Filter = „[**]![Benennung] Like '“ & Me!Kombinationsfeld113 & „’“
Me.FilterOn = True
End Sub

Bei dieser Lösung lässt er die Abfrage nicht los, ohne Neustart des Formulars.

Wie kann man das besser lösen??

Vielen Dank im Voraus

Waldemar

Hallo Waldemar

Ein besserer Weg ist über das Rowsource oder RecordSource Objekt zu gehen.
Was willst du filtern?
Wenn du beispielsweiße ein subFormular filtern willst dann musst du das Recordsource - Objekt nehmen.
Bei einem Listenfeld gibt es das Rowsource Objekt.

z.B: (Nehmen wir mal an du willst eine Listbox filtern…)
Code:

Dim strSearch As String

strSearch = „(’*’ & '“ & Me!deinKombinationsfeld & „’ & ‚*‘)“

Form_deinFormular.deinListenfeld.RowSource = ("SELECT [deineTabelle].[deineId], [deineTabelle].[deinFeld1] WHERE [deineTabelle].[deineId] Like " & strSearch & „;“)

Ich hoffe ich konnte helfen
Chris

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

Hallo Waldemar

Ein besserer Weg ist über das Rowsource oder RecordSource
Objekt zu gehen.
Was willst du filtern?
Wenn du beispielsweiße ein subFormular filtern willst dann
musst du das Recordsource - Objekt nehmen.
Bei einem Listenfeld gibt es das Rowsource Objekt.

z.B: (Nehmen wir mal an du willst eine Listbox filtern…)
Code:

Dim strSearch As String

strSearch = „(’*’ & '“ & Me!deinKombinationsfeld & „’ & ‚*‘)“

Form_deinFormular.deinListenfeld.RowSource = ("SELECT
[deineTabelle].[deineId], [deineTabelle].[deinFeld1] WHERE
[deineTabelle].[deineId] Like " & strSearch & „;“)

Ich hoffe ich konnte helfen
Chris

Hallo Chris,

vielen Dank für die schnelle Antwort, leider kann ich z.Zt. nicht an meiner Datenbank arbeiten, daher weiß ich nicht, ob ich das mit Deiner Methode hinbekomme.

Noch mal zum Thema: was will ich machen.
Ich habe eine „Problem“-Datenbank von ca. 6000 Datensätzen. Hier wurden Rückfragen bisher immer auf Problemnummer gestellt. Jetzt kommen immer häufiger Anfragen: „Da war doch mal ein Problem, das hatte irgend etwas mit ‚Tür‘ zu tun, gab es das schon öfter …“

Zum Thema „Tür“ habe ich ca. 200 Datensätze z.B. Haustür, Türscharnier, Geräusche an Türen …

„Tür“ ist also meine erste Wahl. „Haustür“ taucht ca. 15mal auf. Um hier zwichen den Datensätzen zu springen, habe ich hier dann einen Filter gesetzt. Das mache ich beides in einem Kombinationsfeld.

Wenn jetzt eine Anfrage kommt, die nichts mit Tür zu tun hat, muss ich das Formular schließen, damit ich eine andere 1. Wahl treffen kann.

Gruß Waldemar

Hallo Chris,

vielen Dank für die schnelle Antwort, leider kann ich z.Zt.
nicht an meiner Datenbank arbeiten, daher weiß ich nicht, ob
ich das mit Deiner Methode hinbekomme.

Noch mal zum Thema: was will ich machen.
Ich habe eine „Problem“-Datenbank von ca. 6000 Datensätzen.
Hier wurden Rückfragen bisher immer auf Problemnummer
gestellt. Jetzt kommen immer häufiger Anfragen: „Da war doch
mal ein Problem, das hatte irgend etwas mit ‚Tür‘ zu tun, gab
es das schon öfter …“

Zum Thema „Tür“ habe ich ca. 200 Datensätze z.B. Haustür,
Türscharnier, Geräusche an Türen …

„Tür“ ist also meine erste Wahl. „Haustür“ taucht ca. 15mal
auf. Um hier zwichen den Datensätzen zu springen, habe ich
hier dann einen Filter gesetzt. Das mache ich beides in einem
Kombinationsfeld.

Wenn jetzt eine Anfrage kommt, die nichts mit Tür zu tun hat,
muss ich das Formular schließen, damit ich eine andere 1. Wahl
treffen kann.

Gruß Waldemar

Hi Waldemar

Wenn ich Dich richtig verstanden habe willst du also zuerst über ein Kombinationsfeld ein weiters Kombinationsfeld filtern und von da dann wieder ein Filter auf ein anders Objekt(welches?) setzen.

Die Datenquelle bzw. den Inhalt von Kombinationsfeldern kannst Du über das Rowsource- Objekt „filtern“ wie zuvor schon beschrieben.

Den Code solltest Du also also in das AfterUpdate- Event des ersten Kombinationsfeld setzen.
Von da aus kannst du dann weitere Filter durch das AfterUpdate- Event des zweiten Kombinationsfeld setzen.

Ich würde um die Suche freier zu gestalten als erstes Feld ein Textfeld wählen. Ansonsten kannst du nur nach dem Wortlaut suchen, den du zuvor als Datenquelle bzw. Inhalt deines ersten Kobinationsfeld definiert hast.

Du solltest jetzt mal schauen wie weit Du in der Praxis kommst sonst wirds hier zu theoretisch.

Gruß
Chris

Du solltest jetzt mal schauen wie weit Du in der Praxis kommst
sonst wirds hier zu theoretisch.

Gruß
Chris

Hallo Chris,

vielen Dank für die Hilfe.

Mein Wissen über Access scheint doch so oberflächlich zu sein, dass ich Deine Lösung nicht umzusetzen kann. Ich werde mich wohl erst einmal um mehr grundsätzliches Wissen zu Access bemühen, um gute Tipps auch umsetzen zu können.

Gruß

Waldemar