Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

Filter Problem

Begonnen von asiat, März 14, 2011, 11:30:59

⏪ vorheriges - nächstes ⏩

asiat

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



im Anhang meine DB

[Anhang gelöscht durch Administrator]

Hondo

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

DF6GL

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

asiat

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.

DF6GL

HAllo,

mit Like kannst Du keine NULL-Werte filtern, also wandeln wir die NULL-Werte in Leerstrings um..

asiat

#5
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

DF6GL

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..

asiat

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.