Cómo hacer referencia a un control de un subformulario o subinforme en Access 2000

Seleccione idioma Seleccione idioma
Id. de artículo: 209099 - Ver los productos a los que se aplica este artículo
Para obtener una versión de Microsoft Access 97 de este artículo, consulte 113352.
Moderada: Requiere macro básico, codificación y las capacidades de interoperabilidad.

Este artículo hace referencia a una base de datos de Microsoft Access (.mdb) y a un proyecto de Microsoft Access (.adp).

Expandir todo | Contraer todo

En esta página

Resumen

Este artículo describe cómo hacer referencia a controles en subformularios o subinformes y describe algunos comportamientos comunes que pueden surgir al que hacer referencia a controles en subformularios o subinformes.

Más información

El identificador del formulario 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:
Formularios! [main form name]! [subform control name] .Form! [control name]
Para hacer referencia a un control en un subinforme, utilice la sintaxis siguiente:
Informes! [main report name]! [subreport control name] .Report! [control name]
Nota : sólo se tratan los subformularios en el resto de este artículo, pero toda la información en el artículo 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:
Formularios! [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. La propiedad ControlName es normalmente establece el mismo como la propiedad SourceObject , pero no tiene que.

Por ejemplo, considere un subformulario detalles de pedidos en un formulario Pedidos con las siguientes propiedades:
Nombre: Detalles de pedidos
Origen del control: Detalles de pedido
Puede referirse a un control de precio en los detalles de pedido subformulario con la siguiente referencia:
Formularios! [Pedidos]! [detalles de pedidos] .Form! [Precio unidad]
Si, sin embargo, el control de subformulario tiene las siguientes propiedades
Nombre: detalles
Origen del control: Detalles de pedido
debe hacer referencia al control precio Order Details subformulario con esta referencia:
Formularios! [Pedidos]! [detalles] .Form! [Precio unidad]

Ejemplos de hacer referencia a controles en un subformulario

Puede utilizar la siguiente acción de macro EstablecerValor para aumentar el valor de Precio del subformulario Pedidos 10 por ciento:
Acción: EstablecerValor
Elemento: Forms! [Pedidos]! [detalles de pedidos] .Form! [Precio unidad]
Expresión: Forms! [Pedidos]! [detalles de pedidos] .Form! [Precio unidad] * 1.1
Si la macro se adjunta a un botón en el formulario Pedidos, puede utilizar la siguiente expresión para el argumento expresión EstablecerValor:
Expresión: [Detalles de pedidos] .Form! [Precio unidad] * 1.1
Si hace referencia a un control en un subformulario desde otro control del subformulario al mismo, no es necesario escribir 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, puede escribir:
[Precio unidad]
La siguiente expresión puede escribirse como la propiedad OrigenDelControl del control Subtotal en el formulario principal de pedidos para mostrar un valor calculado en oculta Subtotales de pedidos en el subformulario detalles de pedidos:
= [Subformulario pedidos] .formulario! [Subtotal de pedido]
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 expresión siguiente, escrita en un control en un subformulario hace referencia al campo ID cliente en el formulario principal:
Parent =! [ID de cliente]
Para hacer referencia a un control en un subformulario anidado (un subformulario en un subformulario), puede utilizar la sintaxis siguiente:
Formularios! [main form name]! [subform control name] .Form! [nested subform control name] .Form! [control name]

Problemas comunes encontrados al subformulario de hacer referencia a controles

  • si aparece el siguiente mensaje de error,
    Referencia al formulario ' subform name ' no es válida
    se hace referencia a un control en un subformulario con la sintaxis siguiente:
    Formularios! [subform name]! [control name]
    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 como un formulario, con la sintaxis siguiente:
    Formularios! [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.

    La propiedad ControlName el control del subformulario es que espera. Abra el formulario principal en la vista Diseño, seleccione el control de subformulario y, a continuación, haga clic en 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 ControlName la propiedad para especificar el nombre por el que se hace referencia el control de subformulario. La propiedad ControlName es normalmente establece el mismo como la propiedad SourceObject , pero no tiene que.

    Nota : este comportamiento también puede producir el siguiente mensaje de error aparezca:
    Referencia al campo ' subform name ' no es válida

Referencias

Para obtener más información acerca de los controles, haga clic en Ayuda de Microsoft Access en el menú Ayuda , escriba controles: qué son y cómo funcionan en el Ayudante de Office o el Asistente para Ayuda y haga clic en Buscar para ver el tema.

Propiedades

Id. de artículo: 209099 - Última revisión: miércoles, 28 de julio de 2004 - Versión: 3.0
La información de este artículo se refiere a:
  • Microsoft Access 2000 Standard Edition
Palabras clave: 
kbmt kbhowto kbinfo KB209099 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): 209099

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