MSAccess - TransferDatabase - 文件已锁定打开?

时间:2017-03-06 19:03:41

标签: ms-access

我正在通过VBA在AccessDb中尝试以下操作:

  1. 通过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"
    
  2. 在上面使用的同一个函数中(创建新文件),我试图将新文件压缩到同一目录中。结果是1K字节ZIP文件(它是一个空的ZIP)。

  3. 如果我将创建ZIP文件的代码段分解为单独的函数(即在另一个按钮下),则该函数按预期工作并创建正确的ZIP文件。

  4. 我的问题:

    1. 我猜测新的DB文件和后续的TransferDatabase使new_db文件保持打开状态并且ZIP功能无法访问。我尝试在ZIP函数之前设置各种对象=什么,但结果相同。只有当我退出第一个函数并调用第二个函数时,它才会按预期工作。

    2. 我可以在TransferDatabase函数的末尾添加一些内容,以确保生成的文件可用于ZIP任务吗?

    3. 我的首选是不要在此任务中添加辅助按钮...

    4. 有什么建议让我离开吗?

      • 谢谢!

1 个答案:

答案 0 :(得分:1)

在压缩之前尝试Set db_new = Nothing,以便关闭新创建的数据库。