2017-03-06 76 views
0

我试图在通过VBA的ACCESSDB如下:MSAccess - TransferDatabase - 文件锁定是否打开?

  1. 导出一个单一的表从当前数据库到一个新的数据库在同一目录中,通过查询/ 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. 在上面使用(创建新文件)相同的功能,我试图旁边新ZIP文件在同一目录。结果是1K字节的ZIP文件(这是一个空的ZIP)。

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

我的问题:

  1. 我猜新的DB文件,并随后被TransferDatabase的离开new_db文件开挂,交通不便的ZIP功能。我试图在ZIP函数之前设置各种对象=无,但结果相同。只有当我退出第一个功能并调用第二个功能时,它才能按需要工作。

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

  3. 我的选择是不是一个辅助按钮按到这个任务......

任何建议,以让我跟你去?

  • 谢谢!
+0

创建数据库之后,是不是必须关闭它?像'db_new.application.quit' – geeFlo

回答

1

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

+0

Gahh,你是对的。 “我有Set db = Nothing”。关闭但不完全。这正是问题所在。 - 谢谢! –