Filtrar subformulario desde cuadro combinado

En un formulario tengo tres listas desplegables con las cuales pretendo filtrar los registros del subformulario que también se encuentran dentro de dicho formulario. La idea es que estas tres listas desplegables creen un filtro sobre el campo Tipo_de_Incidente del subformulario, de tal manera que hale los registros que contengan cualquiera de los textos seleccionados en las diferentes listas.

Actualmente voy en esto y ahí quedé:

Dim sfiltro As String
Dim sfilt As String
Dim sfilter As String
Dim sfiltot As String

sfiltro = "[Tipo de Incidente] like'*" & Me.T & "*'"
sfilt = "[Tipo de Incidente] like'*" & Me.T1 & "*'"
sfilter = "[Tipo de Incidente] like'*" & Me.T2 & "*'"
sfiltot = sfiltro & " or " & sfilt & " or " & tfilter

Me.[Subformulario Tbl_Incidentes].Form.Filter = sfiltot
Me.[Subformulario_Tbl_Incidentes].Form.FilterOn = True

1 respuesta

Respuesta
1

¿Y dónde está el problema? ¿Te da algún error?...

En principio, y salvo un pequeño detalle que veo y luego comentaré, es proceso es correcto.

Me queda la duda, porque no sé si fue fallo al escribirlo aquí o realmente lo tienes así en tu BD, de si dejas un espacio entre el operador LIKE y la comilla simple. Si no lo haces, tienes que dejarlo.

Además, yo añadiría algún tipo de control por si no seleccionas algo en algún cuadro combinado.

Dim sfiltro As string
If Nz(Me.T,"")<>"" Then sfiltro = "[Tipo de Incidente] like '*" & Me.T & "*'"
If Nz(Me.T1,"")<>"" Then sfiltro = sfiltro & " OR [Tipo de Incidente] like '*" & Me.T1 & "*'"
If Nz(Me.T2,"")<>"" Then sfiltro = sfiltro & " OR [Tipo de Incidente] like '*" & Me.T2 & "*'"
If Left(sfiltro,3)=" OR" Then sfiltro=Right(sfiltro,len(sfiltro)-3)
Me.[Subformulario Tbl_Incidentes].Form.Filter = sfiltro
Me.[Subformulario_Tbl_Incidentes].Form.FilterOn = True

Un saludo.


Un nuevo foro de access, visítanos: http://nksvaccessolutions.com/Foro/ 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas