我正在通过VBA在AccessDb中尝试以下操作:
通过Query / TransferDatabase将当前数据库中的单个表导出到同一目录中的新数据库中。这似乎按预期工作。
Dim ws As Workspace
Dim db_new as Database
strPath = CurrentProject.Path & "\Backend_Database\"
strDBFilename = strPath & Raw_Count_File.accdb"
Set ws = DBEngine.Workspaces(0)
Set db_new = ws.CreateDatabase(strDBFilename, dbLangGeneral)
DoCmd.TransferDatabase acExport, "Microsoft Access", _
strDBFilename, acTable, "tmp_RawCountFile", "Raw_TblMatchedTB"
在上面使用的同一个函数中(创建新文件),我试图将新文件压缩到同一目录中。结果是1K字节ZIP文件(它是一个空的ZIP)。
如果我将创建ZIP文件的代码段分解为单独的函数(即在另一个按钮下),则该函数按预期工作并创建正确的ZIP文件。
我的问题:
我猜测新的DB文件和后续的TransferDatabase使new_db文件保持打开状态并且ZIP功能无法访问。我尝试在ZIP函数之前设置各种对象=什么,但结果相同。只有当我退出第一个函数并调用第二个函数时,它才会按预期工作。
我可以在TransferDatabase函数的末尾添加一些内容,以确保生成的文件可用于ZIP任务吗?
我的首选是不要在此任务中添加辅助按钮...
有什么建议让我离开吗?
答案 0 :(得分:1)
在压缩之前尝试Set db_new = Nothing
,以便关闭新创建的数据库。