Hallo Tinka,
schön, dass der Ansatz deine Wünsche getroffen hat. Hier noch ein paar Tipps zu deine weiteren Fragen. (Ich habe die zwei Kriterien in den letzten beiden If-Staements vertauscht, sorry.)
Ähnlichkeitssuche:
Da gibt es zwei Wege:
1. Der Anwender gibt z.B. "*straße" in das Suchfeld ein, dann brauchst du in dem betreffenden Krit-String das "=" nur durch ein "like" ersetzen. So kann der Anwender differenziert mit "*" und "?" nach beliebigen Zeichenkette suchen.
2. Für den Anwender ist das zu kopliziert, dann kannst du das im Krit-String selbst nachbilden mit : "...."Straße like '*" & Me!Straße & "*'"
Combobox und Checkbox:
Da hier nur eine Wertauswahl erlaubt ist, ist das kein Problem. Solltest du eine ListBox haben mit Mehrfachauswahl, geht das auch, wird nur ein wenig komplizierter.
Datumsangaben (falls du das mal brauchst)
Beim Datum gibt es ein Spezialfall, da musst du den krit-String folgendermaßen aufbauen:
krit = krit & IIf(krit = "", "", " AND ") & "Datumsfeld= #" & format(Me!Datum, "mm\/dd\/yyyy") & "#"
Das geht auch mit der between-Konstruktion für von-bis-Werte.
von-bis-Werte:
Falls der Anwender nicht beide Werte eingeben möchte, weil er nur einen kennt, kannst du das auch erschlagen mit einer folgenden Konstruktion:
If Not IsNull(Me!min_qm) And Not IsNull(Me!max_qm) Then
krit = krit & IIf(krit = "", "", " AND ") & "Gebäudegröße between " & me!min_qm & " AND " & me!max_qm
else
if Not IsNull(Me!min_qm) then
krit = krit & IIf(krit = "", "", " AND ") & "Gebäudegröße >= " & me!min_qm
end if
if Not IsNull(Me!max_qm) then
krit = krit & IIf(krit = "", "", " AND ") & "Gebäudegröße <= " & me!max_qm
end if
end if
Gruß
Ralf