I found this in some old code, but don't think I ever tried it and have no idea where it came from, but you might give it shot.
public static void CompactAccessDB(string connectionString, string mdwfilename)
{
object[] oParams;
object objJRO = Activator.CreateInstance(Type.GetTypeFromProgID("JRO.JetEngine"));
oParams = new object[] { connectionString, "Provider=Microsoft.Jet.OLEDB.4.0;Data" +
" Source=C:\\tempdb.mdb;Jet OLEDB:Engine Type=5"};
objJRO.GetType().InvokeMember("CompactDatabase",
System.Reflection.BindingFlags.InvokeMethod,
null,
objJRO,
oParams);
System.IO.File.Delete(mdwfilename);
System.IO.File.Move("C:\\tempdb.mdb", mdwfilename);
System.Runtime.InteropServices.Marshal.ReleaseComObject(objJRO);
objJRO = null;
}
Maybe that'll give you some ideas of what to google anyway.