ms-access - formulario - cuadros combinados en cascada excel
¿Cómo se filtra un subformulario de acceso con varios cuadros combinados en el formulario? (1)
Tengo varios cuadros combinados en mi formulario (acct_nbr, type, team_aud). Estoy buscando una forma de filtrar el subformulario (como una hoja de datos) en función de la selección de cada cuadro combinado. Si no se utiliza un cuadro combinado en el filtro, los datos del subformulario simplemente se filtran en los otros dos cuadros combinados.
Esto es lo que tengo hasta ahora:
Private Sub cboAccountFilter_AfterUpdate()
Call FilterSubform
End Sub
Private Sub cboTypeFilter_AfterUpdate()
Call FilterSubform
End Sub
Private Sub txtTeamAuditorFilter_AfterUpdate()
Call FilterSubform
End Sub
Private Sub FilterSubform()
Dim strWhere As String
If Nz(Me.cboAccountFilter, "") <> "" Then
strWhere = strWhere & "[acct_nbr] = ''" & Me.cboAccountFilter & " '' AND "
End If
If Nz(Me.cboTypeFilter, "") <> "" Then
strWhere = strWhere & "[Type] = ''" & Me.cboTypeFilter & " '' AND "
End If
If Nz(Me.txtTeamAuditorFilter, "") <> "" Then
strWhere = strWhere & "[team_aud] = ''" & Me.txtTeamAuditorFilter & " '' AND "
End If
If strWhere <> "" Then
strWhere = Left(strWhere, Len(strWhere) - 5)
Me.fsubStatsDashPrimarySix.Form.Filter = strWhere
Me.fsubStatsDashPrimarySix.Form.FilterOn = True
Else
Me.fsubStatsDashPrimarySix.Form.Filter = ""
Me.fsubStatsDashPrimarySix.Form.FilterOn = False
End If
End Sub
No recibo un error cuando hago clic en uno de los cuadros combinados, pero se filtran todos los datos.
Cambia tus filtros a esto:
If Nz(Me.cboAccountFilter, "") <> "" Then
strWhere = strWhere & "[acct_nbr] = ''" & Trim(Me.cboAccountFilter) & "'' AND "
End If
If Nz(Me.cboTypeFilter, "") <> "" Then
strWhere = strWhere & "[Type] = ''" & Trim(Me.cboTypeFilter) & "'' AND "
End If
If Nz(Me.txtTeamAuditorFilter, "") <> "" Then
strWhere = strWhere & "[team_aud] = ''" & Trim(Me.txtTeamAuditorFilter) & "'' AND "
End If
Editar:
Según su comentario, creo que sería:
strWhere = strWhere & "[team_aud] LIKE *''" & Trim(Me.txtTeamAuditorFilter) & "''* AND "
(Intenté dejar eso como un comentario, pero los asteriscos se interpretaron como letra cursiva debido al lenguaje de marcado de SO).