Filtrar información de un subformulario

Tengo un formulario que contiene un Subformulario con 4 columnas; una tiene un nombre, tipo parámetros, parámetros y valor. Lo que necesito es filtrar por el campo nombre y que según el dato que seleccione en el campo nombre me cargue los datos asociados a este.

3 respuestas

Respuesta
2

Vamos a ver si me explico.

Es de suponer que el origen de registros del subformulario será una tabla o consulta. Vamos a suponer que la tabla o consulta se llama DetalleVenta. También vamos a suponer que la la tabla o consulta donde debe "buscar" se llama Productos, y que el combinado Nombre sólo tiene esa columna.

En las propiedades de ese combinado-Eventos-Después de actualizar con el generador crea un procedimiento de evento y entre Private Sub y End Sub escribe

[tipo parametros]=dlookup("tipo_parametros","productos","nombre='" & me.nombre & "'")

parametros=dlookup("parametros,"productos","nombre='" & me.nombre & "'")

datos=dlookup("datos","productos","nombre='" & me.nombre & "'")

Respuesta
2

Yo entiendo tu pregunta de otra forma: quieres filtrar el subformulario por el valor que pongas en un cuadro de texto del formulario.

Si es así, y tienes un cuadro de texto llamado txtNombre en el formulario, y tu subformulario se llama subFDatos, puedes hacerlo de varias formas:

1º/ Cambiando el origen de registros del subform, poniendo en el evento "después de actualizar" de txtNombre:

Me.subFDatos.Form.Recordsource="SELECT * FROM TuTabla WHERE Nombre='" & Me.txtNombre & "'"
Me. SubFDatos.Form. Requery

Donde TuTabla será la tabla que te guarda los datos que muestras en el subformulario.

2º/ Usando filtros en el subformulario, poniendo en el evento "después de actualizar" de txtNombre:

Me.subFDatos.Form.Filter="Nombre='" & Me.txtNombre & "'"
Me.subFDatos.Form.FilterOn=True

Cuando quieras volver a ver todos los registros:

1º/ Si usaste la primera opción, en un botón o donde quieras, le pones este código:

Me.FCompras.Form.Recordsource="TuTabla"

o esta otra:

Me.FCompras.Form.Recordsource="SELECT * FROM TuTabla"

2º/ Si usaste la segunda opción:

Me.subFDatos.Form.FilterOn=False

Un saludo.


Respuesta
1

Si la columna nombre es un combo box el origen de consulta debe incluir los demás campos y el origen de los datos utiliza Column(). Algo como =combonombre. Column(1) y así para los demás campos solo cambie el índice. Estos campos debe tener la propiedad bloqueados a Si

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas