¿Como Autorrellenar una columna de una tabla con datos de otra tabla en access 2010 ?

Tengo una tabla en Access 2010, en ella tengo datos de mis clientes, y tengo una columna de la actividad que ejerce, me gustaría que indicando el epígrafe en el que esta, la siguiente columna que seria el nombre de dicho epígrafe se rellenara automáticamente.

Tengo otra tabla aparte, donde en una columna están todos los epígrafes, y en la columna "2" esta la descripción.

Necesito por favor ayuda para ahorrarme muchísimo trabajo.

2 respuestas

Respuesta
2

El problema de las tablas es que no tiene código(por cierto, y sin ánimo de criticar, tampoco tienen columnas, tiene campos). Por eso, si tienes hecho un formulario para poner los datos, en el evento Después de actualizar del cuadro de texto Epígrafe puedes poner

actividad=dlookup("actividad","Epigrafes","epígrafe='" & me.epigrafe & "'"

Es decir, que una vez que has escrito el epígrafe, el valor que te muestre en el cuadro de texto Actividad, sea igual a la actividad de la tabla epígrafes en que el valor de epígrafe sea igual al que has escrito.

De todas formas, si pudieras poner una vista del diseño de ambas tablas, se podría concretar una respuesta mejor.

Respuesta
2

Si mal no recuerdo, Access 2010 incorpora macros de datos, que te permiten automatizar ciertas tareas directamente desde las tablas. Por ahí podrías conseguir algo parecido a lo que buscas.

Pero, en mi opinión, y para el caso que comentas, la estructura que tienes montada no es la más adecuada, pues si ya tienes la descripción en la tabla epígrafes, escusas volver a poner los mismos datos en la tabla de clientes (va en contra de las formas normales de una base de datos). Como ambas tablas estarán relacionadas por medio del epígrafe, puedes hacer una consulta con los campos de la tabla clientes más el campo descripción de la tabla epígrafes. Así, al trabajar en la consulta (o con un formulario sobre la consulta) para añadir o modificar registros, cada vez que pongas un epígrafe, automáticamente te pondrá la descripción.

Te he preparado dos ejemplos con todo esto:

Ejemplo con consulta

Ejemplo con macros de datos (hay dos tablas con una macro diferente cada una, la "pega" es que no te actualiza hasta que cambias de registro, es lo mejor que pude conseguir...)

Y tendrías aun otra opción sin necesidad de duplicar la información, pero trabajando con formularios: añades un cuadro de texto independiente y le pones el código que te dice Icue. De esta forma verás la descripción en el formulario al poner un epígrafe, pero no la guardas en la tabla de clientes

Un saludo.


Muchísimas gracias por la ayuda y sobretodo por los ejemplos que me has puesto. Verdaderamente necesito más el ejemplo con macros de datos, lo que pasa que mi tabla es más amplia que la del ejemplo que me has dado, con más campos. He intentando en el Access que me has mandado de ejemplo, añadir campos extras, pero al añadir algún campo, deja de hacer lo que yo necesito. De que manera podría yo añadirle campos sin perder el trabajo que tu has hecho.

Muchísimas gracias de antemano.

Quizás sea por la fiebre que tengo, pero no acabo de ver tu pregunta...

Cualquiera de las macros de datos de los ejemplos son independientes del número de campos que tenga la tabla, pues el único valor que le afecta es el del campo "epigrafe".

Como te decía en la respuesta inicial, este planteamiento con macros de datos tiene un "problema": el campo "descripción" solo se rellena al cambiar de registro. Ten en cuenta que las macros de datos son más limitadas que las macros de formulario o el código VBA, y si lo quieres hacer así, ya tienes la respuesta de Icue.

Acabo de probar a añadir más campos a las tablas y funciona perfectamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas