所以我必须在access07中运行一些查询,然后压缩并修复它。我使用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")
问题是我得到了这个错误。在
^{pr2}$我不知道为什么我得到这个错误,因为我要退出访问,应该关闭文件。如果你知道如何解决这个问题,我们将不胜感激。在
我做了一些改变让你的例子对我有用。要解决您的问题,请添加数据库关闭()
您的代码包括以下行:
当该行执行时,
^{pr2}$CurrentDb()
引用db1.mdb。然后,您将在以下位置获得WindowsError:所以我想知道变量DB是否仍然包含对db1.mdb的引用。也许你可以先在
os.remove()
之前尝试del DB
。在或者,因为你的代码实际上没有使用这个DB变量,所以就把它去掉。在
相关问题 更多 >
编程相关推荐