¿Compactar reparar base de datos ?

Que código colocaría en el formulario con un botón .. La opción de compactar y reparar base de datos.

2 respuestas

Respuesta
1

Isabel, en principio no necesitarías dicho botón, ya que tienes la opción de Archivo- Opciones - Base de datos actual y marcar la casilla Compactar al cerrar. Pero si pese a eso quieres poner un botón puedes poner en su evento Al hacer clic

Application.SetOption "Auto Compact", True
DoCmd. Quit

Respuesta
1

Si va a compactar el back end SI necesita alguna forma de llamar una función o procedimiento. Cuando empleaba Access como back end utilizaba esta función.

Function CompactaBackEnd()
    On Error GoTo CompactaBackEnd_Err
    Dim strPath As String
    DoCmd.Echo True, "Compactando el BackEnd ....."
    DoCmd.Hourglass True
    strPath = CurrentProject.Path    '& "\" & "dbRifas_bs.mdb"
    DBEngine.CompactDatabase strPath & "\dbRifas_bs.mdb", strPath & "\tem.mdb"
    If Err.Number = 0 Then    ' Borrar la base datos original y renombra el archivo temporal
        Kill strPath & "\dbRifas_bs.mdb"
        Name strPath & "\tem.mdb" As strPath & "\dbRifas_bs.mdb"
    End If
    DoCmd.Hourglass False
    DoCmd.Echo False
    MsgBox "BacKend Compactado satisfactoriamente !!", vbInformation, "Compactando Tablas del sistema "
CompactaBackEnd_Err_Exit:
    DoCmd.Echo False
    DoCmd.Hourglass False
    Exit Function
CompactaBackEnd_Err:
    MsgBox "Ha ocurrido en siguiente error . " & Err.Description, vbExclamation, "Error al compactar tablas del sistema"
    Resume CompactaBackEnd_Err_Exit

Y llamaba la función desde el Front End mediante una macro. Si utiliza este código debe reemplazar dbRifas_ds.mdb, por el nombre de su base de datos back end, si utiliza Access 2007 o superior cambie las extensiones mdb por accdb.

Si va a compactar el Front End siga la explicación que le dan y haga caso omiso a este código.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas