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