Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: asiat am März 14, 2011, 11:30:59

Titel: Filter Problem
Beitrag von: asiat am März 14, 2011, 11:30:59
Hallo,

Ich habe eine kleine DB wo erstmal sonst nichts ist außer einem Filter der nicht so richtig geht.
Wenn ich in einen der Felder was reinschreibe dann wird der Unterformular gefiltert aber wenn bei einem Datensatz PLZ fehlt dann geht der filter nicht

(http://s7.directupload.net/images/110314/temp/atcrurcw.png) (http://s7.directupload.net/file/d/2463/atcrurcw_png.htm)

im Anhang meine DB

[Anhang gelöscht durch Administrator]
Titel: Re: Filter Problem
Beitrag von: Hondo am März 14, 2011, 12:59:23
Hallo,
deine Logik ist überflüssig.
Anstatt alle nicht ausgewählten Felder mit like * zu suchen solltest du nur die ausgewählten suchen.

Wenn man sucht:
Ort = egal, Strasse = Egal, Name = Müller, dann lässt sich diese Logik gemäß der Logikgesetze wie folgt vereinfachen:
Name = Müller

Deine Prozedur sollte also wie folgt aussehen:
Public Function trefferliste(feldname As String)
    Dim s As String
    Dim t As String

    s = s & t & feldname & " LIKE '*" & Form_frm_eingabe(feldname).text & "*'"
    t = " AND "
    Forms!frm_Eingabe!Unterformular.Form.Filter = s
    Forms!frm_Eingabe!Unterformular.Form.FilterOn = True
End Function
Andreas
Titel: Re: Filter Problem
Beitrag von: DF6GL am März 14, 2011, 13:00:02
Hallo,

änder mal so ab:


If feldname = CStr(felder(a)) Then
   s = s & t & " nz(" & felder(a) & ",'') " & " LIKE '*" & Form_frm_eingabe(CStr(felder(a))).text & "*'"
Else
   s = s & t & " nz(" & felder(a) & ",'') " & " LIKE '*" & Form_frm_eingabe(CStr(felder(a))) & "*'"
End If
Titel: Re: Filter Problem
Beitrag von: asiat am März 14, 2011, 13:13:10
Danke DF6GL,
funktioniert jetzt gut, nur warum...wieso macht die nz() da abhilfe ?

Hallo Hondo,
die Felder sollen von einander abhängig sein.
wenn ich Name: "Thomas" eingabe und später im Feld Ort: "Berlin" eingebe dann möchte ich Alle mit namen Thomas die in Berlin wohnen anzeigen lassen was jetzt dank DF6GL möglich ist.
Titel: Re: Filter Problem
Beitrag von: DF6GL am März 14, 2011, 13:21:25
HAllo,

mit Like kannst Du keine NULL-Werte filtern, also wandeln wir die NULL-Werte in Leerstrings um..
Titel: Re: Filter Problem
Beitrag von: asiat am März 14, 2011, 13:30:47
Zitatmit Like kannst Du keine NULL-Werte filtern, also wandeln wir die NULL-Werte in Leerstrings um..

achsooooooooo :) stimmt PLZ is ja bei mir Log Integer.

Danke euch allen
Titel: Re: Filter Problem
Beitrag von: DF6GL am März 14, 2011, 13:40:54
Hallo,


PLZ als Long Integer??  Ändere das gleich mal in Text.


Mit Like kannst Du nur Text fltern.
Für Datums-Vergleiche mußt Du Dich an das SQL-Datumsformat (ISO- oder USA-Format in Access) halten.


Ingesamt muß ich Andreas beipflichten, dass solche Suchfunktionen eher nicht zielführend sind..
Titel: Re: Filter Problem
Beitrag von: asiat am März 14, 2011, 14:21:15
ZitatMit Like kannst Du nur Text fltern.

und wieso funktioniert das bei mir ?

mit Datum geht es auch.

und der Filter soll mehr als eingabehilfe dienen, vielleicht hat man die Person schon.