Tutorial: Enlazar datos a controles en un recuadro de acciones de Excel

En este tutorial se muestra cómo enlazar datos a los controles en un panel de acciones de Microsoft Office Excel. Los controles muestran una relación principal-detalle entre las tablas de una base de datos de SQL Server.

Se aplica a: la información de este tema se aplica a los proyectos de nivel de documento para Excel 2007 y Excel 2010. Para obtener más información, vea Características disponibles por aplicación y tipo de proyecto de Office.

En este tutorial se muestran las tareas siguientes:

  • Agregar controles a una hoja de cálculo.

  • Crear un control del panel de acciones.

  • Agregar controles de formularios Windows Forms enlazados a datos a un control del panel de acciones.

  • Mostrar el panel de acciones cuando se abra la aplicación.

Nota

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las siguientes instrucciones. La edición de Visual Studio que tenga y la configuración que esté utilizando determinan estos elementos. Para obtener más información, vea Trabajar con valores de configuración.

Requisitos previos

Necesita los componentes siguientes para completar este tutorial:

-

Una edición de Visual Studio 2010 que incluye las herramientas para desarrolladores de Microsoft Office. Para obtener más información, vea [Configurar un equipo para desarrollar soluciones de Office](bb398242\(v=vs.100\).md).
  • Excel 2007 o Excel 2010.

  • Acceso a un servidor con la base de datos de ejemplo Northwind de SQL Server.

  • Permisos de lectura y escritura en la base de datos de SQL Server.

Crear el proyecto

El primer paso es crear un proyecto de libro de Excel.

Para crear un nuevo proyecto

  • Cree un proyecto de libro de Excel con el nombre Mi panel de acciones de Excel. En el asistente, seleccione Crear un nuevo documento. Para obtener más información, consulte Cómo: Crear proyectos de Office en Visual Studio.

    Visual Studio abre el nuevo libro de Excel en el diseñador y agrega el proyecto Mi panel de acciones de Excel al Explorador de soluciones.

Agregar un nuevo origen de datos al proyecto

Para agregar un nuevo origen de datos al proyecto

  1. Si la ventana Orígenes de datos no está visible, haga clic en Mostrar orígenes de datos en el menú Datos.

    Nota

    Si no está disponible la opción Mostrar orígenes de datos haga clic dentro de la hoja de cálculo de Excel e inténtelo de nuevo.

  2. Haga clic en Agregar nuevo origen de datos para iniciar el Asistente para configuración de orígenes de datos.

  3. Seleccione Base de datos y, a continuación, haga clic en Siguiente.

  4. Seleccione una conexión de datos a la base de datos de ejemplo Northwind de SQL Server o agregue una nueva conexión mediante el botón Nueva conexión.

  5. Haga clic en Siguiente.

  6. Si estuviera activada, desactive la opción de guardar la conexión y, a continuación, haga clic en Siguiente.

  7. Expanda el nodo Tablas en la ventana Objetos de base de datos.

  8. Active la casilla que aparece junto a la tabla Proveedores.

  9. Expanda la tabla Productos y seleccione NombreProducto, IdProveedor, CantidadPorUnidad y PrecioUnidad.

  10. Haga clic en Finalizar.

El asistente agrega las tablas Suppliers y Products a la ventana Orígenes de datos. También agrega al proyecto un conjunto de datos con tipo, visible en el Explorador de soluciones.

Agregar controles a la hoja de cálculo

A continuación, agregue un control NamedRange y un control ListObject a la primera hoja de cálculo.

Para agregar un control NamedRange y un control ListObject

  1. Compruebe que el libro Mi panel de acciones de Excel.xls está abierto en el diseñador de Visual Studio, con Sheet1 mostrado.

  2. En la ventana Orígenes de datos, expanda la tabla Suppliers.

  3. Haga clic en la flecha de la lista desplegable del nodo Nombre de la organización y, a continuación, haga clic en NamedRange.

  4. Arrastre Nombre de la organización desde la ventana Orígenes de datos hasta la celda A2 de la hoja Sheet1.

    Se crea control NamedRange llamado CompanyNameNamedRange y en la celda A2 aparece el texto <NombreOrganización>. Al mismo tiempo, se agregan al proyecto un BindingSource llamado suppliersBindingSource, un adaptador de la tabla y un DataSet. El control se enlaza a BindingSource, que, a su vez, se enlaza a la instancia de DataSet.

  5. En la ventana Orígenes de datos, desplácese hacia abajo hasta más allá de las columnas situadas bajo la tabla Proveedores. En la parte inferior de la lista se encuentra la tabla Productos; está ahí porque es un elemento secundario de la tabla Proveedores. Seleccione esta tabla Productos, no la que está en el mismo nivel de la tabla Proveedores y, a continuación, haga clic en la flecha de la lista desplegable que aparece.

  6. Haga clic en ListObject en la lista desplegable y, a continuación, arrastre la tabla Productos hasta la celda A6 en Sheet1.

    En la celda A6 se crea un control ListObject llamado ProductNameListObject. Al mismo tiempo, se agregan al proyecto un BindingSource denominado productsBindingSource y un adaptador de la tabla. El control se enlaza a BindingSource, que, a su vez, se enlaza a la instancia de DataSet.

  7. Para C# únicamente, seleccione suppliersBindingSource en la bandeja de componentes y cambie la propiedad Modifiers a Internal en la ventana Propiedades.

Agregar controles al panel de acciones

A continuación, necesita un control del panel de acciones que contiene un cuadro combinado.

Para agregar un control del panel de acciones

  1. Seleccione el proyecto Mi panel de acciones de Excel en el Explorador de soluciones.

  2. En el menú Proyecto, haga clic en Agregar nuevo elemento.

  3. En el cuadro de diálogo Agregar nuevo elemento, seleccione Control del panel de acciones, asígnele el nombre ActionsControl y haga clic en Agregar.

Para agregar controles de formularios Windows Forms enlazados a datos a un control del panel de acciones

  1. En la ficha Controles comunes del Cuadro de herramientas, arrastre un control ComboBox hasta el control del panel de acciones.

  2. Cambie la propiedad Size a 171, 21.

  3. Cambie el tamaño del control de usuario para ajustar el cuadro combinado.

Enlazar a datos el control del panel de acciones

En esta sección, establecerá el origen de datos de ComboBox en el mismo origen de datos del control NamedRange de la hoja de cálculo.

Para establecer propiedades de enlace de datos del control

  1. Haga clic con el botón secundario en el control del panel de acciones y, a continuación, haga clic en Ver código.

  2. Agregue el código siguiente al evento Load del control del panel de acciones.

    Private Sub ActionsControl_Load(ByVal sender As Object, ByVal e As System.EventArgs) _
        Handles Me.Load
    
        Me.ComboBox1.DataSource = Globals.Sheet1.SuppliersBindingSource
        Me.ComboBox1.DisplayMember = "CompanyName"
    End Sub
    
    private void ActionsControl_Load(object sender, EventArgs e)
    {
        this.comboBox1.DataSource = Globals.Sheet1.suppliersBindingSource;
        this.comboBox1.DisplayMember = "CompanyName";
    }
    
  3. En C#, debe crear un controlador de eventos para ActionsControl. Puede colocar este código en el constructor ActionsControl. Para obtener información sobre cómo crear controladores de eventos, vea Cómo: Crear controladores de eventos en proyectos de Office.

    public ActionsControl()
    {
        InitializeComponent();
        this.Load += new EventHandler(ActionsControl_Load);
    }
    

Mostrar el panel de acciones

El panel de acciones no está visible hasta que se agrega el control en tiempo de ejecución.

Para mostrar el panel de acciones

  1. En el Explorador de soluciones, haga clic con el botón secundario en ThisWorkbook.vb o en ThisWorkbook.cs y, a continuación, haga clic en Ver código.

  2. Cree una nueva instancia del control de usuario en la clase ThisWorkbook.

    Dim actions As New ActionsControl
    
    ActionsControl actions = new ActionsControl();
    
  3. En el controlador de eventos Startup de ThisWorkbook, agregue el control al panel de acciones.

    Private Sub ThisWorkbook_Startup(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Startup
    
        Me.ActionsPane.Controls.Add(actions)
    End Sub
    
    private void ThisWorkbook_Startup(object sender, System.EventArgs e)
    {
        this.ActionsPane.Controls.Add(actions);
    }
    

Probar la aplicación

Ahora puede probar su documento para comprobar que el panel de acciones se abre cuando se abre el documento y que el control tiene una relación principal-detalle.

Para probar el documento

  1. Presione F5 para ejecutar el proyecto.

  2. Confirme que el panel de acciones está visible.

  3. Seleccione una organización en el cuadro de lista. Compruebe que el nombre de la organización aparece en el control NamedRange y que los detalles del producto se muestran en el control ListObject.

  4. Seleccione distintas organizaciones para comprobar que el nombre de la organización y los detalles del producto van cambiando en consecuencia.

Pasos siguientes

Estas son algunas de las tareas que se pueden realizar a continuación:

Vea también

Tareas

Cómo: Administrar el diseño de controles en recuadros de acciones

Otros recursos

Información general sobre recuadros de acciones

Enlazar datos a controles en soluciones de Office