0

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

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

请帮忙。

4

1 回答 1

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

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

于 2015-04-14T02:48:47.420 回答