2

こんにちは私はPython2.6.5からMSAccess(2010)マクロを実行しています。マクロは正常に実行されていますが、accdbファイルが完全に正しく閉じられていません。マクロの実行後、.laacdbファイルと.accdbファイルが表示されます。CloseCurrentDatabaseステートメントとQuitステートメントを実行するとこれが実行されると思いましたが、そうではありません。コンピューターを再起動すると、.laacdbファイルが消えます。ありがとうございました。

from win32com.client import Dispatch
strDbName = "C:\\converter\\MainConverter.accdb"
objAccess = Dispatch("Access.Application")
objAccess.Visible = False
objAccess.OpenCurrentDatabase(strDbName)
objDB = objAccess.CurrentDb()
objAccess.DoCmd.RunMacro('Export_to_PDF')
objAccess.Application.CloseCurrentDatabase()
objAccess.Application.Quit
4

1 に答える 1

1

VBAでは、オブジェクト変数を定期的に設定しNothingて破棄します。Pythonでは、objAccess変数を明示的に削除してみてください。

del objAccess

申し訳ありませんが、私のPythonは使用されなくなって錆びているので、構文が間違っている可能性があります。しかし、そのようなものが役立つかもしれません。

.Quitまた、メソッドの後に括弧のペアが必要かどうかを思い出せません。念のため、次のようにしてみてください。

objAccess.Application.Quit()

objDBAccess application / dbへの参照がまだ保持されている場合は、それも削除します。

del objDB

ただし、実際に実際のコードの他の場所で使用していない場合は、objDB完全に削除してください。

于 2012-04-20T18:39:51.990 に答える