Por la imagen da la impresión de que son formularios independientes. De momento vamos a suponer que tengo una tabla Pedido como
En que el campo clave es FolioPedido y una tabla DetallePedido
Ambas están relacionadas por el campo FolioPedido en una relación UN Pedido-VARIOS DetallePedido. Y con ellas tengo hecho un formulario con subformulario, donde puedes ver que hay tres registros y un cuadro de texto llamado Buscar donde voy a escribir los FolioPedido que quiera. En el subformulario no sería necesario mostrar el control FolioPedido, pero lo dejo para que veas que coge el valor del formulario.
Si escribo( aunque sería más cómodo usar combinados) 2222
Y pulso Enter
Puedes ver que me deja sólo un registro, el que le he "pedido".
El código del evento Después de actualizar del cuadro de texto Buscar es
Private Sub Buscar_AfterUpdate()
Me.RecordSource = "Select * from pedido where foliopedido=" & Me.Buscar & ""
End Sub
Es decir, que el origen de registros del formulario sea aquel registro de la tabla Pedido es que su FolioPedido sea igual al que acabo de escribir en el cuadro de texto Buscar. Y como el subformulario está relacionado con el formulario por ese campo, también "me busca " los registros que coincidan con ese valor.
En el caso de que fueran independientes, al no saber si ya están abierto cuando quieres filtrar voy a suponer que sí. Entonces yo pondría en el evento Al hacer clic del cuadro de texto FolioPedido del formulario Pedido
If currentproject.allforms("detallepedido").isloaded then
forms!detallepedido.recordsource="select * from detallepedido where foliopedido=" & me.foliopedido & ""
end if
Es decir, que si el formulario DetallePedido está cargado, que sí lo está, porque es lo que hemos supuesto, que su origen de registro sean aquellos registros de la tabla DetallePedido en que su FolioPedido coincida con el valor de control donde acabas de hacer clic. Por el contrario, si no estuviera cargado, que estuviera sólo el formulario Pedido, podría trabajar con él sin problemas.