Access - actualizar + recordset

 
Vista:

actualizar + recordset

Publicado por ivan (3 intervenciones) el 10/01/2008 14:39:21
Hola a todos.

En un inventario de aparatos tengo dos tablas, equipos y nueva_equipos, una antigüa y otra nueva la cual debo completar con datos de la primera.

En ambas tablas guardo el campo id_equipo, que es clave única y que identifican a cada registro. En la más antigüa hay más registros que en la nueva, que contiene los datos más reales del inventario. Necesito actualizar registro por registro la nueva tabla con datos de la antigüa y no se como hacerlo.

Para cada registro de la tabla nueva debería buscar el id_equipo en la antigüa, leer unos datos y actualizar la nueva con ellos.

He leido algo acerca de los recordset, pero no los se aplicar.

¿Alguien me puede ayudar?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:actualizar + recordset

Publicado por JOSELO (232 intervenciones) el 10/01/2008 14:50:46
Hola Ivan.

A ver si comprendí lo que necesitas

- Leer primer registro de la tabla vieja.
- Buscar este ID en la Tabla Nueva. SI lo encuentra: Pasa los datos que leyo en la tabla vieja.
- Guardar cambios en el registro encontrado de la tabla nueva.
-Pasar al siguiente registro de la tabla vieja
(Repetir todo esto hasta que leo todos los registros de la tabla vieja)

Ahora las preguntas
¿Porque no tienen la misma cantidad de registros las 2 tablas?
¿Los pasos que te comente anteriormente, son los correctos?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar + recordset

Publicado por ivan (3 intervenciones) el 10/01/2008 15:01:49
Si, eso es lo que necesito.

Y ahora te contesto las preguntas.

Las dos tablas no tienen los mismos registros por que la antigüa es un inventario que no se ha mantenido correctamente, y ahora tiene registros de más y muchos mal actualizados, mientras que la nueva contiene el inventario real. Se ha decidido no mantener la tabla antigüa por que hay cambios importantes en los datos que se recogen y en la gestión de los mismos.

Y sí, los pasos serían los correctos aunque yo lo había planteado a la inversa.

- Leo el primer id de registro de la tabla nueva (que son los que realmente valen)
- Buscar el id en la tabla vieja. Si lo encuentra actualizar ciertos campos de la nueva con los datos de la vieja.
-Guardar los datos del registro en la nueva
- Pasar al siguiente registro de la nueva.
Repetir el preceso hasta terminar la tabla nueva.

Como ves supone quizás lo mismo, pero al tener menos la nueva y ser además la que contiene los datos reales imagino que serían estos los que hay que buscar, no los de la vieja.

El resultado seguramente será el mismo, pero creo que la lógica iría más por aquí ¿no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar + recordset

Publicado por Chea (1015 intervenciones) el 10/01/2008 18:09:16
Se podría hacer con un recordset, pero parece que también valdría una consulta de actualización que ofrecería mejor rendimiento.

En vez de buscar un registro en la nueva tabla, haces una consulta con ambas tablas en las que la relación se establece por el campo ID por el que buscarías y haces que esa consulta sea de actualización.

Saludos
José Bengoechea Ibaceta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar + recordset

Publicado por ivan (3 intervenciones) el 11/01/2008 08:53:28
No te he comprendido. Bueno, quizás si pero no se si eso que comentas se puede hacer en access 97 que es el que uso. ¿Se puede?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:actualizar + recordset

Publicado por Chea (1015 intervenciones) el 11/01/2008 17:23:06
Se puede hacer perfectamente en A97.

Empieza diseñando una consulta que relacione ambas tablas a través del campo común. Luego, en el menú eliges el tipo de consulta "Consulta de actualización"

Te añadirá una fila más de casillas, con nombre "Actualizar a". En esa casilla, en la columna del campo que deseas actualizar, pones el nombre del campo de la otra tabla de donde toma el valor; como es fácil que se llamen igual, distínguelos añadiendo el nombre de la tabla por delant. Por ejemplo, en la casilla "Actualizar a" del campo ID de la tabla1, puedes poner:

[tabla2].[ID]

Finalmente, buscas un botón que es "ejecutar consulta" y lo pulsas.

Naturalemente, los experimentos sólo con copias de la BD buena.

Saludos
José Bengoechea Ibaceta

.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar