Hello I had a very similar problem with an Access database not closing in a VB.NET application. I tried various things like waiting for 5 seconds, a loop retrying every few seconds, adding "OLE DB Services=-4" to the connection string. Nothing worked reliably until I added these two lines after all the database close statements:
GC.Collect()
GC.WaitForPendingFinalizers()
I hope this helps. Marek