Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Mehrere Suchkriterien in einer Suche

Begonnen von CreatSi, Juli 20, 2012, 10:48:48

⏪ vorheriges - nächstes ⏩

CreatSi

Guten Morgen.

Ich habe mittels Formular das auf einer Abfrage basiert eine Suchfunktion erstellt aber diese funktioniert nicht so wie ich mir das vorstelle.

Ich habe dazu 3 Textfelder erstellt und einen Button der die Suche auslöst. Ich habe jedoch das Problem, dass meine Suchkriterien hintereinander abgefragt werden und so immer nur das letzte Suchkriterium bzw Suchfeld die Ergebnisse liefert und die beiden vorherigen "überschreibt". Ich möchte allerdings, dass jede Suche nur die Ergebnisse der Vorherigen als Suchdatenbank nimmt oder, falls das so nicht möglich ist, dass zumindest alle Suchkriterien erfüllt werden.

Mein Code sieht momentan so aus:

If Nz(Me!SearchTerm) <> "" Then
Me.Filter = "[Barcode] Like '*" & Me!SearchTerm & "*'" & _
"OR [PartnerName] Like '*" & Me!SearchTerm & "*'" & _
"OR [PartnerNr] Like '*" & Me!SearchTerm & "*'"
Me.FilterOn = True
If Me.RecordsetClone.RecordCount = 0 Then
Me.FilterOn = False
End If
End If

If Nz(Me!SearchTermContractType) <> "" Then
Me.Filter = "[ContractType] = '" & Me!SearchTermContractType & "'"
Me.FilterOn = True
If Me.RecordsetClone.RecordCount = 0 Then
Me.FilterOn = False
End If
End If

If Nz(Me!SearchTermCountry) <> "" Then
Me.Filter = "[Country] = '" & Me!SearchTermCountry & "'"
Me.FilterOn = True
If Me.RecordsetClone.RecordCount = 0 Then
Me.FilterOn = False
End If
End If

Vielen Dank vorab für die Hilfe.

Stapi

Hallo CreatSi

Willkommen hier im Forum.
So wie du den Code Aufgebaut hast wird auch nur eine Filterbedingung ausgeführt, wenn du dein Filter auf deine drei Textfelder ausführen möchtest muss die Filterbedingung zusammen gesetzt werden.

z.b.  für zwei Textfelder
Me.Filter = "(((ContractType) = '" & Me!SearchTermContractType & "'") and ((Country)= '" & Me!SearchTermCountry & "'))"
Oder
Dein Formular das ja auf eine Abfrage basiert wird über deine Textfelder als where Bedingung für die Abfrage beeinflußt.
Grüße aus dem schönen NRW
Stefan

CreatSi

Hallo Stapi

Ich habe versucht die Filterbedingungen so zusammen zu setzen wie du es mir gezeigt hast, allerdings funktioniert es nicht und ich bekommen die Fehlermeldung: "Compile Error, Expected: End of statement" und es wird folgende Klammer markiert:

  Me.Filter = "(([ContractType] = '" & Me!SearchTermContractType & "'") and ([Country]= '" & Me!SearchTermCountry & "'))"

Ich bin daher leider momentan etwas planlos und ich muss gestehen ich weiß nicht was du mit der where Bedingung gemeint hast.

DF6GL

Hallo,



lass mal die überfl.  Klammern weg und setz die Gänsefüße richtig:

Me.Filter = "[ContractType] = '" & Me!SearchTermContractType & "' and [Country]= '" & Me!SearchTermCountry & "'"

Me.FilterOn=true

CreatSi

Habs nach vielem Herumprobieren hingekriegt mit den Klammern und so und es funktioniert nun alles wie geplant.

Vielen Dank für die Hilfe, ohne die hätt ichs nicht geschafft.