Mittels eines ungebundenen Textfeld (txtSucheStyle) möchte ich Daten aus dem Detailbereich filtern.
Mit nachstehendem Code klappt eigentlich alles wunderbar, jedoch bei der Konstellation, dass es keine Übereinstimmung zwischen zwischen dem Suchfeld txtSucheStyle und dem Detailbereich gibt, erhalte ich die Fehlermeldung 2185 ("Sie können auf die Eigenschaften oder Methoden eines Steuerelements nur verweisen, wenn das Steuerelement den Fokus hat).
Beim Debuggen markiert er dann die Zeile "Me!txtSucheStyle.SelStart = intStart" in gelb.
Muss noch dazu sagen, dass ich den nachstehenden Code aus einer Beispiel-Anwendung kopiert habe und nur den Namen des Suchfeldes geändert habe.
Hat jemand einen Tip für mich? Vielen Dank im Voraus.
Private Sub txtSucheStyle_Change()
Dim strFilter As String
Dim intStart As Integer
intStart = Me!txtSucheStyle.SelStart
If Not Len(Me!txtSucheStyle.Text) = 0 Then
strFilter = "Style LIKE '" & Me!txtSucheStyle.Text & "*'"
Me.Filter = strFilter
Me.FilterOn = True
Me!txtSucheStyle.SelStart = intStart
Else
Me.Filter = ""
Me.FilterOn = False
Me!txtSucheStyle.SetFocus
End If
End Sub
Hallo,
meine bescheidene Meinung ist, dass du den Code in ein anderes Event kopiert hast. Im change-Event ist für selstart (und sellength, was hier komplett fehlt) schon zu spät.
Private Sub txtSucheStyle_Change()
Dim strFilter As String
' Dim intStart As Integer
' intStart = Me!txtSucheStyle.SelStart
If Not Len(Me!txtSucheStyle.Text) = 0 Then
strFilter = "Style LIKE '" & Me!txtSucheStyle.Text & "*'"
Me.Filter = strFilter
Me.FilterOn = True
' Me!txtSucheStyle.SelStart = intStart
Else
Me.Filter = ""
Me.FilterOn = False
' Me!txtSucheStyle.SetFocus
End If
Me!txtSucheStyle.SetFocus
End Sub
Wahrscheinlich wird durch die Zuweisung
Me.FilterOn = True/False
ein Event-Kaskade ausgelöst, die den Fokus (z.B. im current-event) auf ein anderes Feld setzt.
Deshalb könnte es auch klappen, wenn du unmittelbar danach
Me!txtSucheStyle.SetFocus
einfügst (so wie im else-Zweig) - oder eben nach end if.
"selstart" ist im Code wohl übrig geblieben, weil der Autor erreichen wollte, das auch Teile des Feldes in den Suchstring eingesetzt werden können. Ob das allerdings im change-event gemacht werden kann, ist fraglich... Ich kenne ein selectionchange-event nur im Form-Kontext und habe damit keine Erfahrung.
lg
crystal
Hallo!
Ist das Steuerelement für de Suchtext im Detailbereich des Formulars?
Dieser ist nämlich nicht verfügbar, wenn es keinen Datensatz im Formular gibt und ein Anfügen nicht möglich/erlaubt ist.
mfg
Josef
@ Josef P.: Ja, das Steuerelement für den Suchtext befindet sich im Detailbereich. Soll ich dieses mal in den Formularkopf verschieben?