通过VBA删除后端文件

时间:2015-04-14 02:24:37

标签: vba frontend backend lockfile

我有一个多用户数据库(POS /计费系统),分为前端和后端。每个用户都在平板电脑上拥有这两个文件的副本,并且在办公室中保留了主副本。每个用户发送导入主数据库的每日数据导出,并且每周一次,主数据库的副本可供所有用户导入其平板电脑。新数据库文件的当前日期为前缀。 (例如2015-04-10_BE_MYDATABASE.mdb)所有这一切都是通过VBA完成的,一切正常。但是,我的问题是我最终在平板电脑上有多个文件,有时用户将前端连接到错误的(较旧的)后端。

我想要做的是当用户更新数据库时,删除他们连接的当前后端文件。我创建了代码以将当前数据库的备份副本保存在不同的文件夹中,然后将我的所有表连接到新导入的数据库。但是,由于锁定文件,我无法删除/终止当前数据库。

请帮忙。

1 个答案:

答案 0 :(得分:0)

我没有通过简单再现你的情况来重现错误。

此代码将Frontend.accdb中的Table1从Backend1.accdb(当前已链接)切换到Backend2.accdb。切换到Backend2.accdb后,Backend1.accdb未锁定,可以移动或删除。

Sub RelinkDb()
    Dim db As DAO.Database
    Dim td As DAO.TableDef

    Set db = CurrentDb
    Set td = db.TableDefs("Table1")
    td.Connect = ";DATABASE=C:\Users\...\Documents\Backend2.accdb"
    td.RefreshLink
End Sub

尝试创建测试环境,尽可能减少数据库(消除查询,表和其他数据库对象),同时仍然可以重现问题。一旦你能在简单的环境中解决问题,通常解决方案就变得很明显了。