Wildcard für UFO-Filterung

Hallo,

ich filtere mein Unterformular durch ein ungebundenes Textfeld namens „Such“ und möchte dabei bestimmte Kriterien abfangen. Es funktioniert bisher alles, aber nur wenn ich den kompletten namen vom ort bzw des Firmennamens eingebe den ich suche. Darum würde ich gern bei „fina“ und „ort“ eine Wildcard/Platzhalter eingeben, aber mit Like bzw mit * habe ich es nicht hinbekommen - hat da jemand eine Idee?

Mein Code:

Private Sub Such_AfterUpdate()
Me.Painting = False
If IsNull(Me.Such) = True Then
Me!UFO1.Form.FilterOn = False

ElseIf IsNumeric(Me.Such) = False Then
Me!UFO1.Form.FilterOn = False
Me.UFO1.Form.Recordset.FindFirst „Ort = '“ & Me.Such & „’“

If Me.UFO1.Form.Recordset.NoMatch Then
Me.UFO1.Form.Recordset.FindFirst „fina = '“ & Me.Such & „’“

If Me.UFO1.Form.Recordset.NoMatch Then
MsgBox „Es wurde kein Eintrag gefunden“
Else
Me!UFO1.Form.Filter = „fina = '“ & Me.Such & „’“
Me!UFO1.Form.FilterOn = True
End If
Else
Me!UFO1.Form.Filter = „ort = '“ & Me.Such & „’“
Me!UFO1.Form.FilterOn = True
End If

ElseIf IsNumeric(Me.Such) = True Then
Me!UFO1.Form.FilterOn = False
Me!UFO1.Form.Filter = "KDN = " & Me.Such
Me!UFO1.Form.FilterOn = True

ElseIf Me.UFO1.Form.Recordset.NoMatch Then
MsgBox „Es wurde kein Eintrag gefunden“
End If

Set Me.SubFrame.Form.Recordset = Me.UFO1.Form.Recordset
Me.Painting = True
End Sub

MfG
Philipp K.

Hallo

WIE hast Du es denn probiert?

Me!UFO1.Form.Filter = „ort like '*“ & Me!Such & „*’“

PS: was ist denn nun mit dem Bewerber-Form?

Viele Grüße vom Bodensee
Franz , DF6GL

PS: Feedback erwünscht!

Hi Franz,

ich habe Me!UFO1.Form.Filter = „ort like '*“ & Me!Such & „*’“ schon probiert, genau wie:
Me!UFO1.Form.Filter = „ort like '“ & Me!Such & „’“
Me!UFO1.Form.Filter = „ort = '*“ & Me!Such & „*’“
Me!UFO1.Form.Filter = „ort = '“ & Me!Such & „’“

Aber er gibt dann trotzdem „Es wurden keine Eintrag gefunden“ zurück.

Die Bewerber-Stellen-Zuordnung haut noch nicht hin, ich werd da die VBA-Methode ausprobieren mit einer extra Tabelle und dann die DS davon in die Zwischentabelle anfügen. Mal schaun wie ich damit zurechtkommen werde :wink:

MfG
Philipp K.

Hallo,

ein Sternchen kann( wenn wir von Access als DB-System reden) nur in Verbindung mit dem LIKE-Operator verwendet werden.

Wenn es nicht geht, ist entweder Dein Code(ablauf) falsch, und/oder es hapert am fundamentalen Aufbau der Tabellen/Formulare, was das andere ungelöste Problem festigt.

Setz doch mal einen Haltepunkt an den Codeanfang der Prozedur und fahre mit Einzelschritt durch. Dabei kontrollierst Du bei jedem Schritt den Inhalt der einzelnen Variablen auf den erwarteten Wert…

Gruß
Franz

Es gäbe auch die Möglichkeit, mir die Db an df6gl (ätsch) gmx Punkt de zu schicken…

Hallo Franz,

also ich habe es jetzt mitEinzelschritten gemacht. Wenn ich jetzt also angenommen „opel“ eingebe dann springt der meiner meinung nach falsch.

’ Anfangsteil weggelassen
Me.UFO1.Form.RecordsetClone.FindFirst „Ort = '“ & Me.Such & „’“
’ also schau ob der Suchbegriff unter den Orten zu finden ist
’ Wildcard hier mit benutzen

If Me.UFO1.Form.Recordset.NoMatch Then
’ wenn kein Ort vorhanden ist mit dem selben Inhalt wie das Suchfeld

’ An dieser Stelle springt aber nicht wie erwartet zur nächsten Zeile 'sondern zum Else, dass die Bedingung abfangen sollte, dass ein Ort 'mit demselben Namen wie der Inhalt des Suchfeldes vorhanden ist.

Me.UFO1.Form.RecordsetClone.FindFirst „fina = '“ & Me.Such & „’“
’ dann suche nach einem Firmennamen mit dem Inhalt des Suchfeldes

’ Code weggelassen
Me!UFO1.Form.Filter = „fina = '“ & Me.Such & „’“
’ Hier soll die Wildcard mit zum Einsatz kommen
Me!UFO1.Form.FilterOn = True
End If
’ restlichen Code weggelassen

MfG
Philipp K.

Hi Franz,

also das Problem scheint zu sein, dass die DB denkt, dass wenn ich z.B. „opel“ eingebe, dass es ein Ort ist…

Me.UFO1.Form.RecordsetClone.FindFirst „Ort = '“ & Me.Such & „’“
If Me.UFO1.Form.Recordset.NoMatch Then
Me.UFO1.Form.RecordsetClone.FindFirst „fina = '“ & Me.Such & „’“
{Code weggelassen}
Else
Me!UFO1.Form.Filter = „ort = '“ & Me.Such & „’“
Me!UFO1.Form.FilterOn = True

Hier scheint das No.Match aber nicht zu funktionieren… er springt nämlich zum Else runter anstatt den Code unter der NoMatch-Zeile auszuführen.
Funktioniert die FindFirst-methode auch mit Wildcards oder geht das nur beim Filter?

MfG
Philipp K.

Hallo,

schreib mal:

If Me.UFO1.Form.Recordset Clone.NoMatch Then

Hallo Franz,

der springt immernoch zum Else runter =(

MfG
Philipp K.

Hallo,

naja, dann sind meine Hilfe-Möglichkeiten auf diesem Weg von Foren-Beiträgen erschöpft…

Hi Franz,

habs nun mit einem Universal-Suchfeld gelassen und jetzt für jedes Feld ein eigenes Suchfeld gemacht. Ist zwar umständlicher für den User, aber was besseres ist mir halt nicht so schnell gelungen^^

Die Probleme die dabei durch die Filterung aufgetreten sind in Bezug auf andere Unterformulare hab ich auch schon gelöst und ich werd mich wahrscheinlich wieder hier melden wenns darum geht, Daten von Access in Word-Tabellen dynamisch zu übertragen oder bei der Synchronisierung mit Outlook :wink:

MfG
Philipp K.