¿Por qué un Cuadro combinado no permite la itroducción de datos distintos de la lista?.

Tengo un formulario "F_Abonados" que depende de una tabla "T Abonados", en el formulario tengo un Cuadro combinado "DNI" que me llena los datos del formulario por el campo DNI, es decir, que si introduzco un DNI que ya figura en la tabla, me completa los datos del registro. Pero si introduzco un DNI que no figura en la lista, no me permite introducir los datos.

La idea es que si introduzco un DNI que ya fugura en la Tabla, me complete los datos del registro, y si no figura en la lista, me permita seguir introduciendo los datos hasta completar el registro y se me graben en la tabla T_Abonados, y además me pregunte si deseo guaradr los datos en T_Personas" y si la respuesta es Si, se graben los datos en dicha tabla.

¿Cómo Puedo hacer esto?

1 respuesta

Respuesta
1

En este artículo trato ese tema, entre otras cosas, de los cuadros combinados: http://neckkito.xyz/nck/index.php/ejemplos/16-controles/127-cuadros-combinados-inteligentes 

Básicamente y según como tengas configurado tu combinado, debes modificar la propiedad "limitar a la lista", o codificar el evento "al no estar en la lista"

¡Gracias!  Amigo, me descargo los ejemplos y me los estudiio

Buenos días amigo:

Lo he resulto con la 1ª posibilidad, es decir, poniendo el cuadro combinado con origen en el propio campo de la tabla, lo he configurado como lo describes y funciona bien cumpliendo con lo se esperaba. Si los datos están en la tabla, los trae al registro y si no están, permite la introducción de nuevos datos.

Ahora se me plantea otra cuestión que si no es mucha molestia, me ayudes con esta pregunta: ¿Es posible codificar el cuadro combinado para que, si los datos no están en la tabla de origen, los busque en otra tabla y las traiga al registro. Y si tampoco están en esa otra tabla, avise con msgbox y permita seguir introduciendo datos?

Yo no se como hacerlo.- GRACIAS

Umm... curiosa pregunta...

A ver, por poder supongo que se podrá, con mayor o menor trabajo (nunca me lo he planteado y no sé el trabajo que dará). Te comento la idea básica de cómo podría hacerse (de nuevo, hablo teóricamente, habría que ver si funciona o no):

1º/ Coger el valor escrito y buscarlo (con DCount, DLookup...) en la tabla 1.

2º/ Si existe, perfecto, no hay que hacer nada.

3º/ Si no existe, habría que buscarlo en la tabla 2.

4º/ Si existe en la tabla 2, habría que cambiar el "origen de la fila" (Rowsource) del combinado al de la tabla 2.

5º/ Y si no existe, avisar con el mensaje y guardarlo en ¿Tabla 1? ¿Tabla 2? Según lo explicado en el artículo.

De todas formas, me parece un proceso bastante engorroso y no le veo mucho sentido a hacerlo, sobre todo teniendo en cuenta que puedes ponerle como "origen de la fila" al combinado una consulta (de union) que te coja el campo de ambas tablas...

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas