Si tengo dos tablas:"municipio" y " estado", ¿cómo le hago para que en un formulario al seleccionar el "estado" de un cuadro combinado, en otro me aparezcan solo los "municipios" que le pertenecen?
El siguiente ejemplo esta basado en la base de datos Northwind.mdb de access 97. Nota previa a desarrollar el ejemplo: Observar la existencia del campo CategoryID en la tabla Products, este campo tiene que ser Numérico del tipo Entero Largo, Indexado - Con duplicados y se va a Relacionar con el campo de mismo nombre CategoryID de la tabla Categories, que será Autonumérico - Indexado Sin duplicados. Esta es la forma en que vamos a Relacionar las dos tablas, y se puede definir en la ventana Relaciones o en la misma Consulta qryProductsList. El Tipo de relación es de Uno a varios, y va del campo CategoryID de la tabla Categories al campo CategoryID de la Tabla Products, se puede exigir también la Integridad referencial. 1. Crear una nueva consulta basada en la tabla Categories (en su caso será la tabla Estado), y guardarla como qryCategoriesList: Nombre de campo: CategoryID Mostrar: Si Nombre de campo: CategoryName Mostrar: Si Orden: Ascendente 2. Crear una nueva consulta basada en la tabla Products (en su caso será la tabla Municipio) y guardarla como qryProductsList: Nombre de campo: ProductID Mostrar: Si Nombre de campo: ProductName Mostrar: Si Orden: Ascendente Nombre de campo: CategoryID Mostrar: Si Orden: Ascendente Criterios: IIF(IsNull([Forms]![frmSelector]![cboCategorySelect]);[CategoryID];[Forms]![frmSelector] ![cboCategorySelect]) Nota: al usar la función IIf() and IsNull() en esta consulta se mostrarán todos los productos para el caso de que no se seleccione ninguna categoría. 4. Crear una macro nueva y guardarla como ResetProductSelect: Macro Name Acción -------------------------------------- ResetProductSelect NuevaConsulta IrAControl Argumentos de la Acción --------------------------------- NuevaConsulta: Nombre del control: cboProductSelect IrAControl: Nombre del control: cboProductSelect 5. Crear un formulario nuevo con los dos cuadros cuadros combinados y guardarlo como frmSelector: Formulario: frmSelector ----------------------------------- Cuadro combinado: Nombre: cboCategorySelect Tipo de origen de la fila: Tabla/Consulta Origen de la fila: qryCategoriesList Número de columnas: 2 Ancho de columnas: 0 cm;1 cm Columna dependiente: 1 Después de actualizar: ResetProductSelect Cuadro combinado: Nombre: cboProductSelect Tipo de origen de la fila: Tabla/Consulta Origen de la fila: qryProductsList Número de columnas: 3 Ancho de columnas: 0 cm;1 cm; 0 cm Columna dependiente: 1 6. Pasar a Vista Formulario. En el cuándo combinado cboCategorySelect, seleccionar una categoría y ver que el otro cuadro combinado cboProductSelect solo lista los productos para esa categoría. 7. En el cuadro combinado cboCategorySelect, seleccionar una categoría diferente y observar que el cuadro combinado cboProductSelect se ha actualizado y lista los productos apropiados para la nueva categoría. Acabo de probar el ejemplo en la versión de access 2000 y también es válido.
Raúl, te agradezco mucho el tiempo que te tomaste para contestar mi pregunta. Siempre es agradable encontrar a alguien que sabe realmente de lo que habla y sobretodo que tiene el interés de ayudar a los demás. Si en algo te puedo ayudar sobre el diseño de sistemas, escribe: [email protected] Gracias de nuevo, Gloria