Filtro en de subformulario desde campos independientes del formulario principal

Tengo un lío con un código que pretende filtrar los registros de un sub-formulario desde los valores de tres campos independientes del formulario principal; hasta ahora el código esta de la siguiente manera:

Dim sfilter As String
Dim sfiltro As String
Dim tfilter As String

sfilter = "Nombre LIKE'*" & Me.Nombre & "*'" (txt box)
sfiltro = "Proceso like'*" & Me.Proceso & "*'" (combobox)
tfilter = "Tipo like'*" & Me.Tipo & "*'" (combobox)

Me.[Subformulario Tbl_Proc_Alusud].Form.Filter = sfilter

Me funciona bien con un solo campo pero no he logrado darle la instrucción "AND" para que tome los valores de los tres campos y forme un solo filtro. O que de pronto vaya superando cada filtro hasta arrojar los registros que superen los tres valores.

2 respuestas

Respuesta
1

Oscar: Aunque me quedan dudas por la construcción de los filtros que ya tienes porque desconozco tus Objetos >>

Añade a lo que tienes otra Variable que puedes llamar FiltroTotal.

Dim FiltroTotal As String

FiltroTotal = sfilter & " AND " & sfiltro & " AND " & tfilter

y a partir de aquí:

Me.[Subformulario Tbl_Proc_Alusud].Form.Filter = FiltroTotal

Me.[Subformulario Tbl_Proc_Alusud].Form.FilterOn  = True

Debería de funcionarteSaludos y Feliz año >> Jacinto

Respuesta
1

Ya que vas a unir los tres filtros, supongamos que el subformulario está basado en la tabla o consulta y que tiene tres campos NombreA, NombreB, NombreC por los que vas a filtrar. Vamos a suponer que los cuadros de texto que tienes en el formulario son OpcionA, OpcionB, OpcionC.

Puedes poner unbotón de comando y en el evento Al hacer clic escribir

forms!nombredelformulario!nombredelsubformulario.form.recordsource="select * from TablaóConsultaorigendelsubform where nombrea=forms!nombredelform!opciona and nombreb=forms!nombredelform!opcionb and....."

Así el origen de registros del formulario serán aquellos de la tabla o consulta cuyos campo A, B, c coincidan con los cuadros de texto del formulario

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas