xpilzx1
Goto Top

Mehrer Filter miteinander Verbinden

Hallo @ all,

da mir hier schon wirklich gut geholfen wurde, will ich mein neues Problem auch hier veröffentlichen in der Hoffnung das mir jemand den richtigen Denkanstoß geben kann.
ich habe ein Unterformular, für das ich in einem Modul eine Privat Function geschrieben hab (mit Hilfe dieses Forums funktioniert diese auch tadellos). dort filtere ich anhand eines Textfeldes mein Formular. weil diese Funktion in verschiedenen Formularen verwendet werden soll arbeitet sie mit einem Objekt als Formularnamen.

Hier ist mal der Code:
Public Function PFCT_FILTER(PVAR_SUCHFELD_1 As String, PVAR_FORMFELD_1 As String) As String
Dim AktSteuerelement As Control
Set AktSteuerelement = Screen.ActiveControl
On Error GoTo FEHLER
Call setFormularObjekt
If Nz(AbsForm(PVAR_SUCHFELD_1).Text) <> "" Then  
AbsForm.Filter = PVAR_FORMFELD_1 & " Like '" & AbsForm(PVAR_SUCHFELD_1).Text & "*'"  
AbsForm.FilterOn = True
Else
AbsForm.FilterOn = False
Exit Function
End If
FEHLER: If AbsForm.RecordsetClone.RecordCount = 0 Then
AbsForm.Filter = ""  
AktSteuerelement.SetFocus
AktSteuerelement.SelStart = Len(AbsForm(PVAR_SUCHFELD_1).Text)
MsgBox "Keine Übereinstimung gefunden in " & AktSteuerelement.NAME  
Exit Function
End If
AbsForm(PVAR_SUCHFELD_1).SelStart = Len(AbsForm(PVAR_SUCHFELD_1).Text)
End Function
nun will ich diesen filter so erweitern das in mehreren Spalten gefiltert werden kann z.B. erst in spalte NAME --> alle namen mit A werden angezeigt, und dann in spalte VORNAME alle Vornamen mit A aus denen die Name mit A haben.
mach ich das ganze in einem SUB, ( Beispiel:Me.Filter = "VORNAME Like '" & Me!FILTER_VORNAME.Text & "*' And NAME Like '" & Me!FILTER_NAME & "*'")
klappt das auch wunderbar, aber binde ich das in meine Funktion mit ein ( Beispiel: AbsForm.Filter = PVAR_FORMFELD_1 & " Like '" & AbsForm(PVAR_SUCHFELD_1).Text & "*' And PVAR_FORMFELD_2 & " Like '" & AbsForm(PVAR_SUCHFELD_2).Text & "*'")
wird mir der erste Hochstrich nach And PVAR_FORMFELD_2 & " Like markiert, die ganze Zeile ist Rot und es erscheint eine Meldung "Erwarte Ausdruck"
kann mir jemand weiterhelfen? bin noch verdammt unerfahren was VBA angeht.

vielen dank schon mal im voraus.
grüsse Thomas

Content-Key: 146393

Url: https://administrator.de/contentid/146393

Printed on: April 26, 2024 at 13:04 o'clock

Mitglied: 76109
76109 Jul 07, 2010 at 07:33:17 (UTC)
Goto Top
Hallo xpilzx1!

Versuchs mal damit:
& "*' And " & PVAR_FORMFELD_2 &

Gruß Dieter
Member: thaenhusen
thaenhusen Jul 07, 2010 at 09:29:42 (UTC)
Goto Top
Moin.

AbsForm.Filter = PVAR_FORMFELD_1 & " Like '" & AbsForm(PVAR_SUCHFELD_1).Text & "*' And PVAR_FORMFELD_2 & " Like '" & AbsForm(PVAR_SUCHFELD_2).Text & "*'"

Versuch mal:

AbsForm.Filter = PVAR_FORMFELD_1 & " Like '" & AbsForm(PVAR_SUCHFELD_1).Text & "*' And " & PVAR_FORMFELD_2 & " Like '" & AbsForm(PVAR_SUCHFELD_2).Text & "*'"

Nach dem And fehlte das " &

HTH
MK
Member: xpilzx1
xpilzx1 Jul 07, 2010 at 09:41:58 (UTC)
Goto Top
danke euch beiden, das problem ist damit behoben, kann den code so speichern und aufrufen, nur ist nun AbsFormFilter = "" , also leer? wie kann das den sein?

mach ich zum testen :
AbsForm.Filter = PVAR_FORMFELD_1 & " Like '" & AbsForm(PVAR_SUCHFELD_1).Text & "*' And " & PVAR_FORMFELD_1 & " Like '" & AbsForm(PVAR_SUCHFELD_1)Text & "*'"
dann ist es richtig, dann ist AbsFormFilter = "VORNAME Like 'J'" And "VORNAME Like 'J'"

was hab ich den da schon wieder falsch gemacht?

kann es sein das es an der Position der Cursors liegt?
Member: thaenhusen
thaenhusen Jul 07, 2010 at 10:33:01 (UTC)
Goto Top
Moin.

Du musst PVAR_FORMFELD_2 und PVAR_SUCHFELD_2 auch in die Funktion stecken...

Public Function PFCT_FILTER(PVAR_SUCHFELD_1 As String, PVAR_FORMFELD_1 As String, PVAR_SUCHFELD_2 As String, PVAR_FORMFELD_2 As String) As String

HTH
MK
Member: xpilzx1
xpilzx1 Jul 08, 2010 at 06:36:20 (UTC)
Goto Top
ja das habe ich gemacht, daran liegt es nicht, ich komm einfach nicht weiter an der stelle. aber ich habe so das gefühl als könne mann dieses Objekt AbsForm nicht mit mehreren feldern verwenden. ist das möglich?
Member: xpilzx1
xpilzx1 Jul 08, 2010 at 06:49:10 (UTC)
Goto Top
ich hab mal zum ausprobieren folgendes gemacht: test = AbsForm(Suchfeld2).Text Ergebnis Laufzeitfehler 2185 sie können nur dann auswerten wenn das Steuerelement den Focus hat. ABER, test = AbsForm(Suchfeld1) Ergebnis: genau das was der Inhalt der Variable ist, also in diesem fall "tho" weil ich nach namen mit tho filtern will.
Member: thaenhusen
thaenhusen Jul 08, 2010 at 14:57:27 (UTC)
Goto Top
Moin.

Den Fehler kann ich so nicht nachvollziehen.
Dann solltest Du aber vieleicht mit Public Variablen arbeiten.

Ansonsten schick mir mal Deine aktuelle mdb zu, dann schaue ich mal.

Schöne Grüße
MK