Disculpa el retraso, he estado algo ocupado y no he tenido mucho tiempo para atenderte. Hace mucho tiempo intenté lo que ahora solicitas pero la verdad ya no lo recordaba y no lo he llevado más que una sola vez a la práctica:
<pre>Hay que hacer una referencia a :
Microsoft Jet and Replication Objects 2.6 Library
Sub Compactar()
' Compactar una base de datos con ADO
Dim sDBTmp As String
Dim je As JRO.JetEngine
'
On Error GoTo ErrCompactar
'
Set je = New JRO.JetEngine
'
' Crear un nombre "medio" aleatorio
sDBTmp = "DBT_" & Format$(Minute(Now), "00") & Format$(Second(Now), "00") & ".mdb"
' Asegurarnos de que no existe una base con el nombre temporal
If Len(Dir$(sDBTmp)) Then
Kill sDBTmp
End If
'
MsgBox " Compactando la base de datos..."
' Compactar la base de datos
je.CompactDatabase "Data Source=" & "Nombre Bd" & ";", _
"Data Source=" & sDBTmp & ";"
'
' Eliminar la base de datos original
Kill "Nombre bd"
'
' Renombrar la base temporal con el original
Name sDBTmp As "Nombre BD"
'
MsgBox " Base de datos compactada."
'
Exit Sub
'
ErrCompactar:
' Mostrar el mensaje de error
MsgBox "Error al compactar la base de datos:" & vbCrLf & _
Err.Number & " " & Err.Description, _
vbExclamation, "Error al compactar la base de datos"
Err.Clear
MsgBox " *** Error al compactar la base de datos ***"
End Sub<span style="font-family: Arial; font-size: x-small;"><span style="font-family: Arial; font-size: x-small;">
</span></span>
Origen:
http://foro.todopocketpc.com/showthread.php?t=83931Espero te sea de utilidad. Saludos desde México. Juan Pablo E.P.
</pre>