ACC: Cómo hacer referencia a un control en un subformulario o subinforme

Seleccione idioma Seleccione idioma
Id. de artículo: 113352 - Ver los productos a los que se aplica este artículo
Moderada: Requiere macro básico, codificación y las capacidades de interoperabilidad.
Expandir todo | Contraer todo

En esta página

Resumen

En este artículo se describe cómo hacer referencia a controles en subformularios o subinformes y describe algunos problemas comunes que puede surgir cuando se hace referencia a controles en subformularios o subinformes.

Más información

Nota: En Microsoft Access 7.0 y 97, el identificador "Form" o "Informe" es opcional al hacer referencia a las propiedades del control. Sin embargo, es necesario, al hacer referencia a propiedades del subformulario o subinforme.

Para hacer referencia a un control en un subformulario, utilice la sintaxis siguiente:
   Forms![main form name]![subform control name].Form![control name]
				

Para hacer referencia a un control en un subinforme, utilice la sintaxis siguiente:
   Reports![main report name]![subreport control name].Report![control
   name]
				

Nota: Sólo los subformularios se tratan en el resto de este artículo, pero toda la información se aplica a los subformularios y subinformes.

Es importante Observe que no se puede hacer referencia a controles en un subformulario con la sintaxis siguiente:
   Forms![subform name]![control name]
				

Esto es porque un subformulario en un formulario principal no es un formulario, pero es un control igual que un cuadro de texto o un cuadro de lista. Debe hacer referencia a un subformulario como un control en lugar de un formulario y especificar el identificador de formulario sigue la referencia de nombre de control de subformulario para tener acceso a los controles de un subformulario.

También es importante observar que, cuando se hace referencia a controles en un subformulario, debe especificar el valor contenido en la propiedad ControlName del control de subformulario. La propiedad ControlName no debe confundirse con la propiedad ObjetoOrigen de un control de subformulario. La propiedad SourceObject se utiliza para indicar qué subformulario para utilizar en el control de subformulario. Se utiliza la propiedad ControlName para especificar el nombre por el que se hace referencia el control de subformulario. ControlName es normalmente establece el mismo como el SourceObject, pero no tiene que.

Por ejemplo, considere un subformulario detalles de pedidos en un formulario Pedidos con las siguientes propiedades:
   ControlName: Order Details
   SourceObject: Order Details
				

Puede hacer referencia a un control de precio en el subformulario detalles de pedidos con la siguiente referencia:
   Forms![Orders]![Order Details].Form![Unit Price]
				

Si, sin embargo, el control de subformulario tiene las siguientes propiedades
   ControlName: Details
   SourceObject: Order Details
				

se debe hacer referencia al control precio del subformulario detalles de pedidos con esta referencia:
   Forms![Orders]![Details].Form![Unit Price]
				

Ejemplos de hacer referencia a controles en un subformulario

Puede utilizar la siguiente acción de macro EstablecerValor para aumentar el valor de precio en el subformulario 10 por ciento:
   SetValue

      Item: Forms![Orders]![Order Details].Form![Unit Price]
      Expression: Forms![Orders]![Order Details].Form![Unit Price]* 1.1
				

Si la macro se adjunta a un botón en el formulario Pedidos, puede utilizar esta expresión para el argumento expresión EstablecerValor:
   [Order Details].Form![Unit Price]*1.1
				

Si hace referencia a un control en un subformulario desde otro control del subformulario al mismo, no es necesario que especificar el identificador de propiedad de formulario. Por ejemplo, para hacer referencia al valor de precio en el subformulario detalles de pedidos en una macro adjunta a un botón en el subformulario detalles de pedidos, introduzca:
   [Unit Price]
				

La siguiente expresión puede escribirse como la propiedad ControlSource para el control subtotal en los pedidos calcula formulario principal para mostrar un valor en el control Subtotal orden oculto en el subformulario detalles de pedidos:
   =[Orders Subform].Form![Order Subtotal]
				

Para hacer referencia el valor de un control en el formulario (principal) primario de un control de un subformulario, utilice la propiedad Parent. Por ejemplo, la siguiente expresión introducida en un control de un subformulario hace referencia al campo ID cliente en el formulario principal.
   =Parent![Customer ID]
				

Para hacer referencia a un control en un subformulario anidado (un subformulario en un subformulario), puede utilizar la sintaxis siguiente:
   Forms![main form name]![subform control name].Form![nested subform
   control name].Form![control name]
				

Problemas comunes encontrados al subformulario de hacer referencia a controles


  • Se produce la mensaje de error siguientes:
    Referencia al formulario '< nombre del subformulario >' no es válida

    Esto significa que ha intentado hacer referencia a un control en un subformulario con la sintaxis siguiente:
    Formularios! [subformulario nombre]! [nombre del control]

    El problema es que el subformulario no es realmente un formulario, pero un control que aparece en un formulario principal. Consulte el subformulario como un control en lugar de un formulario con la sintaxis siguiente:
          Forms![main form name]![subform control name].Form![control name]
    						
  • "# Nombre?" aparece en un control con una expresión hace referencia a un control de subformulario.

    Esto puede ocurrir cuando la propiedad ControlName para el control de subformulario que espera. Abra el formulario principal en la vista Diseño, seleccione el control de subformulario después, elija la ventana Propiedades en el menú Ver. Comparar el valor de propiedad ControlName en el valor de propiedad ObjetoOrigen (SourceObject).

    La propiedad SourceObject se utiliza para indicar qué subformulario para utilizar en el control de subformulario. Se utiliza la propiedad ControlName para especificar el nombre por el que se hace referencia el control de subformulario. El ControlName es normalmente establece el mismo como el SourceObject, pero no tiene que.
  • Se produce la mensaje de error siguientes:
    Referencia al campo '< nombre del subformulario >' no es válida

    Este mensaje de error está causado por la misma el problema como problema en el último ejemplo.

Referencias

Para obtener más información acerca de los controles, escriba "controles"en el Ayudante de Office, haga clic en Buscar y, a continuación, haga clic para ver"controles: qué son y cómo funcionan."

Propiedades

Id. de artículo: 113352 - Última revisión: jueves, 18 de enero de 2007 - Versión: 2.1
La información de este artículo se refiere a:
  • Microsoft Access 1.0 Standard Edition
  • Microsoft Access 1.1 Standard Edition
  • Microsoft Access 2.0 Standard Edition
  • Microsoft Access 95 Standard Edition
  • Microsoft Access 97 Standard Edition
Palabras clave: 
kbmt kbhowto KB113352 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 113352
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com