Hallo an alle,
hab ein Formular erstellt das alle Projekte anzeigt. In diesen formular ist ein textfeld enthalten das mir alle Daten dieser Tabelle filtert.
Funktioniert auch!
Nun würde ich aber gern ein Listenfeld in diesem formular anfügen das mir die gefilterten werte anzeigt so das ich nicht durch alle Datensätze klicken muss.
Die Daten werden mit Hilfe von einem modul entsprechend gefiltert.
Function SearchAllFieldsFilter(strTable As String, strSearch As String) As String
Dim rs As Recordset, intCnt As Integer
Dim strFilter As String, I As Integer
intCnt = 0
Set rs = CurrentDb.OpenRecordset(strTable)
rs.MoveFirst
With rs
For I = 0 To .Fields.Count - 1
If .Fields(I).Type = dbText Or .Fields(I).Type = dbMemo Then
intCnt = intCnt + 1
strFilter = strFilter & _
"[" & .Fields(I).Name & "] like '*" & _
strSearch & "*' or "
End If
Next I
End With
rs.Close
If intCnt > 0 Then
'letztes " or " wieder raus
strFilter = Left$(strFilter, Len(strFilter) - 4)
SearchAllFieldsFilter = strFilter
Else
SearchAllFieldsFilter = ""
End If
End Function
Und das ist der Code den ich für das Tetfeld verwende
Private Sub txtSearch_AfterUpdate()
Dim strSearch As String, strFilter As String
strSearch = Me.txtSearch
If strSearch = "*" Then
Me.Filter = ""
Me.FilterOn = False
Exit Sub
End If
strFilter = SearchAllFieldsFilter("tblProjekte", Me.txtSearch)
If strFilter <> "" Then
Me.Filter = strFilter
Me.FilterOn = True
End If
End Sub
Vieleicht könnte mir jemand bitte sagen was ich ändern soll damit das listenfeld mit dem namen lstProjekte auch gefiltert würde.
Vielen Dank
Albert