Access - cuadro de lista y cuadro combinado

 
Vista:

cuadro de lista y cuadro combinado

Publicado por irene (2 intervenciones) el 12/05/2014 13:51:22
Hola,
llevo ya muchas pruebas en mi código tras leer innumerables preguntas/respuestas de esta web, pero no encuentro respuesta a lo que me pasa. A ver si alguno me podéis echar una mano.

Tengo cuatro tablas:
1. Stock [Stock_ID, Stock_nombre, Stock_fabricante]
2. Stock_opciones [stockdet_id, item,stockdet_descripcion]
3. Fabricante (fab_id, fab_nombre)
3.Pedido_cliente_lineas [pedclilin_id, item, pedclilin_articulo, pedclilin_opciones]

Las relaciones serían:
- stock_fabricante==fab_id
- pedclilin_articulo == stock_id
- pedclilin_opciones == item
- stockdet_id == stock_ID

Puestos en situación. Tengo en el subformulario "subform_pedido_cliente_lineas" por cada linea/registro:
- 1º campo: un cuadro combinado donde le doy a elegir el fabricante
- en su evento "después de actualizar" le tengo puesto que filtre el 2º campo: nombre del articulo
- 2º campo: artículos (cuadro combinado)
- en su evento "después de actualizar" le tengo puesto que filtre el 3º campo: opciones de ese artículo
- 3º campo: opciones del articulo (cuadro de lista), que me permite seleccionar varias opciones

En los eventos, he puesto el siguiente código:
1
2
3
4
5
6
7
'después de seleccionar el fabricante, filtramos los articulos/nombres
Dim varX As String
varX = "Select Stock_ID, Stock_Nombre " & _
"From Stock " & _
"Where Stock_Fabricante = " & Me.Stock_Fabricante_combo & ";"
Me.pedclilin_articulo_combo.RowSource = varX
Me.pedclilin_articulo_combo.Requery

y
1
2
3
4
5
6
7
'después de elegir el artículo/nombre, filtramos las opciones
Dim varX As String
varX = "Select StockDet_Id, item, StockDet_descripcion " & _
"From Stock_opciones " & _
"Where StockDet_Id = " & Me.pedclilin_articulo_combo & ";"
Me.pedclilin_opciones_combo.RowSource = varX
Me.pedclilin_opciones_combo.Requery


PROBLEMA:
- cada vez que cambio un campo, me actualiza en todos los registros. Ejemplo: cambio el fabricante de la 1º fila, me cambia los posibles artículos de todas las filas, cuando en realidad, solo debería cambiarme las de esa misma fila/registro

¿Qué me falta o qué estoy haciendo mal?
Gracias de antemano.
Irene
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Neckkito
Val: 529
Plata
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

cuadro de lista y cuadro combinado

Publicado por Neckkito (1157 intervenciones) el 13/05/2014 22:36:29
Hola, Irene:

No estás haciendo nada mal. Lo único que ocurre es que estás aplicando una sistemática errónea porque, desconoces entiendo yo, la mecánica de un subformulario.

Un subformulario, en realidad, es una "vista" de varios registros, pero el fondo del subformulario es, en definitiva, uno solo, no varios. Eso se ve claramente cuando sitúas ese subformulario en vista diseño: ¿qué ves: una sola sección de detalle o varias? Lógicamente, sólo ves una.

Eso significa que, al trabajar sólo sobre una base, lo que hagas a un registro se lo haces a todos. Eso es lo que te está pasando.

Lo único (que se me ocurre ahora mismo) que funciona bien en un subformulario tratando los registros como "independientes" es el formato condicional.

Tu problema no tiene solución, hasta donde yo sé. Si quieres cambiar el origen de la fila en tiempo de ejecución tendrás que cambiar tu sistemática de trabajo (que no se me ocurre cómo). O eso, o ves el subformulario en vista Formulario, y no subformulario.

Saludos,

http://neckkito.siliconproject.com.ar
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

cuadro de lista y cuadro combinado

Publicado por irenemeiga (2 intervenciones) el 29/05/2014 09:47:49
Gracias Neckkito

Al final opté por cambiarlo a un formulario continuo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar