Abrir un subformulario en Access con un botón

Tengo un formulario principal con un subformulario. En este quiero insertar otro subformulario, pero por cuestión de espacio quiero abrirlo con un botón. Pero al llamarlo con un botón el funcionamiento no es el mismo que si el subformulario estuviera directamente abierto, es decir no se carga automáticamente el campo clave, sino que hay que teclearlo a mano ¿Cómo puedo hacer para que el campo clave se cargue automáticamente?, es decir, ¿cómo hacer que un subformulario abierto a través de un botón tenga un comportamiento similar a un subformulario abierto directamente?

1 respuesta

Respuesta
1
Lo puedes hacer a través de una condición Where.
Primero detalla más tu problema.
¿Cómo se llaman los campos importantes de tu form y los de tu subform? ¿Ya creaste una relación? El botón lo creaste mediante el asistente o le asignaste una macro.?
Si es una macro y utilizas la acción AbrirFormulario agrega esto a la condición Were:
="[Campodetusubform]=" & [Campodetuform]
De preferencia que los campos sean los Id o claves principales y que estén relacionados.
Sigo al pendiente.
Tengo una Tabla CLIENTES y otra PEDIDOS. En el Formulario de cada Cliente quiero insertar un botón que abra los pedidos de cada Cliente, pero que el campo clave del subformulario se vaya rellenando automáticamente como ocurre cuando el formulario se encuentra abierto directamente.
Así es como se abre el subform:
    Dim stDocName As String
    Dim stLinkCriteria As String
    stDocName = "PEDIDOS"
    stLinkCriteria = "[NIF_NIE_CLIENTE]=" & "'" & Me![NIF_NIE] & "'"
    DoCmd.OpenForm stDocName, , , stLinkCriteria
Pero, el NIF_NIE_CLIENTE del Subformulario tengo que ir rellenándolo a mano, cuando quisiera que lo cogiera directamente del campo NIF_NIE
¿Qué versión de Access tienes?
Para Access 2007 / 2010
Si el campo clave de tu form se llama NIF_NIE y el del subform se llama NIF_NIE_CLIENTE
entonces:
En el formulario CLIENTES crea un botón de comando. En Propiedades / Eventos / Al hacer clic llama al Generador de Macro y configúralo así:
AbrirFormulario
Formulario: PEDIDOS
Vista: Formulario
Nombre del filtro: (no pongas nada)
Condición where=  ="[NIF_NIE_CLIENTE]=" & [NIF_NIE]
Modo de la ventana: Diálogo
Es la forma más sencilla que conozco.
Me cuentas si te resulta.
Utilizo ACCESS 2000.
Tal como me ha dicho que lo haga, se filtran los pedidos correspondientes al Cliente, pero al rellenar un pedido nuevo hay que rellenar el NIF del Cliente, cuando en el caso de que el subformulario se encuentra directamente abierto, este campo se rellena automáticamente.
No tuve la oportunidad de trabajar con Access 2000 pero prueba en en campo clave de tu subform en propiedades en valor predeterminado abres el Generador de Expresiones y selecciona el campo del form principal. Es decir, que para nuevos registros en el subform el valor predeterminado sea el campo de NIF del form principal.
Si sigues teniendo problemas:
[email protected]
Esto último que me ha recomendado no lo puedo hacer. No puedo poner como valor predeterminado un campo de un formulario. Igual, esto que estoy pidiendo el ACCESS 2000 no puede hacerlo. Es la versión que tengo que usar, pues es la que hay en mi trabajo. Gracias de todas formas por su ayuda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas