Te explico cómo hacer lo que comentas. Voy a utilizar los siguientes nombres:
SubfrmDatos -> Será el nombre del subformulario
[codigo] -> Será el nombre del campo donde digitas el valor XXX
XXX -> Valor de condición
Evidentemente tú tendrás que cambiar estos nombres por los que tú tengas en tu BD.
Vamonossssss...
1.- Abres tu formulario en vista diseño. Sacas sus propiedades y, en la pestaña Eventos, haces click sobre el botón de puntos suspensivos del evento "Al activar registro" y le dices que quieres generar código. Se te abrirá el VBE con dos líneas por defecto (Private Sub... y End Sub). Deja esas líneas que te salen sin tocar y en medio de ellas escribes lo siguiente:
---
Private Sub...
Me.[subfrmDatos].Visible = False
If Me.[codigo].Value=XXX Then
Me.[subfrmDatos].Visible = True
End If
End Sub
---
Con este código lo que consigues es que si vas navegando por los registros se te muestre sólo el subformulario en aquellos que cumplan la condición.
Vamos ahora con la introducción de un nuevo registro.
2.- Sacas las propiedades del campo [codigo] y te vas a la pestaña Eventos. Seleccionas el evento "Después de actualizar" y le generas el siguiente código:
---
Private Sub...
Dim vCod as Variant
vCod=Me.[codigo].Value
If IsNull(vCod) Then Exit Sub
If vCod=XXX Then
Me.[subfrmDatos].Visible = True
Else
Me.[subfrmDatos].Visible = False
End If
End Sub
---
Y eso es todo. Te he escrito los códigos de cabeza y están sin testear. Si tienes algún problema me lo comentas y lo arreglamos.
Un saludo, y suerte!
https://www.sugarsync.com/pf/D274241_6928283_921514 ...
http://neckkito.eu5.org ...