Questo e' il codice da usare per compattare.
Era sul forum ma non l'ho trovato, quindi te lo riposto.

Ovviamente lo devi adattare x compattare il tuo MDB.
Ciao.

codice:
Option Explicit
Private Sub Command1_Click()
   Dim CONN As JRO.JetEngine
   Dim CONN_Sorg As String
   Dim CONN_Dest As String
   
   ' Attenzione : Il programma compatta i database di access 97.
   ' Per compattare database diversi da access 97 cambiare il "Engine Type=4"
   '                              es. access 2000 cambiare il "Engine Type=5"
   Screen.MousePointer = vbHourglass
   On Error GoTo ConnectionError
   
   Set CONN = New JRO.JetEngine
   '
   If Dir("C:\Temp\New_Biblio.mdb") <> "" Then
      Kill "C:\Temp\New_Biblio.mdb"
   End If
   '
   CONN_Sorg = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\Biblio.mdb;User ID=Admin;Password=;"
   CONN_Dest = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Temp\New_Biblio.mdb;Jet OLEDB:Engine Type=4;"
   '
   CONN.CompactDatabase CONN_Sorg, CONN_Dest
   '
   Set CONN = Nothing
   '
   If Dir("C:\Temp\Biblio.mdb") <> "" And Dir("C:\Temp\New_Biblio.mdb") <> "" Then
      Kill "C:\Temp\Biblio.mdb"
      FileCopy "C:\Temp\New_Biblio.mdb", "C:\Temp\Biblio.mdb"
   End If
   '
   On Error GoTo 0
   Screen.MousePointer = vbDefault
   
ExitError:
   Exit Sub
   
ConnectionError:
   Screen.MousePointer = vbDefault
   '
   MsgBox " VB #" & Err.Number & " " & Err.Description & " " & Err.Source
   '
   Resume ExitError
   
End Sub