Como bien te dice Icue, para cambiar el origen de un formulario has de modificar su propiedad RecordSource.
Esto lo puedes hacer desde el propio formulario "FConsultasActual", con
Me.Recordsource="TAltas"
Me.Recorsource="SELECT * FROM TAltas"
Me.Recorsource="SELECT Campo1,Campo2,.... FROM TAltas WHERE..."
O cualquier otro origen de datos válido.
También lo puedes hacer desde el formulario que abre "FConsultasActual":
Forms("FConsultasActual").Recordsource="TAltas"
...
Si quieres que los cambios sean "permanentes", es decir, que siempre que abras el formulario "FConsultasActual" tenga el último origen de datos, has de cambiar el enfoque, y desde el formulario que lo llama primero lo abres en vista diseño (y oculto), le modificas la propiedad, guardas los cambios y lo abres normalmente:
DoCmd. OpenForm "FConsultasActual", acDesign,,,, acHidden
Forms("FConsultasActual").Recordsource="TAltas"
DoCmd. Close acForm, "FConsultasActual", acSaveYes
DoCmd. OpenForm "FConsultasActual"
Y para terminar, permíteme señalarte un par de "errores" que veo en tu código, y que me llevan a pensar que tu afirmación de "todo me funciona bien" no es del todo cierta... porque si tu control no tiene valor, tendrás un error (y este es el motivo por el que te respondo, porque si piensas que tu código es correcto, cometerás el mismo error en el futuro y te volverás loco pensando "¿por qué ahora esto no me funciona si antes sí lo hacía?").
Te explico:
1º/ Declaras la variable Matri como Variant.
En principio ningún problema, aunque yo suelo escapar siempre que puedo de este tipo de variables.
2º/ Cuando le asignas el valor a la variable usas Nz() y le pasas como valor en caso de nulo una cadena vacía ("")
Aquí ya hay para comentar: una variable de tipo Variant admite sin problemas valores Nulos, por lo que puedes hacer la asignación directa, sin necesidad de usar Nz (Matri=Me.ID). Por otro lado, todo parece que ID es un campo numérico, y tu le estás dando a la variable un valor de texto con Nz: la cadena vacía ""
3º/ La comparación "por si no tiene valor" (If Matri = 0 Then Exit Sub) no se cumplirá nunca.
Primero, porque Matri si el control no tiene valor nunca será 0, sino "", que no es lo mismo
Segundo, porque si ID es un autonumérico, empezará en 1, y por tanto nunca tendrá valor 0.
Tal como lo tienes la comparación tendría que ser If Matri = "" Then Exit Sub, o bien, si aplicas lo que te decía en el punto anterior: If IsNull(Matri)Then Exit Sub.
Como te decía, tal como lo tienes ahora, si ID es nulo, la variable Matri tendrá el valor "", no te saltará la comprobación de "no hay valor", con lo que no te saldrá de la rutina, y cuando intente abrir el formulario filtrado => ¡Error al canto!
Yo hubiera escrito así el código:
Dim Matri As Long
Matri = Nz(ID.Value, -1)
'Esto es por si el control no tuviera valor
If Matri = -1 Then Exit Sub
DoCmd.OpenForm "FConsultasActual", , , "[ID]=" & Matri & "", acFormEdit
End If
Un saludo