Hej! Skippa SetFocus. Behövs inte!Filtrerar med rowsorce
Jag har en listruta i ett formulär med diverse fakta. Till denna lista vill jag skapa ett snabbfilter med hjälp av en textbox. Vid varje tangenttryckning i textboxen ska poster i listrutan flitreras fram som matchar den inskrivna texten, fortsatt inmatning av text ska också vara möjlig.
Har skrivit förlande kod:
Private Sub txbSnabbfilter_KeyPress
With Me.ListrutaFakta
.RowSource = "SELECT DISTINCT ... "
Requery
End With
'Aktiverar txbSnabbfilter och ställer mig sist i texten
Me.txbSnabbfilter.SetFocus
txbSnabbfilter.SelStart = Len(txbSnabbfilter.Text)
End Sub
Mitt problem:
När jag skriver t ex "Kalle" fungerar filtreringen och inmatning bra. Men när jag skriver Kalle och trycker på mellanslag tas mellanslaget bort. Så om jag vill söka efter "Kalle A" bli min inmatade text "KalleA".
Skulle vara tacksam om någon hade ett förslag på lösning. Förmodligen måste jag ändra på koden då jag aktiverar txbSnabbfilter och ställer mig sist i texten.Sv: Filtrerar med rowsorce
Jag skulle använda en statisk parameterfråga:
<code>
Public Property Get MittFilter() As String
If Me.ActiveControl Is Me.Text2 Then
MittFilter = Text2.Text
Else
MittFilter = Text2.Value
End If
End Property
Private Sub Form_Load()
Listruta4.ColumnCount = 2
Listruta4.ColumnWidths = "0"
Listruta4.RowSource = "PARAMETERS MittFilter Text ( 255 );" & vbCrLf & _
"SELECT Customers.CustomerID, Customers.ContactName" & vbCrLf & _
"FROM Customers" & vbCrLf & _
"WHERE Customers.ContactName LIKE MittFilter & '*'" & vbCrLf & _
"ORDER BY Customers.ContactName;"
End Sub
Private Sub Text2_Change()
Listruta4.Requery
End Sub
</code>