Хорошо, поэтому мне нужно выполнить несколько запросов в access 07, затем сжать и восстановить его.Я использую Python и Win32com, чтобы сделать это.Код, который я сейчас использую:
import os;
import win32com.client;
DB1 = 'db1.mdb'
DB2 = 'db1N.mdb'
DB3 = 'db2.mdb'
DBR = r'db1.mdb'
access = win32com.client.Dispatch("Access.Application")
access.OpenCurrentDatabase(DBR)
DB = access.CurrentDb()
access.DoCmd.OpenQuery("1")
access.DoCmd.OpenQuery("2")
access.DoCmd.OpenQuery("3")
access.CloseCurrentDatabase()
access.Application.Quit();
os.system('copy "db1.mdb" "db2.mdb"')
access = win32com.client.Dispatch("Access.Application")
access.CompactRepair(DB3,DB2)
access.Application.Quit();
os.remove("db2.mdb")
os.remove("db1.mdb")
os.rename("db1N.mdb","db1.mdb")
Проблема в том, что я получаю эту ошибку.
WindowsError: [Error 32] The process cannot access the file because it is being used by another process: 'db1.mdb'
Я не знаю, почему я получаю эту ошибку, видя, как явыход из доступа, который должен закрыть файл.Любая идея, как это исправить, будет принята с благодарностью.