Hola Claudia:
Como es la primera vez que hago algo parecido a lo que preguntas, pues estoy hasta las narices de ver la ventana de mensajes de error de Access.
Pero al final lo he conseguido de la siguiente manera:
-Primero : Hay que guardar el valor del CampoId
En el evento "Al activar registro " del formulario1, y en un campo obligatorio del mismo formulario, en el evento "después de actualizar" pon:
If Not IsNull(Me.CampoId) Then
Me.Parent.Tag = Me.CampoId
End if
Con formulario1, me refiero al formulario que cargas en el subformulario(Secundario).
El valor del CampoId queda almacenado en la propiedad "InformaciónAdicional" del formulario principal.
-Segundo: Establecer el origen de datos del formulario2.
En la ficha datos del formulario2, en la propiedad origen de los datos, pinchamos en los tres puntitos para accededer al diseño de la consulta. Arrastramos al diseño los campos que necesitemos, y en la fila criterios del CampoId ponemos:
Forms!NombreFormularioPrincipal.InformaciónAdicional
(no te olvides del acento).
Los eventos de los botones del formulario principal quedan igual:
If Me.Secundario.SourceObject <> "formulario2" Then
Me.Secundario:SourceObject = "formulario2"
End If
Parece que cuando se carga un subformulario de esta forma, no se puede acceder a sus campos, etc.., porque el origen del subformulario(Secundario) no es la Tabla o Consulta origen del formulario que cargamos, sino el propio objeto formulario.
Por lo menos eso me ha parecido a mí.(No se mucho de VBA).
En fín, creo que es sencillo y no tendrás problemas.
Un Saludo