Access - Recordset estático

 
Vista:

Recordset estático

Publicado por jesus (60 intervenciones) el 29/06/2005 14:43:57
Hola a todos, tengo un problema y es que necesito cargar un recordset con una consulta cuyos datos permanezcan estáticos, pues después de cargarlo, quiero realizar unas actualizaciones en mi BD y más tarde volver a esos datos y tenerlos tal y como estaban cuando cargué el recordset. El problema es que parece que Access actualiza la consulta y ya no salen los mismos registros después de realizar los cambios. Si alguien sabe cómo cargar un recordset con una consulta cuyos datos (y la propia selección de registros) sean estáticos y permanezca igual que en el momento en que la abrí para cargar el recordset aunque haya realizado otros cambios en la BD le estaría muy agradecido.

Espero que se me entienda y muchas gracias por adelantado.
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
Imágen de perfil de Alejandro

Cargar un recordset estático que mantenga los datos originales de una consulta

Publicado por Alejandro (4142 intervenciones) el 06/06/2023 16:47:33
Para cargar un recordset con una consulta cuyos datos permanezcan estáticos, puedes utilizar una tabla temporal en lugar de una consulta directamente. De esta manera, los datos se almacenarán en la tabla temporal y no se verán afectados por los cambios realizados en la base de datos.

Sigue estos pasos para lograrlo:

1. Crea una tabla temporal en tu base de datos con la misma estructura que la consulta que deseas cargar en el recordset. Puedes llamarla, por ejemplo, "TempConsulta".

2. Antes de realizar los cambios en la base de datos, copia los datos de la consulta original a la tabla temporal utilizando una consulta de inserción. Puedes hacerlo de la siguiente manera:

1
2
INSERT INTO TempConsulta
SELECT * FROM TuConsultaOriginal

Asegúrate de reemplazar "TempConsulta" con el nombre de tu tabla temporal y "TuConsultaOriginal" con el nombre de tu consulta original.

3. Luego, carga el recordset utilizando la tabla temporal en lugar de la consulta original:

1
2
Dim rs As DAO.Recordset
Set rs = CurrentDb.OpenRecordset("SELECT * FROM TempConsulta")

Aquí, "TempConsulta" es el nombre de tu tabla temporal.

Ahora, puedes utilizar el recordset "rs" para trabajar con los datos originales de la consulta, y los cambios realizados en la base de datos no afectarán los datos en el recordset, ya que se basa en la tabla temporal.

Recuerda que después de finalizar tus tareas con el recordset, si deseas reflejar los cambios en la base de datos, deberás actualizar la consulta original utilizando los datos de la tabla temporal.

Espero que esta solución te sea útil. ¡Buena suerte con tus consultas en Access!
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