Access - base de datos de

 
Vista:

base de datos de

Publicado por umr (1 intervención) el 04/08/2006 12:01:22
hola, necesito ayuda,

tengo una tabla en acces de una unica fila con valores que está vinculada a una tabla de excel que va cambiando sus valores periodicamente. la tabla de acces se va por lo tanto actualizando, pero necesitaria guardar una base de datos de los datos que van cambiando, es decir, crear una base de datos que guarde todos los datos, una fila por cada cambio, registrando además a ser posible la hora en la que se ha producido el cambio.

agradeceria muchisimo cualquier ayuda que pudierais ofrecerme ya que estoy trabajando en un proyecto en el que hasta solucionar esto estoy atascada.

muchisimas gracias
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

Crear una tabla histórica para almacenar cambios de una tabla vinculada a Excel

Publicado por Alejandro (4142 intervenciones) el 24/07/2023 20:07:00
Para guardar una base de datos histórica con todos los datos cambiados de la tabla vinculada a Excel en Access, puedes seguir estos pasos:

1. Crea una nueva tabla en Access:
- Abre tu Base de Datos de Access y crea una nueva tabla donde almacenarás los datos históricos. Puedes llamarla, por ejemplo, "TablaHistorica".

2. Agrega campos a la tabla histórica:
- En la tabla "TablaHistorica", agrega los mismos campos que tienes en la tabla vinculada a Excel, más un campo adicional para registrar la hora en que se produjo el cambio. Por ejemplo, puedes tener campos como "Campo1", "Campo2", "Campo3", etc., y un campo llamado "FechaHoraCambio" para la marca de tiempo.

3. Configura un evento en la tabla vinculada a Excel:
- Abre la tabla vinculada a Excel en Access. Asegúrate de que tengas un campo único o una combinación de campos que actúen como clave primaria (ID) para identificar cada registro de manera única. Si no lo tienes, considera agregar uno.
- Haz clic en la pestaña "Diseño" (Design) y selecciona "Propiedades" (Properties) en la cinta de opciones.
- Ve a la pestaña "Eventos" (Events) y busca el evento "Al actualizar" (After Update).
- Haz clic en el botón con tres puntos (...) para abrir el editor de VBA.

4. Escribe el código VBA:
- En el editor de VBA, escribe el siguiente código:

1
2
3
4
5
6
7
8
9
10
Private Sub Form_AfterUpdate()
    On Error Resume Next
    DoCmd.SetWarnings False ' Deshabilitar mensajes de alerta, como "¿Quieres guardar los cambios?"
 
    ' Copiar los datos actualizados a la tabla histórica
    DoCmd.RunSQL "INSERT INTO TablaHistorica (Campo1, Campo2, Campo3, FechaHoraCambio) " & _
                 "SELECT Campo1, Campo2, Campo3, Now() FROM TuTablaVinculada WHERE ID = " & Me.ID
 
    DoCmd.SetWarnings True ' Volver a habilitar los mensajes de alerta
End Sub

Asegúrate de reemplazar "TablaHistorica" con el nombre real de tu tabla histórica y "TuTablaVinculada" con el nombre real de tu tabla vinculada a Excel. Además, asegúrate de que el campo "ID" en el código coincida con el campo único o combinación de campos que actúen como clave primaria en tu tabla vinculada.

5. Guarda y prueba:
- Guarda los cambios en la tabla vinculada a Excel y cierra el editor de VBA.
- A partir de ahora, cada vez que actualices un registro en la tabla vinculada, se copiará una nueva fila con los datos actualizados en la tabla histórica, incluyendo la fecha y hora del cambio.

Con este enfoque, tendrás una tabla histórica que registra todos los cambios realizados en la tabla vinculada a Excel junto con la hora en que se produjeron. Esto te permitirá mantener un registro histórico de los cambios realizados a lo largo del tiempo.

Espero que esta solución te ayude a avanzar en tu proyecto. ¡Buena suerte!
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