Code Snippet "VBA Access"
Mit Kombinationsfeld einen Filter für ein Formular setzen
cboAuswahlProjekt ist das Kombinationsfeld, projektnr ist ein Fremdschlüssel der Tabelle
'Variante Ereignisprozedur
Private Sub cboAuswahlProjekt_AfterUpdate()
If Me![cboAuswahlProjekt] <> "*" Then
Me.Filter = "projektnr = " & str(Me![cboAuswahlProjekt]) 'Tabellenfeld = Kombinationsfeld setzen
Me.FilterOn = True
Else
Me.Filter = ""
Me.FilterOn = False
End If
End Sub
'Variante allgemeine Prozedur
'Achtung, diese Function ist nicht allgemein verwendbar, sondern nur
'im Formular frm_a_infos, da sie abhängig von ganz spezifischen Steuerelementen
'einen Formularfilter setzt
'Aufruf anstelle Eventhandler in Form, z.B. in frm_codeexamples
Public Function funFrm_a_infosFiltern(ByRef objFrm As Form)
Dim strFilter
If objFrm![cboAuswahlProjekt] <> "*" Then
'Beide Filter gesetzt
If objFrm![txtFiltertext] <> "" Then
objFrm.Filter = "projektnr = " & str(objFrm![cboAuswahlProjekt]) & _
" AND text LIKE '*" & objFrm![txtFiltertext] & "*'"
'Nur projektnr gesetzt
Else
objFrm.Filter = "projektnr = " & str(objFrm![cboAuswahlProjekt])
End If
objFrm.FilterOn = True
Else
'Nur Suchtext gesetzt
If objFrm![txtFiltertext] <> "" Then
strFilter = "tbl_a_infos.text Like '*" & objFrm![txtFiltertext] & "*'"
objFrm.Filter = strFilter
objFrm.FilterOn = True
Else
objFrm.Filter = ""
objFrm.FilterOn = False
End If
End If
funFrm_a_infosFiltern = True
End Function