首页 > 解决方案 > 离线时通过 MS Access 前端访问 SQL Server 数据库有哪些选择

问题描述

我目前正在制定一个项目提案,该提案需要将多个 Access 数据库移动到一个新的 MS SQL Server 数据库中。这个想法是保持前端程序为MS Access,以便用户熟悉输入数据和创建报告的过程。

然而,事情变得复杂,因为将收集调查的地区的互联网连接不良,并且会不时出现。我曾想过解决这个问题的几种方法,但它们都很麻烦:

1) 有一台带路由器的PC,以离线模式存储SQL Server数据库,数据录入PC通过路由器连接到带有离线数据库的PC。然后,具有 SQL Server 数据库的 PC 可以在具有 Internet 连接时备份服务器上的数据库。

2) 将数据添加到 MS Access 数据库中,然后以指定的增量与 SQL Server 合并(这可能会导致一些问题)。

我们之前为类似项目做过选项 1,但从未在离线模式下连接到 SQL Server 数据库。不过,这似乎是可行的。

我的问题是:是否有人知道将 Access 用作 SQL Server 的前端应用程序并能够在没有 Internet 连接的情况下更新数据的方法?SQL Server 数据库会自动分配主键,因此在同步数据时重复的唯一值不应该成为问题。

谢谢你的帮助。我一直很难在 Google 上找到答案,而且在最好的情况下同步到数据库很复杂。我真的只是在寻找一个起点,看看是否有更简单的方法来实现这一点。

标签: sql-serverms-access

解决方案


我会在所有笔记本电脑上运行 SQL express 的免费版。因此,Access 数据库将是本地版 SQL Express 的前端。SQL express 可以是“主”sql 数据库的订阅者。因此,您可以使用 SQL 复制将这些本地版本的 SQL Server 同步到主服务器。当然,主要的 SQL Server 不能是 SQL Server 的免费版。所以要发布数据库进行复制,你不能使用免费版,但那些免费版当然可以用作订阅者。

这种方法将消除为 Access 应用程序构建或编写特殊软件的需要。因此,您将访问后端(数据表)传统迁移到 sql server,然后只需在每台笔记本电脑上安装 sql express 即可在本地运行 Access 应用程序。然后,当此类笔记本电脑回到办公室时,您将同步到 sql server 的主版本。

另一种可能是采用和使用网络同步框架。这也将允许同步,并且将消除在每台机器上运行 sql expess 的需要。我认为最少的努力是将本地版本的 sql express 与在办公室运行的 SQL Server 的主版本同步(但 SQL Server 的 Office 版本不能是免费版)。


推荐阅读