Per compattare un Db Access da Vb.Net possiamo benissimo fare uso del JRO.
Prima di ogni cosa dobbiamo aggiungere dei riferimenti al progetto:
Microsoft Access 14.0 Object Library - (o superiore)
Microsoft ActiveX Data Object 6.1 Library - (o superiore)
Microsoft jet And Replication Object 2.6 Library - (o superiore)
Microsoft Office 14.0 Access database engine Object Library - (o superiore)
Microsoft Office 14.0 Object Library - (o superiore)
Adesso passiamo al codice
Dim jro As JRO.JetEngine
jro = New JRO.JetEngine
"Compatto il Db interessato dando il percorso e creo una nuova copia compattata
jro.CompactDatabase("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Aziendale 2012\Aziendale 2012.mdb;Jet OLEDB:Engine Type=5", _
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Aziendale 2012\Aziendale 2012 compact.mdb;Jet OLEDB:Engine Type=5")
"Adesso elimino la vecchia copia e rinomino la nuova
My.Computer.FileSystem.DeleteFile("C:\Aziendale 2012\Aziendale 2012.mdb")
My.Computer.FileSystem.RenameFile("C:\Aziendale 2012\Aziendale 2012 compact.mdb", "Aziendale 2012.mdb")