PDA

Vollständige Version anzeigen : Filter: Vergleichen von Teilinhalten ?


Peter Hoe
20.09.2001, 22:36
Hallo,

meine Zielvorstellung:
einen Suchbegriff im Formular eingeben und alle Datensätze (alles Textfelder) anzeigen lassen, die in irgendeinem Datenfeld diesen Suchbegriff enthalten. Also auch Teile der Feldinhalte sollen überprüft werden.
Hat jemand dafür eine Lösung ?

Das was ich bisher nur umsetzen kann, sind Filter, bei denen ich nur nach dem Kriterium "ist gleich" filtern kann, aber nicht "enthält" ..... ?

MarioR
21.09.2001, 05:54
Hallo Peter,

das kannst Du mit Like machen.
Beispiel:
DeinTextfeld Like "*" & DeinFormularfeld & "*"

Peter Hoefelmeyer
21.09.2001, 10:55
Habs mal ausprobiert , aber er zeigt mir entweder garnichts mehr an oder immer noch alle datensätze. habe folgende Syntax eingegeben.

docmd.applyfilter , forms!scanzeige!call1 Like "*" & Forms!scanzeige!suchkriterium & "*"

Ich habe mal versucht nach alten Beiträgen hier im Forum zu stöbern, aber irgendwie komme ich nicht weiter. Wäre schön, wenn mir nochmal jemand helfende Hinweise geben kann.

Gruß Peter

------------------
PHoe

Anne Berg
21.09.2001, 11:01
Die Bedingung soll das Abfrageergebnis/die Tabelle filtern, an die das Formular gebunden ist, muß sich also auf deren Felder beziehen.
Also: docmd.applyfilter , call1 Like "*" & Forms!scanzeige!suchkriterium & "*"
wenn call1 in der Feldliste steht.

Es könnte evtl. auch nötig sein, den Filter zu aktivieren (Me.FilterOn = True), glaube ich aber eher nicht.

MarioR
21.09.2001, 11:20
Hallo Peter,

also wenn call1 das Feld in Deiner Tabelle ist, so muss die Syntax so aussehen:
DoCmd.ApplyFilter , "[call1] Like '*" & Forms!scanzeige!suchkriterium & "*'"

oder wenn Du das im Formular scananzeige ausführst (z.B. auf Knopfdruck) geht auch:
DoCmd.ApplyFilter , "[call1] Like '*" & Me.suchkriterium & "*'"

Peter Hoefelmeyer
21.09.2001, 12:25
Herzlichen Dank - Nun habe ich daraufhin einen
Laufzeitfehler 13:Typen unverträglich

die Weitere Hilfe bringt mir leider auch nichts. Beide Felder sind doch Textfelder ???

Wo könnte jetzt noch der Knackpunkt stecken ?

Anne Berg
21.09.2001, 12:31
Welche 'beiden' Textfelder meinst Du? Ein Textfeld ist ein Formular-Steuerelement. Es kann (fast) alle Datentypen beinhalten. Ausschlaggebend ist der Datentyp des Tabellenfeldes. Davon hängt es ab, ob Du den Vergleichsstring in Hochkommata setzen mußt oder nicht oder als Datum formatieren...

hth

Peter Hoefelmeyer
21.09.2001, 13:11
Das Feld call1 ist in der original Tabelle, also in der Feldliste und es ist vom Datentyp her Text.
@Anne, könntest Du mir nochmal die Syntax aufschreiben. Ich habe jetzt hin und her probiert und werde immer verwirrter und weiß garnicht mehr was ich probiert habe, was nicht. Das das Problem auch immer in solchen Details stecken muss :-)

Anne Berg
21.09.2001, 13:31
Mario hat das eigentlich schon sehr schön aufgezeigt. Beachte, daß der String in Gänsefüßchen gesetzt werden muß - nicht wie bei meinem Beispiel. Ich hatte das vergessen und einfach von Dir abgeschrieben.

Peter Hoefelmeyer
21.09.2001, 14:02
ich habs !! Danke für die Geduld.

Hatte das mit dem Hochkomma nicht so gerafft.

Gruß Peter