Hola
Tengo unas tablas que están relacionadas, de manera que tengo un campo id que es un contador automático, y detrás tengo los datos de personas o empresas.
Para ir a un ejemplo concreto. En una tabla tengo un listado de empresas. Son varios campos: id, empres, y varios campos con datos de contacto.
En otra tabla tengo datos de personas que pertenecen a estas empresas. Los campos son id, nombre, apellidos, teléfono, correo electrónico.
En una tercera tabla tengo una serie de campos relacionados con trabajos que hacemos con estas empresas. Entre todos los campos, uno es id empresa, y se corresponde con el campo id de la tabla de empresas. Otro es id persona, que se corresponde con el campo id de la lista de personas.
En el formulario que me he hecho, tengo un combo para que al añadir o modificar datos, siempre tome los datos correctos de las tablas de empresas y de personas. Sé hacer que salga el número correspondiente al contador, que se almacena correctamente, pero quiero hacerlo "user friendly", es decir, que en el combo me aparezca el nombre de la empresa, y que en el campo correspondiente guarde el id de la empresa. Lo mismo con las personas de contacto, solo que complicándolo un poco. Quiero que se vean los apellidos, una coma y el nombre (que están en dos campos separados en su tabla correspondiente), y que seleccione la id que le toca a la persona que se seleccione.
¿Cómo se puede hacer esto?
Muchas gracias
Vamos por partes.
Para que el combo muestre el nombre de la empresa pero en realidad trabaje con el ID necesitas que tu combo tenga dos columnas.
La consulta de origen de tu combo deberá incluir esos datos, por ejemplo podría ser algo así
Select ID, nombre from tablaempresas
Luego, debes ajustar las propiedades de cuadro combinado para decirle que tiene 2 columnas.
Utiliza las propiedades Número de columnas y Ancho de columnas
Si no quieres que no se vea el ID, en el ancho de las columnas dile que la primera columna tiene ancho cero.
Para decirle en qué columna está el dato del que toma el valor, utiliza la propiedad Columna Dependiente. en este caso la columan dependiente es la 1, porque el ID es el primer campo que tenemos en nuestra consulta.
Para mostrar "apellidos, nombre" defínelo en la consulta de origen del control, Origen de la fila
podría ser algo así:
Select ID, apellidos & ", " & nombre as nombrecompleto from tablapersonas
------
Ya sé Excel, pero necesito más.
Muchas gracias.
Probaré y te iré diciendo, porque estoy algo oxidado de SQL para Access ;)
Saludos
Bueno, no sé cómo atacarlo.
Pongo un ejemplo para que quede claro.
En la tabla de tareas, tengo una tarea asignada al número 5. En la tabla hay un campo que se llama "AsignadoA" en el que hay números.
Estos números se corresponden con el contador automático que hay en el primer campo de la tabla de Personal.
Si entras en la tabla de personal, buscas el 5 y te da un nombre, por ejemplo "Juan Fernández"
Yo quiero que, al ir moviéndome por los registros, el control sepa que cada vez que encuentra el número 5, en vez de presentar ese número, diga "Juan Fernández".
Entiendo que debo definir una consulta, y luego presntarla en el combo como me dices, pero no sé cómo hacerlo o si tengo que actualizarla cada vez que me muevo de registro en la primera tabla o qué.
Entiendo que tengo que poner la condición en la consulta de que el valor del campo id sea el que aparece en el registro actual del campo "AsignadoA", pero no sé cómo hacerlo.
Saludos