Tutorial: Crear una relación principal-detalle utilizando un conjunto de datos almacenado en caché

En este tutorial se muestra cómo crear una relación principal-detalle en una hoja de cálculo, así como a almacenar en memoria caché los datos para que la solución se pueda utilizar sin conexión.

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.

Durante este tutorial aprenderá a:

  • Agregar controles a una hoja de cálculo.

  • Configurar un conjunto de datos para almacenarlo en memoria caché en una hoja de cálculo.

  • Agregar código para habilitar el desplazamiento por los registros.

  • Probar el proyecto.

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).
  • Microsoft Office Excel 2007 o Excel 2010.

  • Acceso a la base de datos de ejemplo Northwind de SQL Server. La base de datos puede estar en un equipo de desarrollo o en un servidor.

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

Crear un proyecto nuevo

En este paso, creará un proyecto de libro de Excel.

Para crear un nuevo proyecto

  • Con Visual Basic o C#, cree un proyecto de libro de Excel con el nombre Mi principal-detalle. Asegúrese de que esté seleccionada la opción 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 principal-detalle al Explorador de soluciones.

Crear el origen de datos

Utilice la ventana Orígenes de datos para agregar un conjunto de datos con tipo al proyecto.

Para crear el origen de datos

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

  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. Cuando haya seleccionado o creado una conexión, 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. Seleccione la tabla Orders y la tabla Order Details.

  9. Haga clic en Finalizar.

El asistente agrega las dos tablas a la ventana Data Sources. 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

En este paso, agregará un rango con nombre, un objeto de lista y dos botones a la primera hoja de cálculo. Primero, agregue el rango con nombre y el objeto de lista desde la ventana Orígenes de datos para que se enlacen automáticamente al origen de datos. A continuación, agregue los botones del Cuadro de herramientas.

Para agregar un rango con nombre y un objeto de lista

  1. Compruebe que el libro Mi principal-detalle.xls está abierto en el diseñador de Visual Studio y que se muestra Sheet1.

  2. Abra la ventana Data Sources y expanda el nodo de Orders.

  3. Seleccione la columna OrderID y, a continuación, haga clic en la flecha de lista desplegable que aparece.

  4. Haga clic en NamedRange en la lista desplegable y, a continuación, arrastre la columna OrderID hasta la celda A2.

    En la celda A2 se crea un control NamedRange denominado OrderIDNamedRange. Al mismo tiempo, se agregan al proyecto un control BindingSource denominado OrdersBindingSource, un adaptador de tablas y una instancia de la clase DataSet. El control se enlaza a BindingSource, que, a su vez, se enlaza a la instancia de DataSet.

  5. Desplácese hacia abajo, más allá de las columnas situadas bajo la tabla Orders. En la parte inferior de la lista se encuentra la tabla Order Details; está aquí porque es un elemento secundario de la tabla Orders. Seleccione esta tabla de Order Details, no la que está en el mismo nivel que la tabla de Orders; a continuación, haga clic en la flecha de lista desplegable que aparece.

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

  7. Se crea un control ListObject denominado Order_DetailsListObject en la celda A6 y se enlaza al objeto BindingSource.

Para agregar dos botones

  1. Desde la ficha Controles comunes del Cuadro de herramientas, agregue un control Button a la celda A3 de la hoja de cálculo.

    Este botón se denominará Button1.

  2. Agregue otro control Button a la celda B3 de la hoja de cálculo.

    Este botón se denominará Button2.

Luego, marque el conjunto de datos que se va a almacenar en memoria caché en el documento.

Almacenar en caché el conjunto de datos

Para marcar el conjunto de datos que se va a almacenar en memoria caché en el documento, haga público el conjunto de datos y establezca la propiedad CacheInDocument.

Para almacenar en caché el conjunto de datos

  1. Seleccione NorthwindDataSet en la bandeja de componentes.

  2. En la Ventana Propiedades, cambie la propiedad Modifiers a Pública.

    Los conjuntos de datos deben ser públicos antes de que se habilite el almacenamiento en memoria caché.

  3. Cambie la propiedad CacheInDocument a True.

El siguiente paso consiste en agregar texto a los botones y, en C#, agregar código para enlazar los controladores de eventos.

Inicializar los controles

Establezca el texto del botón y agregue controladores de eventos durante el evento Startup.

Para inicializar los datos y los controles

  1. En el Explorador de soluciones, haga clic con el botón secundario del mouse en Sheet1.vb o Sheet1.cs y, a continuación, haga clic en Ver código en el menú contextual.

  2. Agregue el código siguiente al método Sheet1_Startup para establecer el texto de los botones.

    Me.Button1.Text = "<"
    Me.Button2.Text = ">"
    
    this.button1.Text = "<";
    this.button2.Text = ">";
    
  3. En C# únicamente, agregue controladores de eventos para los eventos Click de los botones al método Sheet1_Startup.

    this.button1.Click += new EventHandler(button1_Click);
    this.button2.Click += new EventHandler(button2_Click);
    

Agregar código para habilitar el desplazamiento por los registros

Agregue el código al controlador del evento Click de cada botón para desplazarse por los registros.

Para desplazarse por los registros

  1. Agregue un controlador de eventos para el evento Click de Button1 y agregue el código siguiente para retroceder por los registros:

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button1.Click
    
        Me.OrdersBindingSource.MovePrevious()
    End Sub
    
    private void button1_Click(object sender, EventArgs e)
    {
        this.ordersBindingSource.MovePrevious();
    }
    
  2. Agregue un controlador de eventos para el evento Click de Button2 y agregue el código siguiente para avanzar por los registros:

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
        Handles Button2.Click
    
        Me.OrdersBindingSource.MoveNext()
    End Sub
    
    private void button2_Click(object sender, EventArgs e)
    {
        this.ordersBindingSource.MoveNext();
    }
    

Probar la aplicación

Ahora puede probar el libro para asegurarse de que los datos aparecen según lo previsto y que puede utilizar la solución sin conexión.

Para probar el almacenamiento de datos en caché

  1. Presione F5.

  2. Compruebe que el rango con nombre y el objeto de lista se han rellenado con datos del origen de datos.

  3. Desplácese por algunos de los registros haciendo clic en los botones.

  4. Guarde el libro y, a continuación, cierre el libro y Visual Studio.

  5. Deshabilite la conexión a la base de datos. Desconecte el cable de red del equipo si la base de datos está en un servidor, o detenga el servicio de SQL Server si la base de datos está en el equipo de desarrollo.

  6. Abra Excel y, a continuación, abra Mi principal-detalle.xls en el directorio \bin (\Mi principal-detalle\bin en Visual Basic o \Mi principal-detalle\bin\debug en C#).

  7. Desplácese por algunos de los registros para comprobar que la hoja de cálculo funciona normalmente cuando se está sin conexión.

  8. Restablezca la conexión a la base de datos. Vuelva a conectar el equipo a la red si la base de datos está en un servidor, o inicie el servicio de SQL Server si la base de datos está en el equipo de desarrollo.

Pasos siguientes

En este tutorial se muestran los fundamentos de la creación de una relación de datos principal-detalle en una hoja de cálculo y del almacenamiento en memoria caché de un conjunto de datos. Éstas son algunas de las tareas que pueden venir a continuación:

Vea también

Conceptos

Almacenar datos en caché

Información general sobre elementos y controles Host

Otros recursos

Enlazar datos a controles en soluciones de Office

Datos en las soluciones de Office