Access - Compactar base durante consulta

 
Vista:

Compactar base durante consulta

Publicado por Adriana (2 intervenciones) el 17/03/2003 20:26:45
Hola, una vez mas aqui me encuentro preguntando.
Al hacer una consulta en Access o al llenar y luego limpiar una tabla los registros ocupan espacio que no es liberado en la base de Access, para liberar ese espacio debo compactar la base, ahora bien, puedo de alguna forma controlar o limpiar el Access desde el código para evitar que la base crezca cada vez que realizo una consulta.
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

Compactar base durante consulta

Publicado por Alejandro (4142 intervenciones) el 26/04/2023 23:46:44
Sí, puedes utilizar el método `CompactDatabase` del objeto `DAO.DBEngine` para compactar una base de datos desde el código de Access. Puedes incluir este método en el evento `OnClose` del formulario o en algún otro evento apropiado para compactar la base de datos automáticamente después de una consulta o una operación de limpieza.

Por ejemplo, para compactar la base de datos actual, puedes usar el siguiente código en un procedimiento de VBA:

1
2
3
4
5
6
7
8
9
10
11
Sub CompactarBase()
    Dim db As DAO.Database
    Set db = CurrentDb()
 
    db.Close
    DAO.DBEngine.CompactDatabase db.Name, "nueva_ruta_y_nombre_de_la_base"
    Kill db.Name
    Name "nueva_ruta_y_nombre_de_la_base" As db.Name
 
    Set db = OpenDatabase(db.Name)
End Sub

Este código cierra la base de datos actual, compacta la base de datos y la guarda en una nueva ubicación, elimina la versión original de la base de datos y renombra la nueva versión con el nombre original de la base de datos. Finalmente, abre la base de datos compactada. Ten en cuenta que si hay otros usuarios conectados a la base de datos, la compactación no podrá completarse hasta que todos los usuarios la cierren.

Espero que esto te ayude a controlar el tamaño de la base de datos de 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