Fallo en cuadro combinado de access

Uso access 2016 y necesito resolver el siguiente problema:

Tengo una tabla con dos campos: atículo y clave

El campo artículo es de valores únicos, pero clave puede estar repetido (varios artículos pueden compartir la misma clave). Ejemplo:

Articulo clave

art 1 AAA

art 2 BBB

art 3 AAA

En un formulario tengo un cuadro combinado con origen en este tabla y dos filas de manera que seleccionando artículo en el desplegable me proporciona la clave.

El problema que trato de resolver es el siguiente: Si selecciono art 1, me da la clave AAA. Si selecciono art 2, me da la clave BBB. El problema es que si selecciono art 3 sí me da la clave AAA pero, al perder el enfoque, el cuadro combinado me sustituye mi selección por art 1 (siempre lo sustituye por el primer articulo que alfabéticamente comparte esa clave)

El problema no tiene graves repercusiones, ya que la clave que obtengo el la correcta, pero me gustaría saber como impedir que el cuadro me cambie el valor que he seleccionado.

Respuesta
1

Me dejas de piedra. He hecho la tabla tal como la tienes y un formulario con un combinado y dos cuadros de texto, para que pierda el enfoque, y no sucede nada de lo que dices. ¿Puedes poner una imagen del origen de la fila del combinado?

Gracias por tu interés Icue

El origen de la fila es: SELECT [Articulos].[Articulo], [Articulos].[Grupo], [Articulos].[Codigo] FROM Articulos ORDER BY [Articulo]; 

La columna dependiente es la 3 ([Articulos].[Codigo]) que es la que contiene el dato que necesito guardar .

El cuadro combinado funciona bien si la columna dependiente es la 1 o la 2, pero al ser la 3 es cuando se produce el error (e insisto, es la que contiene el dato que me interesa).

(Por cierto, en el ejemplo sólo puse dos campos y no tres como en la realidad, pero he comprobado los datos del ejemplo y pasa lo mismo si la columna dependiente es la que tiene la clave)

Me he dado cuenta de que al diseñar el cuadro combinado con el asistente, cuando al acabar dice "cuando seleccione una fila en el cuadro combinado... sic...... Elija un campo que identifique únicamente a esa fila...." y deja seleccionar la columna dependiente.

En mi caso, el campo código no identifica únicamente a una fila ya que el código puede repetirse en varias filas.

¿Puede ser esa la explicación. ¿Ves alguna solución?

He repetido lo que tu dices y mira

Este es el origen de datos del combinado

Luego vera en el formulario que tengo dos cuadros de texto llamados Otro y Otromas y le digo que su valor sea el que hay en la segunda columna del combinado(la primera, la del artículo es la 0) y al otro le digo que coja el valor de la tercera columna del combinado, o sea Clave.

Ahora vamos con la columna dependiente

Como puedes ver es la 3, o sea, la que se guardaría en la tabla correspondiente.

Si ahora en el formulario despliego el combinado y elijo por ejemplo Art4, como en la foto

Y hago clic sale lo que ves y de hecho me voy al cuadro de texto "para perder el efoque y no cambia

Ya no me deja poner más, así que sigo en Ampliación

De todos modos, si quieres, mándame una copia vacía a [email protected], con la(s) tabla(s) que intervengan y el formulario, le echo un vistazo y te digo lo que pasa.

Esto es de locos. O estamos hablando de cosas distintas.

He creado una tabla como tu ejemplo, he creado un formularios con los mismos controles que tu ejemplo, lo he puesto a correr y.... sigue pasando lo mismo.

Digo si no estaremos hablando de cosas distintas porque lo que a mí siempre me cambia no son los cuadros de texto, sino el texto de lo que he seleccionado en el desplegable del cuadro combinado. En tu ejemplo: Si selecciono art 1, 2, 4 o 6, me aparece en el cuadro combinado el mismo texto que he seleccionado; pero si selecciono art 3 me aparece art 1 y si selecciono art 5 me aparece art 4. ¿De verdad a ti te aparece en el cuadro combinado art 3 y art 5 cuando los seleccionas en el desplegable?

De todas formas, te estoy muy agradecido porque gracias a tu ejemplo he sabido como obtener los datos del contenido de las otras columnas mediante control.column(indice). No conocía ese método y me resuelve muchas cosas.

De esta manera he podido resolver el problema ya que puedo fijar columna  dependiente cero (eso siempre me ha funcionado bien) y sacar el contenido de las otras columnas a variables para luego integrar esos valores y otros como registro nuevo de una tabla, que era el propósito de mi formulario.

Ahora me funciona perfectamente.

Por lo dicho, te estoy muy agradecido por tu interés, aunque sigo sin explicarme el diferente comportamiento del mismo programa en dos ordenadores distintos.

Saludos

De todas formas, ahí te puse mi correo si puedo ayudarte en elgo

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas