Uso de controles DataCombo y DataList
Los controles DataCombo y DataList son muy similares a los controles estándar de cuadro de lista y cuadro combinado, pero tienen algunas diferencias importantes que los hacen extremadamente adaptables y útiles en aplicaciones de bases de datos. Ambos controles pueden completarse automáticamente con campos de base de datos a los que están vinculados estos controles. Además, opcionalmente pueden pasar un campo seleccionado a un segundo control de datos, lo que los hace adecuados para crear aplicaciones de "tabla de búsqueda".
Posible uso
1. En una base de datos relacional, utilice datos de una tabla para proporcionar valores que se ingresarán en una segunda tabla (relacionada). Por ejemplo, en una base de datos de inventario, los nombres de los proveedores se almacenan en una tabla y cada proveedor tiene un identificador único. Otra tabla que muestra productos utiliza estos identificadores para indicar qué proveedor suministra el producto. Puede utilizar el control DataList para mostrar el nombre del proveedor mientras proporciona (de forma invisible) el identificador del proveedor a la tabla de productos.
2. Permita que los usuarios limiten su búsqueda seleccionando un criterio de una lista desplegable. Por ejemplo, una aplicación de base de datos de informes de ventas podría usar un control DataList para permitir al usuario seleccionar un estado o una región de ventas. Una vez realizada una selección, la selección pasa automáticamente a un segundo control de datos, que es responsable de encontrar los registros de ventas para el área seleccionada.
Al igual que sus controles intrínsecos correspondientes, la principal diferencia entre los controles DataList y DataCombo es que el control DataCombo proporciona un cuadro de texto en el que se puede editar el contenido.
Para obtener una descripción de la capacidad de los controles DataList y DataCombo para unir tablas de bases de datos, consulte "Unir dos tablas mediante los controles DataCombo y DataList". Para crear una aplicación de base de datos simple que utilice tablas vinculadas, consulte "Creación de una aplicación DataCombo simple".
Propiedades de control destacables
Algunas propiedades importantes de los controles DataList y DataCombo incluyen:
Tenga en cuenta que la propiedad DataFormat del control DataCombo es una propiedad de Extender. Por lo tanto, siempre está visible en la hoja de propiedades y se puede configurar en el código. Sin embargo, el control DataCombo sólo da formato al elemento superior de su lista. Esto puede ser menos importante para el usuario final que ve el elemento superior formateado y puede simplemente seleccionarlo de la lista sin formato. Los elementos formateados también pueden inducir a error a los usuarios finales haciéndoles creer que los elementos están formateados antes de introducirlos en la base de datos. Por estos motivos, se recomienda no establecer la propiedad DataFormat cuando se utiliza el control DataCombo.
Detalles Para obtener un tutorial paso a paso que demuestra el uso de la propiedad BoundText, consulte "Creación de un DataGrid con un control DataList conectado". Para obtener una lista completa de las propiedades y métodos de estos controles, consulte "Control DataList" y "Control DataCombo".
Conecte dos tablas usando los controles DataCombo y DataList
La característica distintiva de los controles DataCombo y DataList es la capacidad de acceder a dos tablas diferentes y vincular datos de la primera tabla a un campo de la segunda tabla. Esto se hace utilizando dos fuentes de datos (como el control ADOData o el entorno de datos).
Tablas relacionales y valores "hostiles"
En una base de datos relacional, no toda la información para su reutilización se almacena en varios lugares. La mayor parte de esta información se almacena en un conjunto de registros que consta de varios campos; entre estos campos hay un campo "identificador" que identifica de forma única el conjunto de registros. Por ejemplo, la base de datos Biblio proporcionada por Visual Basic almacena los nombres de varias editoriales en una tabla llamada Publishers. Esta tabla incluye muchos campos, como dirección, ciudad, código postal y número de teléfono. Pero en aras de la simplicidad, sólo se consideran los dos campos esenciales de esta tabla, Nombre y PubID. El campo Nombre almacena el nombre de un editor, mientras que el campo PubID almacena un valor relativamente "poco amigable", como un número o código. Pero este valor hostil es importante porque identifica de forma única al editor y sirve como medio para vincular todo el conjunto de registros. Además, este valor se almacenará en varios conjuntos de registros en la segunda tabla.
El nombre de la segunda tabla es Títulos y cada conjunto de registros contiene información que incluye título, año de publicación, Número estándar internacional de libros (ISBN), etc. El nombre de uno de estos campos es PubID. El nombre de este campo es el mismo que el campo correspondiente en la tabla Editores, porque este campo almacena el valor que vincula este título a un editor específico.
Esta posible solución presenta un pequeño problema: dada una aplicación de base de datos que permite a los usuarios insertar nuevos títulos, el usuario debe de alguna manera ingresar un número entero que identifique al editor. Si el usuario puede recordar el identificador único de cada editor, entonces aún es factible, pero si por un lado el usuario puede ver el nombre del editor y por otro lado el valor correspondiente está almacenado en la base de datos, entonces parecerá más conveniente. Los controles DataList y DataCombo pueden resolver fácilmente este problema.
Dos fuentes de datos, tres campos, sin codificación
Los controles DataList y DataCombo utilizan dos fuentes de datos para resolver este problema. Aunque solo muestra el nombre del editor (de la tabla Editores), el control DataList o DataCombo solo escribe el valor del campo PubID en la tabla Títulos. A través de la ventana Propiedades, establezca RowSource en la fuente de datos que proporciona los datos que se escribirán (es decir, la tabla de editores). Luego establezca la propiedad DataSource en la fuente de datos donde se escribirán los datos (es decir, la tabla de Títulos). Finalmente, configure las propiedades DataField, ListField y BoundColumn. La siguiente figura muestra cómo asignar dos fuentes de datos (en forma de dos controles de datos) y tres campos a un control DataCombo:
Brevemente, la propiedad ListField determina qué campo muestra el control. En este caso es el nombre del editor. Por otro lado, la propiedad BoundColumn determina qué campo de la tabla Editores proporciona el valor real requerido a la tabla Título. Tenga en cuenta que el campo PubID en la tabla Editores no se puede (y no se debe) editar. En cambio, el valor del campo PubID se escribe en el campo especificado por la propiedad DataField. En este ejemplo, este atributo es el campo PubID en la tabla Títulos.
La siguiente tabla proporciona una descripción general de estas propiedades y cómo usarlas.
Tenga en cuenta que los controles DataList y DataCombo también se pueden utilizar con un único control de datos. Para lograr esto, puede establecer las propiedades DataSource y RowSource en el mismo control de datos y establecer las propiedades DataField y BoundColumn en el mismo campo en el conjunto de registros del control de datos. En este caso, la lista se completará con valores ListField del mismo conjunto de registros que se actualiza. Si se especifica una propiedad ListField pero no se establece la propiedad BoundColumn, BoundColumn se establecerá automáticamente en el campo ListField.
Detalles Si desea crear una aplicación de base de datos simple paso a paso usando el control DataCombo, consulte "Creación de una aplicación DataCombo simple".
->