PDA

Vollständige Version anzeigen : Filterkriterien auf dem Formular


britney smurf
24.09.2003, 15:09
Hi erstmal!

Ich habe ein Formular zur Stammdatenbearbeitung (Name, Adresse, usw..). In der Formularansicht kann man hier durch die Datensätze navigieren. Die Datensatzherkunft ist eine SQL-Abfrage.

SELECT tbl_Arzt.arzt_ID, tbl_Arzt.arzt_Vorname,
tbl_Arzt.arzt_Nachname, tbl_Arzt.arzt_Titel, tbl_Arzt.arzt_Fachrichtung,
tbl_Arzt.arzt_Straße, tbl_Arzt.arzt_PLZ, tbl_Arzt.arzt_Ort,
tbl_Arzt.arzt_Bankverbindung, tbl_Arzt.arzt_BLZ,
tbl_Arzt.azrt_Kontonummer, tbl_Arzt.arzt_OftimHaus,
tbl_Arzt.arzt_Behandlungstag, tbl_Arzt.arzt_Memo FROM tbl_Arzt WHERE
(((tbl_Arzt.arzt_Nachname) Like IIf(IsNull([Formulare]!
[frm_Arzt_Stammdaten]![txtFilter]),"",[Formulare]![frm_Arzt_Stammdaten]! [txtFilter]) & "*"));

Ich habe auf dem Formular ein Textfeld txtFilter und möchte dieses Verwenden, um die Ergebnisse insofern filtern zu können, als dass man den Nachnamen (oder einen Teil davon) angeben kann - und dann natürlich auch nur mehr diese Datensätze angezeigt werden.

Unter Datenherkunft habe ich deshalb bei dem entsprechenden Feld das Kriterium
Wie Wenn(IstNull([Formulare]![frm_Arzt_Stammdaten]!
[txtFilter]);""; [Formulare]![frm_Arzt_Stammdaten]![txtFilter]) & "*"
vergeben.

Doch leider rührt sich gar nichts, wenn ich etwas in diesem Feld eintrage und es verlasse.

Das merkwürdige jedoch ist, dass es funktioniert, wenn ich auf auf Datensätze > Filter/Sortierung entfernen (!) gehe.

Das ist natürlich nicht wirklich das Wahre...

Ich hoffe, dass mir vielleicht von euch jemand helfen kann?! Vielen Dank schon mal im Vorhinein! :)

Nouba
24.09.2003, 15:14
Hallo,

die FAQ 3.14 (Link ist weiter unten) sollte Aufschluß geben.

Anmerkung hat sich erledigt

CptChaos
24.09.2003, 15:18
Hallo Britney,

probiers mal mit folgendem Code, den Du in das After_Update Ereignis deines "Suchfeldes" einfügst.

ungetestet:

Me.Filter = "[arzt_ID] in (select [arzt_ID] from [tbl_Arzt] where [Nachname] like '* & Me.DeinTextfeld & "*')"

Me.FilterOn = True
If Me.RecordsetClone.RecordCount = 0 Then
MsgBox "Keinen Eintrag gefunden!"
Me.Filter = ""
Me.FilterOn = False
End If



Viele Grüsse

britney smurf
24.09.2003, 15:19
Ja, tut mir leid. Ich hab's eh sofort editiert, als ich das gesehen hatte...

Leider weiß ich nicht, was du mit "3.14" meinst... :confused:

britney smurf
24.09.2003, 15:27
Hi CptChaos,

Ich hab das mal so eingefügt:

Me.Filter = "[arzt_ID] in (select [arzt_ID] from [tbl_Arzt] where [arzt_Nachname] like '* & Me.txtFilter & '*')"


*** edit ***

Da fehlte wohl ein '

Me.Filter = "[arzt_ID] in (select [arzt_ID] from [tbl_Arzt] where [arzt_Nachname] like '*' & Me.txtFilter & '*')"

funktioniert schon fast... *g* Er erkennt nun nur Me.txtFilter nicht, sondern öffnet jedesmal eine Dialogbox, die zu einer Eingabe auffordert...


*** edit 2 ***

[Formulare]![frm_Arzt_Stammdaten]![txtFilter] tut es wesentlich besser, bin ich gerade draufgekommen... ;)


Vielen Dank nochmal, hast mir sehr geholfen!!! :)

Nouba
24.09.2003, 16:17
Hallo Britney,

ich meinte das hier (http://www.donkarl.com/FAQ/FAQ3TAbfragen.htm#3.14) worauf auch in meiner Fußzeile in Access-FAQ verwiesen wird.