¿Cómo hacer que lo que escriba en el formulario en cuadros combinados, aparezcan en la tabla como códigos?

dias/tardes/noches chicos, quería hacerles esta pregunta, estoy encargado de realizar una automatización de una base de datos y decidí utilizar Acess, solo que a medida que me vienen datos me doy cuenta de que necesito aun más cosas.

Yo tengo varios formularios, con cuadros combinados, para ahorrar la escritura y solo seleccionar la opción correcta, el problema, es que me gustaría hacer que cada opción del cuadro combinado, tenga un código que sea el que se escriba en la tabla.

Por ejemplo, tengo en la lista de cuadro combinados varios países, como: Ecuador, Cuba, Argentina, Francia. Y al seleccionarlo, quisiera que en la tabla donde se guardan los datos se guarden como sus códigos respectivos, Si seleccionamos Ecuador, en la tabla aparezca el 1, si seleccionamos francia aparezca el código 430 por ejemplo.

¿Es posible?

1 respuesta

Respuesta
1

En principio no tienes ningún problema, Vamos a suponer que tienes una tabla Países, con Cod(numérico o autonumérico, como quieras), Pais

Supongamos que tienes una tabla Clientes con Idcliente, Nombre, etc, idPais, etc.

Si has hecho un formulario Clientes con estos campos, en vista diseño del formulario cambia el cuadro de texto Idpais por un combinado, con origen de control en el campo Idpais y en sus propiedades-Datos-origen de la fila selecciona Países y en la solapa formato donde pone

Numero de columnas 2

Ancho de las columnas 0;3

Aunque a la columna del Idpais le pongas como ancho 0, al ser la columna dependiente, en la tabla Clientes, te guardará el 1, 5, 30, etc.

Buenas Icue, ahorita no estoy en la oficina para probarlo, pero, en ese caso, ¿funcionaria para que se vea el cuadro combinado con el nombre del país?

Porque hasta que obtuviera tu respuesta, hice un cuadro combinado pero con dos columnas, una que es el ID que necesito y la otra de países.

Así cuando aparece el cuadro combinado sale por ejemplo

1 Ecuador

2 Brasil

5 Rusia

Pero al seleccionar, el cuadro, en el formulario sale con el numero, ¿saliera 1 o 5 pero no apareciera el nombre "rusia" esto se puede arreglar con tu forma? ¿O yo estoy haciendo algo mal?

En el trabajo te respondo cuando lo pruebe y Gracias por la ayuda

Supongamos que tienes una tabla Clientes, con Codliente, Nombrecliente, etc. Supongamos también que tienes una tabla Facturas con Idfactura, Codcliente, FechaFactura, etc. Spongamos que has hecho un formulario Facturas. Si dejas el cuadro de texto Codcliente, muy probablemente no te acuerdes del ódigo que tiene un determinado Cliente pero si ves el nombre si, por eso te decía que lo convirtieras en un combinado. En sus propiedades-origen de la fila, pulsa el botón del generador de consultas(el de los tres puntos) y añade la tabla Clientes y lleva a la cuadrícula de diseño, los campos Idcliente y NombreCliente. Luego en las mismas propiedades, en la solapa formato le pones en ancho... lo que te decía en la respuesta anterior.

De todas formas, si quieres, repito, si quieres, mándame un mensaje(sólo el mensaje) a cabarcos@ono y te mando unos ejemplos. Si lo haces, en el asunto del mensaje pon tu alias Marco Guerra, ya que si no sé quien me escribe ni los abro.

Gracias, en serio que funciono, interesante que por el tamaño de columnas todo pueda cambiar, me has enseñado bastante. Quería preguntarte si se puede hacer otra cosa, no se si crear otro hilo para la consulta, o hacerlo aquí mismo.

Esta vez se trata de establecer que cuadros combinados, aparezcan solamente si ya se eligió una opción antes,

En este caso son sobre provincias cantones y parroquias

Hay 12 provincias, como 200 cantones y como 1000 parroquias, quería saber si hay una forma de que según vayas seleccionando, aparezcan solamente las cantones que pertenecen a esas provincias y que las parroquias aparezcan según los cantones que necesites.

Agradecería mucho tu ayuda de nuevo y si tengo que crear otro hilo, seria también bueno saberlo.

Es sencillo, todo depende de las tablas que tengas.

1º Vamos a suponer que tienes una tabla País con Idpais Y nombrepais. Otra tabla Canton con Idcanton, Idpais y Canton y por último una tabla Parroquias con IdParroquia. Idcanton y Parroquia. Vamos a suponer que el primer combinado se llama ElegirPaís, el segundo, ElegirCantón y el tercero ElegirParroquia.

º Puedes dejar el origen de la fila de los combinados ElegirCanton y Elegirparroquia y en el evento después de actualizar del combinado elegirpais poner

elegircanton.rowsource="select Idcanton,canton from Canton where idpais=" & me.elegirpais & "" 

Y en el mismo evento pero del cuadro combinado Elegircanton

elegirparroquia.rowsource="select Idparroquia,parroquia from Parroquias where idcanton=" & me.elegircanton & ""

2º Misma premisa pero sin código. Deja todo como estaba, con el origen de la fila como lo tuvieras y en el origen de la fila del combinado ElegirCanton, añade a la cuadrícula de diseño de la consulta el campo Idpais, ponlo como no visible y debajo, en la casilla de criterios pon forms! Nombredelformulario! Elegirpais

Y en el combinado Elegirparroquia, lo mismo pero en ves de Idpais, pon Idcanton y debajo

Forms! Nombredelfom! Elegircanton

En el caso de que solo haya una tabla con país, canton y parroquia, lo que convendría es que los combinados, sólo tuvieran una columna mostrando el país, el canton y la parroquia respectivamente. Se haría los mismo de arriba pero en el origen de la fila tanto del combinando Elegirpais como del Elegircanton, en su origen de la fila, ponerle lo de Agrupar y ordenar. Poniendo como criterio

En código

elegircanton.rowsource=" select canton form nombreunicatabla where pais='" & me.elegirpais & "'"

es apostrofe comillas & y al final & comillas apostrofe comillas

y en el combinado Elegircanton

elegirparroquia.rowsource="select parroquia from unicatabla where canton='" & me.elegircanton & "'"

¡Gracias! Me sirvió mucho! Si tengo alguna otra duda te lo comunico, me demore mucho entendiéndolo, pero por fin ya funciono, gracias!

De hecho ahora que realizo otra prueba, me doy cuenta, que cuando coloco el 1er cuadro que seria en mi caso Provincia, todo bien, porque al pulsar al 2do cuadro, me salen solamente los cantones de esa provincia, y así cuando escojo parroquias, me sale solamente las provincias de ese canton. TODO ESTA BIEN

Pero hay algo que me confunde, tengo que aplastar manualmente F5 para que se actualize el formulario, porque al cambiar la provincia, el canton NO cambia, tengo que hacerlo manualmente con el F5 para que se refresque y aparezcan los cantones de esa provioncia.

Y es raro, porque cuando por ejemplo, yo quite un canton, automáticamente la provincia si se pone en blanco, como si se refrescara automáticamente, a diferencia del de canton, si cambio provincia, tengo que apretar F5 para que actualize y funcione.

¿Por qué se debe esto? ¿Hay alguna forma de programar los botones para que se actualicen al más mínimo cambio? Para evitar presionar el botón F5

Como no sé que opción has elegido, si por código o por generador, lo mejor es que en el combinado ElegirCanton, en el evento A recibir el enfoque pongas

Elegircanton. Requery

Y en elegirparroquia

Elegirparroquia. Requery

¡Gracias!

Gracias! Te adoro un montón me has ayudado un mundo, si necesito más ayuda no dudare en preguntarte, gracias por tu tiempo y paciencia, eres el mejor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas