Web 服务器和客户端网络之间的关系不清楚。如果 Linux 服务器在客户端的本地局域网上并且运行 Samba,您当然可以将 Access/Jet/ACE 数据库存储在 Linux 服务器上,用户可以在 Access 中对其进行编辑。
然后你需要一个在 Linux 服务器上运行的 Jet 模拟器(据我所知,没有可用于 Linux 的 ACE 模拟,所以如果他们的数据库是 ACCDB 格式,那么你就不走运了,除非我对模拟器的了解已经过时了)。一些 Jet 模拟器是只读的,所以要小心。
现在,我不推荐这种情况,因为 Jet/ACE 不是为这种应用程序设计的。它在具有 SMB 网络的小型办公室/工作组环境中运行良好,但我不会将它用作任何非只读、概念证明或非常非常低读/写量的网站的后端。我当然不会建议将相同的 MDB 用作网站后端并由交互式 Access 用户同时使用。
如果这种情况是正确的,如果您将后端移植到在 Linux 上运行的服务器数据库,您的用户仍然可以使用 Access。我一直都在使用 MySQL,因为我是一个 Access 白痴,所以我依靠 phpMyAdmin 作为我的用户界面来管理我的 MySQL 数据库。 Access 用户应该很容易理解以便对架构进行处理。使用 MyODBC,您可以在 Access 中设置链接表以及报表和表单等,它们的工作方式与使用 Jet 后端几乎相同。
但我强烈怀疑您的客户是否将他们的网站托管在连接到其办公室 LAN 的 Linux 服务器上。更有可能的是 Linux 服务器是共享 Web 托管,在这种情况下,将没有可用的 SMB 网络,因此您将无法从网站和交互式用户编辑单个 Access 数据库。这是一件好事,因为一开始就不建议这样做。
使用共享主机可能允许您打开一个端口到服务器数据库(我网站的托管服务器同时提供 MySQL 和 PostgreSQL,但只允许远程访问 MySQL 并且只能通过主机名/ IP 地址。这可能不适用于办公室 LAN。任何允许从狂野和毛茸茸的 Internet 对数据库服务器进行开放无限制访问的 Web 主机都可能不是您的客户端应该使用的。一种选择是,如果他们提供 VPN 支持,在这种情况下可以使用 VPN。但根据我的经验,网络主机为此收费(实际上是不合理的),因此通常不是一个好的选择。
因此,您不太可能能够提供与网站上运行的服务器数据库的实时连接。在这种情况下,您只能以某种方式同步数据库。如果网站完全是 Access 数据库的从属(即网站上没有编辑、添加或删除),那么它可以非常简单,因为您只需编写脚本将数据导出到您上传到的一个或多个文件网站,然后在网站上处理以替换现有数据。
如果您有一个多主机方案(在两个位置进行更新),情况会复杂得多,尤其是如果更新必须双向进行。我已经对这个场景的 Access 端进行了编程,即将网站上的 MySQL 数据库与 Access 数据库同步,这不是一项简单的任务。
如果您可以在两端都安装 MySQL,它可能会更容易一些(假设您可以设置复制,这在低端 Web 托管场景中对我来说似乎不太可能),但我不会指望它。
根据我对这种情况的了解,我的评估是,您的客户必须重新考虑整个事情,因为如果没有很多变通方法,实际上就不可能进行集成。
如果网站不是公开的,但为了支持远程用户,需要考虑的一点是,Access 2010 将添加一些与 Sharepoint Server 2010 集成的惊人支持,这将允许将 Access 数据库发布到 Sharepoint Server 并在其中运行网络浏览器。另一方面,如果情况仅限于远程用户,则 Access 应用程序可以在终端服务器上运行,从而为大家省去很多麻烦。