'**************************************************************************************************
'* 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
               (
geocities.com/es/ensolva/Descargas)                   (
geocities.com/es/ensolva)                   (
geocities.com/es)