Access-o-Mania

Access-Forum (Deutsch/German) => Access Programmierung => Thema gestartet von: CreatSi am Juli 20, 2012, 10:48:48

Titel: Mehrere Suchkriterien in einer Suche
Beitrag von: CreatSi am Juli 20, 2012, 10:48:48
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.
Titel: Re: Mehrere Suchkriterien in einer Suche
Beitrag von: Stapi am Juli 20, 2012, 17:13:05
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.
Titel: Re: Mehrere Suchkriterien in einer Suche
Beitrag von: CreatSi am Juli 23, 2012, 09:27:02
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.
Titel: Re: Mehrere Suchkriterien in einer Suche
Beitrag von: DF6GL am Juli 23, 2012, 11:03:23
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
Titel: Re: Mehrere Suchkriterien in einer Suche
Beitrag von: CreatSi am Juli 23, 2012, 11:56:54
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.