Basar un cuadro combinado en otro

Imagen de logotipo de columna 31 de enero, 2005

Por Sal Ricciardi

Los cuadros combinados sirven para elegir opciones, pero a veces una opción depende de otra. En este artículo, aprenderá a configurar un cuadro combinado para su lista se base en la selección que realiza en otra. Se ofrece también un ejemplo en una base de datos que se puede descargar.

Se aplica a
Microsoft Office Access 2003
Microsoft Access 2000 y 2002


Pregunta: ¿cómo puedo crear un cuadro combinado que limite su lista en función de la selección realizada en otro cuadro combinado?    

El segundo cuadro combinado (cuadro combinado: control usado en un formulario que proporciona la funcionalidad combinada de un cuadro de lista y un cuadro de texto. Puede escribir un valor en un cuadro combinado o hacer clic en el control para mostrar una lista y seleccionar un elemento de ella.) se basa en una consulta que coincide con las files que contienen el valor seleccionado en el primer cuadro combinado. También tendrá que colocar código de Microsoft Visual Basic para Aplicaciones (VBA) en algunos eventos (evento: acción reconocida por un objeto, como un clic del mouse o pulsaciones de tecla, para la que se puede definir una respuesta. Un evento puede tener lugar por una acción del usuario o una instrucción de Visual Basic; o bien, puede desencadenarlo el sistema.) de control y formulario. El código garantiza que los cuadros combinados muestren los valores correctos cuando se produzcan determinados eventos (por ejemplo, cuando se realice una selección en el primer cuadro combinado o cuando el formulario se abra por primera vez. En primer lugar, veamos las propiedades (propiedad: atributo con nombre de un control, campo u objeto de base de datos que se establece para definir una de las características del objeto (por ejemplo, el tamaño, el color o su posición en pantalla) o un aspecto de su comportamiento (por ejemplo, si está oculto o no).)RowSource y RowSourceType  .

Introducción a las propiedades RowSource y RowSourceType

La propiedad RowSource permite definir el origen de los elementos que aparecen en el cuadro combinado. Se utiliza junto con la propiedad RowSourceType para indicar a Access cómo tiene que rellenar el cuadro combinado. Por ejemplo, puede establecer la propiedad RowSourceType en Tabla o consulta y, a continuación, establecer la propiedad RowSource en el nombre de una consulta. Access ejecutará la consulta y usará los resultados para rellenar el cuadro combinado.

Hoja de propiedades mostrando las propiedades Row Source y Row Source Type

No es necesario utilizar una consulta guardada. Si la propiedad RowSourceType está establecida en Tabla o consulta, puede crear una consulta que exista como declaración SQL SELECT en la propiedad RowSource del cuadro combinado. Esta es la técnica empleada en el formulario de ejemplo de la base de datos a la que se refiere este artículo.

En la tabla siguiente, se enumeran las posibles configuraciones de la propiedad RowSourceType.

Configuración Descripción
Tabla o consulta Los datos se obtienen de una tabla, una consulta o una declaración SQL especificado mediante la propiedad RowSource. Esta es la opción predeterminada.
Lista de valores Los datos se obtienen de una lista de elementos especificados mediante la propiedad RowSource.
Lista de campos Los datos se obtienen de una lista de nombres de campo de una tabla, una consulta o una declaración SQL especificado mediante la propiedad RowSource.

La mayoría de las veces, utilizará la opción Tabla o consulta, que es la predeterminada.

Crear el formulario de ejemplo

Puede descargar la base de datos de ejemplo de este artículo. En la base de datos, encontrará un formulario de ejemplo en el que se demuestra la técnica que se explica aquí. Para crear su propio formulario de ejemplo, inicie Access y siga los pasos de la siguiente sección expandible y, a continuación, siga con el resto de la columna.

MostrarPaso a paso: cómo crear un formulario de ejemplo

Realice uno de los procedimientos siguientes:

MostrarPara crear un nuevo formulario:

  1. En la ventana Base de datos, en Objetos, haga clic en Formularios.
  2. En la barra de herramientas de la ventana Base de datos, haga clic en Nuevo.
  3. En el cuadro de diálogo Nuevo formulario, haga clic en Vista Diseño y, a continuación, haga clic en Aceptar.

MostrarPara abrir un formulario existente en la vista Diseño

  1. En la ventana Base de datos, en Objetos, haga clic en Formularios.
  2. Haga clic en el formulario y, a continuación, haga clic en Diseño en la ventana Base de datos.

Para agregar el cuadro combinado Categoría    

  1. En el cuadro de herramientas, haga clic en el botón Asistentes para controles para que aparezca seleccionado.

 Nota   Si el cuadro de herramientas no está visible, en el menú Ver, haga clic en Cuadro de herramientas.

  1. En el cuadro de herramientas, haga clic en la herramienta Cuadro combinado.
  2. Haga clic y arrastre dentro de la cuadrícula de diseño del formulario para crear el cuadro combinado.
  3. En el Asistente para cuadros combinados, haga clic en el botón que hay junto a la opción Deseo que el cuadro combinado busque valores en una tabla o consulta y, a continuación, haga clic en Siguiente.
  4. En la sección Ver, haga clic en Tablas.
  5. En la lista, haga clic en Tabla: Categorías y, a continuación, haga clic en Siguiente.
  6. En Campos disponibles, haga doble clic tanto en Id. de categoría como en Nombre de categoría para que ambos aparezcan en Campos seleccionados y, a continuación, haga clic en Siguiente.
  7. En la página ¿Qué criterios de ordenación desea utilizar para la lista?, haga clic en Nombre de categoría en la primera lista y, a continuación, haga clic en Siguiente.
  8. En la página siguiente, asegúrese de que la casilla de verificación Ocultar la columna clave (se recomienda) está seleccionada y, a continuación, haga clic en Siguiente.
  9. Escriba una etiqueta para el cuadro combinado. Para el ejemplo de este artículo, he utilizado Nombre de categoría:.
  10. Haga clic en Finalizar.
  11. Guarde el formulario.

Para asignar la propiedad Nombre    

  1. Con el formulario aún abierto en la vista Diseño, haga clic en el nuevo cuadro combinado.
  2. En el menú Ver, haga clic en Propiedades.
  3. En el cuadro Nombre, escriba Categoría.
  4. Cierre la hoja de propiedades de consultas.

Para agregar el cuadro combinado Producto    

  1. Asegúrese de que el botón Asistentes para controles está seleccionado en el cuadro de herramientas.

 Nota   Si el cuadro de herramientas no está visible, en el menú Ver, haga clic en Cuadro de herramientas.

  1. En el cuadro de herramientas, haga clic en la herramienta Cuadro combinado.
  2. Haga clic y arrastre dentro de la cuadrícula de diseño del formulario para crear el cuadro combinado.
  3. En el Asistente para cuadros combinados, haga clic en el botón que hay junto a la opción Deseo que el cuadro combinado busque valores en una tabla o consulta y, a continuación, haga clic en Siguiente.
  4. En la sección Ver, haga clic en Tablas.
  5. En la lista, haga clic en Tabla: Productos y, a continuación, haga clic en Siguiente.
  6. En Campos disponibles, haga doble clic en IdProducto, NombreProducto e IdCategoría para que los tres aparezcan en Campos seleccionados y, a continuación, haga clic en Siguiente.
  7. En la página ¿Qué criterios de ordenación desea utilizar para la lista?, haga clic en NombreProducto en la primera lista y, a continuación, haga clic en Siguiente.
  8. Asegúrese de que la casilla de verificación Ocultar la columna clave (se recomienda) está seleccionada y, a continuación, haga clic y arrastre el borde derecho de la columna para reducirla hasta que desaparezca. Haga clic en Siguiente.
  9. Escriba una etiqueta para el cuadro combinado. Para el ejemplo de este artículo, he utilizado Nombre de producto:.
  10. Haga clic en Finalizar.
  11. Guarde el formulario.

Para asignar la propiedad Nombre    

  1. Haga clic en el cuadro combinado Producto.
  2. En el menú Ver, haga clic en Propiedades.
  3. En el cuadro Nombre, escriba Producto.
  4. Cierre la hoja de propiedades.

Para agregar un cuadro de texto de estado    

  1. En el cuadro de herramientas, haga clic en la herramienta Cuadro de texto.

 Nota   Si el cuadro de herramientas no está visible, en el menú Ver, haga clic en Cuadro de herramientas.

  1. Haga clic y arrastre por debajo de los dos cuadros combinados dentro de la cuadrícula de diseño del formulario para crear el cuadro de texto.
  2. En el menú Ver, haga clic en Propiedades.
  3. En el cuadro Origen del control, escriba cuidadosamente
    ="¡Elija el " & Product.Column(1) & " producto en la " & Category.Column(1) & " categoría!"
  4. Cierre la hoja de propiedades.
  5. Elimine la etiqueta asociada al cuadro de texto que acaba de crear.

Para agregar un cuadro de texto explicativo opcional    

  1. En el cuadro de herramientas, haga clic en la herramienta Cuadro de texto.

 Nota   Si el cuadro de herramientas no está visible, en el menú Ver, haga clic en Cuadro de herramientas.

  1. Haga clic y arrastre por debajo de los dos cuadros combinados dentro de la cuadrícula de diseño del formulario para crear el cuadro de texto. En el formulario de ejemplo, coloqué este cuadro de texto entre los dos cuadros combinados (encima del cuadro combinado Producto y debajo del cuadro combinado Categoría
  2. En el menú Ver, haga clic en Propiedades.
  3. En el cuadro Origen del control, escriba cuidadosamente
    ="Cuando elija una categoría, la lista Productos cambiará para ofrecer sólo los productos de dicha categoría".
  4. Cierre la hoja de propiedades.
  5. Elimine la etiqueta asociada al cuadro de texto que acaba de crear.
  6. Guarde el formulario.

Para aplicar formato a los cuadros de texto (opcional)    

  1. Aumente el tamaño de la fuente y cambie el color de ésta.
  2. Cambie el tamaño de los cuadros de texto y muévalos hasta que quepa todo el texto.
  3. Establezca la propiedad BackStyle en Transparente para que cuadro de texto tenga el mismo fondo que el formulario.

Asegúrese de seguir los pasos restantes de este artículo para agregar criterios al cuadro combinado Producto e incluir código en las ubicaciones adecuadas para que, entre otras cosas, los cuadros combinados se mantengan actualizados.

Cómo agregar criterios a la consulta por productos

Como puede hacer que Access rellene un cuadro combinado con los resultados de una consulta, también puede agregar criterios a dicha consulta para limitar lo que aparece en el cuadro combinado. En nuestro caso, queremos que los criterios del segundo cuadro combinado sólo limiten los resultados de las filas que coinciden con el valor del primer cuadro combinado.

Por ejemplo, supongamos que desea tener un cuadro combinado de categorías con el nombre Categoría y cuadro combinado de productos con el nombre Producto. Quiere que al hacer clic en el cuadro combinado Categoría sólo aparezcan en el cuadro combinado Producto los productos de dicha categoría. Esto se puede conseguir colocando criterios en la consulta del cuadro combinado Producto que coincide con el valor actual en el cuadro combinado Categoría.

Para agregar criterios a la consulta    

  1. Abra la hoja de propiedades del cuadro combinado Producto combo box.
  2. Haga clic en el cuadro Origen de la fila y, a continuación, haga clic en el botón de puntos suspensivos (...) cuando aparezca.
  3. En el Generador de consultas, asegúrese de que en la lista de cuadrícula de campos aparecen las columnas de la tabla Productos que desea que aparezcan en el cuadro combinado Producto, por ejemplo, IdProducto, NombreProducto, etc. Asegúrese de incluir el campo Id. de categoría.
  4. En la columna IdCategoría de la cuadrícula del Generador de consultas, escriba [Formularios]![Formulario combinado]![Categoría] en la fila Criterios, sustituyendo "Formulario combinado" por el nombre de su formulario. Los criterios indican a Access que restrinja los resultados de la consulta sólo a las filas que coincidan con el valor que está actualmente seleccionado en el cuadro combinado Categoría. La cuadrícula del Generador de consultas tendrá un aspecto parecido al de la ilustración siguiente.

Criterios del Generador de consultas para vincular cuadros combinados

  1. Por último, cierre el Generador de consultas y, a continuación, cierre la hoja de propiedades de consulta haciendo clic en cuando Access le pregunte si desea guardar los cambios.

Access insertará una declaración SQL en la propiedad RowSource cuando cierre el Generador de consultas. La declaración SQL incluye una cláusula WHERE parecida a la siguiente:

WHERE (((Products.CategoryID)=[Forms]![Combo Form]![Category]))

La cláusula WHERE restringe las filas a aquéllas que coinciden con el valor del cuadro combinado Categoría.

  1. Guarde el formulario.

Comprender las propiedades BoundColumn y ColumnCount

Una de las ventajas de usar el Asistente para cuadros combinados es que rellena automáticamente las propiedades que necesita. Dos de estas propiedades merecen una explicación más detallada.

  • La propiedad BoundColumn indica a Access qué columna del cuadro combinado contiene el valor que se va a asociar al control. Esta propiedad contiene un número que representa una columna en el origen de la fila, empezando con 1 y siguiendo en progresión con 2, 3, etc., de izquierda a derecha. Normalmente se selecciona la columna que contiene la clave primaria, como IdCategoría o IdProducto. De este modo, si se hace referencia al valor de control, se obtiene el valor del campo IdCategoría o IdProducto de la fila seleccionada.

Por ejemplo, la expresión [Formularios]![Formulario combinado]![Categoría] (escrita en la cuadrícula del Generador de consultas en la ilustración anterior) devuelve el valor almacenado en la propiedad BoundColumn de la fila seleccionada en el control de cuadro combinado Categoría. Se devuelve el valor del campo IdCategoría porque la propiedad BoundColumn del cuadro combinado Categoría está establecida en el valor 1, que representa la columna IdCategoría. A continuación, la consulta utiliza el valor IdCategoría para buscar coincidencias con las filas del cuadro combinado Producto.

  • La propiedad ColumnCount indica a Access cuántas columnas hay en el cuadro combinado. Por ejemplo, en el cuadro combinado Categoría, el valor de esta propiedad se establece en 2 porque hay dos columnas en el origen de la fila: IdCategoría y NombreCategoría. Para el cuadro combinado Producto la propiedad ColumnCount se establece en 3, porque el origen de las filas incluye las columnas, IdProducto, NombreProducto y IdCategoría.

Tenga en cuenta que al calcular un valor para ColumnCount, debe contar todas las columnas cuyo valor va a estar disponible en Access, tanto si la columna se puede ver en el cuadro combinado como si no. Puede ocultar una columna usando la propiedad ColumnWidths.

Para obtener más información, consulte la sección Ocultar algunas columnas.

Cómo mantener actualizado el cuadro combinado

El cuadro combinado Producto debe actualizarse cada vez que cambie el valor del cuadro combinado Categoría. Para ello, puede agregar código VBA vara volver a consultar el origen de filas del cuadro combinado Producto cada vez que se actualice el cuadro combinado Categoría. Access proporciona un evento AfterUpdate sólo para este fin.

Echemos un vistazo al código del evento AfterUpdate. Primero, establecemos el valor del cuadro combinado Producto en Nulo con el objeto de asegurar que inicialmente no aparezca nada en el cuadro. Es una buena idea, porque una vez elegida esta categoría, el valor que esté seleccionado en ese momento en el cuadro combinado Producto deja de ser válido (puesto que el producto que se está mostrando pertenece a la categoría anterior. 

A continuación, se llama al método NuevaConsulta para volver a rellenar el cuadro combinado Producto en función de la categoría actual. Por último, el cuadro Producto está preestablecido en el primer elemento de la lista usando la propiedad ItemData. La propiedad ItemData devuelve el valor de la fila especificada en un cuadro combinado o un cuadro de lista. Como la lista es de base cero, no olvide elegir 0 como índice para la primera fila en lugar de 1.

Private Sub CategoryAfterUpdate()
  Me.Product = Null
  Me.Product.Requery
  Me.Product = Me.Product.ItemData(0)
End Sub

Para obtener instrucciones detalladas paso a paso sobre cómo colocar el código en el evento AfterUpdate del cuadro combinado Categoría, consulte la siguiente sección expandible.

MostrarPaso a paso: cómo colocar el código en el primer cuadro combinado para actualizar automáticamente el segundo cuadro combinado

Para crear el código, siga estos pasos:

Para abrir el formulario en la vista Diseño    

  1. En la ventana Base de datos, en Objetos, haga clic en Formularios.
  2. Haga clic en el formulario y, a continuación, haga clic en Diseño en la ventana Base de datos.

Para editar el procedimiento Category_AfterUpdate    

  1. Haga clic en el cuadro combinado Categoría para seleccionarla.
  2. En el menú Ver, haga clic en Propiedades y, a continuación, en la ficha Evento.
  3. Haga clic en el cuadro Después de actualizar y, a continuación, haga clic en el botón de puntos suspensivos (...) cuando aparezca.
  4. Cuando aparezca el cuadro de diálogo Elegir generador, haga clic en Generador de código y, después, en Aceptar.
  5. Escriba el código en el Editor de Visual Basic (Editor de Visual Basic: entorno en el que puede escribir y modificar código y procedimientos de Visual Basic para Aplicaciones. El Editor de Visual Basic contiene un conjunto completo de herramientas de depuración para buscar sintaxis, tiempo de ejecución y problemas lógicos en el código en uso.) para que el procedimiento Category_AfterUpdate aparezca exactamente como se muestra en el ejemplo anterior.
  6. Cuando haya terminado, haga clic en Guardar en el menú Archivo. A continuación, en el menú Archivo, haga clic en Cerrar y volver a Microsoft Access.
  7. Cierre la hoja de propiedades.
  8. Cierre el formulario.

Qué hacer al abrir el formulario

Cuando abra el formulario por primera vez, puede que los cuadros combinados no muestren ningún valor porque aún no ha elegido ninguno. Para el formulario de ejemplo, decidí que sería mejor mostrar el primer valor de la lista de categorías y el primer producto de esa categoría, así que coloqué el siguiente código de VBA en el evento Load. La llamada al código tiene lugar la primera vez que se abre el formulario. Establece la categoría en el primer valor de la lista y, a continuación, se realiza la llamada al procedimiento Category_AfterUpdate para actualizar el cuadro combinado Producto.

Private Sub Form_Load(Cancel As Integer)
  Me.Category = Me.Category.ItemData(0)
  Call Category_AfterUpdate
End Sub

El formulario de ejemplo usa cuadros combinados no enlazados (control independiente: control que no está conectado con un campo de una tabla, consulta o instrucción SQL subyacente. Un control independiente se suele utilizar para mostrar texto informativo o imágenes decorativas.). Los cuadros combinados no enlazados son los que no están vinculados a un campo en una tabla o en una consulta. En cambio, si usa cuadros combinados enlazados (columna dependiente: columna de un cuadro de lista, cuadro combinado o lista desplegable que es dependiente del campo especificado por la propiedad OrigenDelControl (ControlSource) del control.), probablemente no le convendrá emplear el procedimiento Form_Load descrito anteriormente, porque restablece la categoría cada vez que se carga el formulario. Si es así, elimine ese código o use un código como el siguiente:

Private Sub Form_Load(Cancel As Integer)
  If IsNull(Category) Then
    Me.Category = Me.Category.ItemData(0)
    Call Category_AfterUpdate
  End If
End Sub

Esta versión sólo restablece la categoría si está vacía.

Para obtener instrucciones detalladas paso a paso sobre cómo colocar el código en el evento Load del formulario, consulte la siguiente sección expandible.

MostrarPaso a paso: cómo colocar en el evento Load del formulario un código que se ejecute cuando se abra éste

Para crear el código, realice los pasos siguientes:

Para abrir el formulario en la vista Diseño    

  1. En la ventana Base de datos, en Objetos, haga clic en Formularios.
  2. Haga clic en el formulario y, a continuación, haga clic en Diseño en la ventana Base de datos.

Para editar el procedimiento Form_Load    

  1. En el menú Edición, haga clic en Seleccionar formulario.
  2. En el menú Ver, haga clic en Propiedades y, a continuación, en la ficha Evento.
  3. Haga clic en el cuadro Al cargar y, a continuación, haga clic en el botón de puntos suspensivos (...) cuando aparezca.
  4. Cuando aparezca el cuadro de diálogo Elegir generador, haga clic en Generador de código y, después, en Aceptar.
  5. Escriba el código en el Editor de Visual Basic (Editor de Visual Basic: entorno en el que puede escribir y modificar código y procedimientos de Visual Basic para Aplicaciones. El Editor de Visual Basic contiene un conjunto completo de herramientas de depuración para buscar sintaxis, tiempo de ejecución y problemas lógicos en el código en uso.) para que el procedimiento Form_Load aparezca exactamente como se muestra en el ejemplo anterior.
  6. Cuando haya terminado, haga clic en Guardar en el menú Archivo. A continuación, en el menú Archivo, haga clic en Cerrar y volver a Microsoft Access.
  7. Cierre la hoja de propiedades.
  8. Cierre el formulario.

Cómo realizar el desplazamiento entre registros

Si usa cuadros combinados enlazados, puede utilizar la técnica que se describe aquí, pero deberá tener en cuenta lo que desea que ocurra cuando el registro actual cambie como resultado del desplazamiento del usuario entre los registros. En ese caso, puede que tenga que volver a consultar el segundo cuadro combinado cada vez que se desplace de un registro a otro. La forma más adecuada de hacerlo es utilizar el evento Current del formulario con un código parecido al del ejemplo siguiente:

Private Sub Form_Current()
  Me.Product.Requery
End Sub

Para obtener instrucciones detalladas paso a paso sobre cómo colocar el código en el evento Current del formulario, consulte la siguiente sección expandible.

MostrarPaso a paso: cómo colocar en el evento Current del formulario un código que se ejecute cuando se desplace de un registro a otro

Para crear el código, realice los pasos siguientes:

Para abrir el formulario en la vista Diseño    

  1. En la ventana Base de datos, en Objetos, haga clic en Formularios.
  2. Haga clic en el formulario y, a continuación, haga clic en Diseño en la ventana Base de datos.

Para editar el procedimiento Form_Current    

  1. En el menú Edición, haga clic en Seleccionar formulario.
  2. En el menú Ver, haga clic en Propiedades y, a continuación, en la ficha Evento.
  3. Haga clic en el cuadro Al activar registro y, a continuación, haga clic en el botón de puntos suspensivos (...) cuando aparezca.
  4. Cuando aparezca el cuadro de diálogo Elegir generador, haga clic en Generador de código y, después, en Aceptar.
  5. Escriba el código en el Editor de Visual Basic (Editor de Visual Basic: entorno en el que puede escribir y modificar código y procedimientos de Visual Basic para Aplicaciones. El Editor de Visual Basic contiene un conjunto completo de herramientas de depuración para buscar sintaxis, tiempo de ejecución y problemas lógicos en el código en uso.) para que el procedimiento Form_Current aparezca exactamente como se muestra en el ejemplo anterior.
  6. Cuando haya terminado, haga clic en Guardar en el menú Archivo. A continuación, en el menú Archivo, haga clic en Cerrar y volver a Microsoft Access.
  7. Cierre la hoja de propiedades.
  8. Cierre el formulario.

Ocultar algunas columnas

Cuando cree el cuadro combinado Producto, tendrá que incluir (como mínimo) las columnas IdProducto, NombreProducto e IdCategoría, pero lo más probable es que sólo desee ver la columna NombreProducto. Para ocultar las columnas que no desea mostrar, puede configurar la propiedad ColumnWidths del cuadro combinado Producto como se muestra en la ilustración siguiente. 

Propiedad de ancho de columnas en el cuadro combinado Producto

La propiedad ColumnWidths permite especificar el ancho de cada columna del cuadro combinado en pulgadas (o en centímetros, si está utilizando el sistema métrico). Las medidas de las columnas se separan mediante punto y coma. Para las columnas que desee ocultar, establezca el ancho en 0.

Tenga en cuenta que aunque se establezca el valor de la columna en cero y se oculte, ésta sigue existiendo y sus valores siguen estando disponibles para. De este modo, en la ilustración anterior del cuadro combinado Producto, las columnas IdProducto e IdCategoría están ocultas, pero los valores siguen estando disponibles. De hecho, Access proporciona la propiedad Column para que pueda obtener el valor actual de cualquier columna en la fila seleccionada en un cuadro combinado. Por ejemplo, Product.Column(0) devuelve el valor de la columna IdProducto, Product.Column(1) devuelve el de la columna NombreProducto y Product.Column(2) el de IdCategoría.

Descargar la base de datos de ejemplo

La base de datos de ejemplo incluye el ejemplo que hemos utilizado en este artículo y datos de ejemplo obtenidos de la base de datos Northwind.mdb incluida en Access.

¿Qué hacer a continuación?

¿Sobre qué debo escribir a continuación? Envíe sus comentarios, preguntas, trucos y sugerencias a msaccess@microsoft.com.

Más información

Acerca de la autora

Sal Ricciardi trabaja en el equipo de Asistencia a usuarios de Microsoft Office.

 
 
Corresponde a:
Access 2003