2008-09-16 18 views
6

He creado un formulario de Access 2007 que muestra, por ejemplo, Productos de una tabla de Producto. Uno de los campos de la tabla Producto es un ID de categoría que corresponde a la categoría principal de este producto.Enlazar un cuadro combinado de formulario en Access 2007

En el formulario, el ID de categoría debe representarse como un cuadro combinado que está vinculado a la tabla Categoría. La idea aquí es bastante sencilla: la selección de una nueva categoría debería actualizar el ID de categoría en la tabla Producto.

El problema con el que me estoy encontrando es que la selección de una categoría nueva actualiza el CategoryName de la tabla Category en lugar de actualizar el CategoryID en la tabla Product. La razón para esto es que parece que el cuadro combinado debe vincularse solo al CategoryName de la tabla Category.

Lo que sucede es que si el producto actual tiene un CategoryID de 12 que es CategoryName "Chairs" en la tabla Category y selecciona un nuevo valor, digamos "Tables" (CategoryID 13) en el cuadro combinado actualiza el CategoryID de 12 con el nuevo CategoryName "Tablas" en lugar de actualizar CategoryID de la tabla Producto a 13.

¿Cómo puedo vincular la tabla de Categoría a un cuadro de la combox para que el campo de texto de datos (que deseo en Access) sea el CategoryName y el datavaluefield es el ID de categoría y solo el ID de categoría del Producto se actualizará cuando se cambie el elemento del cuadro combinado seleccionado.

Editar: Ver la respuesta aceptada a continuación. También necesitaba cambiar el conteo de columnas a 2 y todo comenzó a funcionar perfectamente.

Respuesta

4

Necesita usar ambos valores en la consulta para el cuadro combinado.
p. SELECCIONE CategoryId, CategoryName FROM CategoryTable ... Enlaza el cuadro combinado a la primera columna, CategoryId. Establezca el ancho de las columnas para el cuadro combinado a 0 pulgadas (no es necesario un segundo valor, por lo que no hay límite). Esto ocultará la primera columna que contiene el valor seleccionado; todo eso muestra el valor de la descripción, que es todo lo que quieres ver. Así que ahora cuando selecciona una opción diferente en el cuadro combinado, el valor devuelto por el cuadro combinado será el valor enlazado, CategoryId, no CategoryName.

Ah, sí Alison, lo siento, se olvidó de establecer el cuadro combinado NúmeroDeColumnas = 2.

0

También debe comprobar que la tabla categorías tiene una clave principal en el campo CategoryName. Su configuración original debería haber arrojado un mensaje de error o diciendo que la actualización violaría la clave. Tal como está, parece que puedes tener 2 categorías con el mismo nombre.

Cuestiones relacionadas