'************************************************************************************************** 
'* Si esta cerrada, repara y compacta la base de datos pasada como
'* argumento
'*
'* uso en el evento al cerrar del formulario principal de la base de datos
'* se insertan las siquientes instrucciones
'* Private Sub Form_Close() 
'* Shell "Wscript " & curDir & "\compacta.vbs " & CurrentDb.Name 
'* Application.Quit 
'* End Sub 
'*
'* ESH 26/05/03 19:25 
'************************************************************************************************** 

Dim strArchivo, _ 
    objDBEngine, _ 
    strTemporal, _ 
    fso, _ 
    objArgumentos , _
    WshShell

' creo objetos
Set objArgumentos = WScript.Arguments 
Set objDBEngine = CreateObject("DAO.DBEngine.35") 
Set WshShell = WScript.CreateObject("WScript.Shell")

' espero un poquito, a que se cierre la base de datos
WScript.Sleep 2500 

' obtengo el archivo pasado como argumento 
strArchivo = objArgumentos(0) 

' reparo la base de datos    
objDBEngine.RepairDatabase strArchivo 

MsgBox "La base de datos " & strArchivo & " ha sido reparada con exito", vbInformation + VbOKOnly 

Set fso = CreateObject("Scripting.FileSystemObject") 

' creo en el directorio temporal por defecto, una base de datos 
' temporal utilizando un número aleatorio 
' la base de datos se compactará sobre esta temporal 

Randomize 
strTemporal = fso.GetSpecialFolder(2) & "\TempDB" & _ 
Int((999 * Rnd) + 1) & ".mdb" 

' Compacto la base de datos en la temporal 
objDBEngine.CompactDatabase strArchivo, strTemporal 
' si la compactación finaliza correctamente, elimino la base de datos 
' original y renombro la temporal 
fso.DeleteFile strArchivo 
fso.MoveFile strTemporal, strArchivo 

MsgBox "La base de datos " & strArchivo & " ha sido compactada con exito", vbInformation + VbOKOnly 

    Source: geocities.com/es/ensolva/Descargas/Documentos

               ( geocities.com/es/ensolva/Descargas)                   ( geocities.com/es/ensolva)                   ( geocities.com/es)