¿Cómo guardo texto en lugar del identificador numérico de los cuadros combinados?

A ver si podéis echarme una mano porque estoy loco con esto ya, no sé cómo hacerlo.

Tengo una base de datos en la que he creado un formulario para guardar registros que tiene 3 cuadros combinados en cascada: Comunidad Autónoma, Provincia y Localidad. Cada uno de ellos tiene guardados sus respectivos datos en su propia tabla. La tabla de Comunidad tiene los campos IdCom y Comunidad, la tabla de Provincia IdPro, Provincia y IdCom, y la tabla Localidad IdLoc, Localidad y IdPro.

Además tengo una tabla principal con los 3 campos anteriores y otros campos que ya se rellenarían manualmente. El caso es que a la hora de guardar un nuevo registro en la tabla, para el caso de los cuadros combinados, se me guarda el Id de cada cuadro en lugar del nombre de la comunidad, de la provincia y la localidad y si lo cambio para que se me guarden las nombres, ya no me funcionan correctamente los cuadros, solo me guarda el nombre del primer combobox pero el resto ya no me muestra opciones a elegir.

2 Respuestas

Respuesta
1

No sé como haces para guardar, pero, si no son muchos controles(lo digo por no escribir mucho) puedes poner un botón Guardar y en el evento Al hacer clic

docmd.setwarnings false

docmd.runsql"insert into nombretabla(campo1,campo2,....) values('" & me.combo1,column(1) & "', '" & me.combo2.column(1) & "'.....)"

Lo he intentado pero no sé cómo hacerlo. Tengo un botón con una macro que lo que hace es ir a un nuevo registro y limpiar el formulario para empezar a rellenar los campos de ese nuevo registro.

Si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a [email protected] y te mando un ejemplo. Si lo haces, en el asunto del mensaje pon tu alias Jesús ya que si no sé quien me escribe ni los abro.

Respuesta
1

Tu planteamiento inicial, que se guarden en la tabla principal los identificadores numéricos de las tablas "auxiliares" comunidad, provincia y localidad es el correcto desde el punto de vista de una base de datos relacional como Access. Luego por medio de consultas o de la configuración de los cuadros combinados puedes mostrar el valor que desees.

Si insistes en tu idea de guardar los textos en vez de los números (cosa que no te recomiendo), tendrías que modificar el diseño de las relaciones: ya no pueden ser de número a número (la relación es por el campo id), como supongo que tendrás, y deberás hacerlo con el campo tipo texto de las tablas auxiliares. Además, según como hagas la modificación en las relaciones, tendrás que redefinir las propiedades de los cuadros combinados para que o no coja la columna correspondiente al ID, o la columna dependiente sea la de texto.

Un saludo.


La verdad es que no me importa guardar por el Id, lo único que me fastidia de este método es que al explorar los registros guardados, en el combobox me aparece el número Id en lugar del nombre, ¿habría alguna forma de solucionar eso, es decir, que aunque me guarde los Id, me presente los nombres?.

Muchas gracias por contestar.

Muy fácil: creas una consulta con los campos que necesites de la tabla principal, y en vez de coger los campos ids de esa tabla principal, coges los campos de texto de las auxiliares. Luego solo has se exportar esa consulta en vez de la tabla, o bien creas un formulario o informe sobre la consulta y lo exportas.

Disculpa que siga preguntando, pero es que no doy con la tecla.

En el formulario para guardar nuevos registros (que además es el único formulario que tengo y el que guarda todos los datos en la tabla principal), si en vez de guardar uno nuevo quiero ver los anteriores que ya he guardado, como te decía antes, me aparecen los números Id. Con lo que me has dicho antes, ¿aparecerían en ese mismo formulario, en los combobox, los nombres en lugar de los Id (que es lo que realmente se guarda? y si es así, ¿podrías ser más explícito?, es que no sé cómo hacerlo con lo que me has dicho antes.

Muchas gracias de verdad.

No hay problema, tu pregunta hasta que la duda quede resuelta.

Lo que dices de se te ven los números al cambiar de registro, puede que sea porque tienes mal configuradas las propiedades de tus cuadros combinados, en concreto Ancho de columnas. Verás, si tu cuadro combinado provincia de la tabla principal tiene dos columnas (propiedad Numero de columnas) el id y el nombre de la provincia, y quieres que solo se vea el nombre, has de configurar Ancho de columnas de la siguiente manea:

0cm; 4 cm 

El 0 es el tamaño de la primera columna (el id) y el 4 es un valor orientativo, valdría cualquiera que te sirva para mostrar el contenido de la columna completo.

Con lo que yo te digo de la consulta, no te aparecerían los cuadros combinados, sino cuadros de texto, pero a la hora de consultar información (en un formulario para consultas, no para añadir o modificar datos) o de exportar, tendrás los nombres en vez de los Ids.

Para que lo veas un poco más claro, te he preparado un ejemplo rápido: http://filebig.net/files/rXVmAhFViB

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas