把 Microsoft Access 数据库重建为网页应用
企业日常依赖的 Access 数据库,连同其中的表、查询、窗体、报表和 VBA 代码,我们会重建为以 SQL Server 或 MySQL 为后台的网页应用。数据完整迁移,界面沿用员工现有的操作方式,无需重新学习流程。
为什么是现在
微软对 Access 2021 及整个 Office 2021 的支持将于2026年10月13日结束。Access 2016 和 Access 2019 已于2025年10月14日停止支持,与 Windows 10 同一天。到了这些日期,Access 文件并不会打不开,但不再获得安全更新,而每次 Windows 或 Microsoft 365 更新,都可能导致引用失效、ActiveX 控件无法加载或缺少 32 位驱动。
更常见的迁移理由其实很实际:文件放在共享盘上,只有一两个人知道它怎么运作;离开办公室就只能通过远程桌面使用;而且文件已接近 Access 的 2 GB 上限。
- Windows 10、Access 2016 和 Access 2019微软停止支持
- Access 2021 和 Office 2021微软停止支持
迁移内容
让数据库运转起来的一切,而不只是表。
表和关系
数据类型、主键、索引、带参照完整性的关系、有效性规则和默认值。自动编号字段转为标识列并保留原值,发票号和订单号不会改变。
查询
选择、追加、更新、删除和交叉表查询,包括从打开的窗体读取值的查询。每条查询都会针对新数据库改写,并与原查询的结果核对。
窗体和子窗体
录入界面、连续窗体、带联动列表的组合框、主从布局。它们会变成字段和顺序都相同的网页。
报表
带合计和分页的分组报表、标签,以及需要打印或以 PDF 发送的单据,如发票和送货单。
VBA 模块和宏
窗体代码、标准模块、AutoExec 和嵌入宏。业务规则移到服务器上,对每个用户都以同样方式生效。
链接表和外部数据
指向其他 Access 文件、Excel 工作表、ODBC 数据源和 SharePoint 列表的链接,以及有人每周手动运行的导入导出程序。
网页版的样子
- 仪表板
- 维修工单312
- 客户1,148
- 车辆
- 配件
- 发票
年度保养。更换前刹车片。检查空调。
| 配件 | 数量 | 单价 | 金额 |
|---|---|---|---|
| 机油滤清器 | 1 | €14.90 | €14.90 |
| 机油 5W-30(升) | 4.5 | €11.20 | €50.40 |
| 前刹车片 | 1 | €64.50 | €64.50 |
| 空气滤清器 | 1 | €18.60 | €18.60 |
| 工时(小时) | 2.5 | €54.00 | €135.00 |
| 合计 | €283.40 | ||
| 配件 | 数量 | 单价 | 金额 |
|---|---|---|---|
| 机油滤清器 | 1 | €14.90 | €14.90 |
| 机油 5W-30(升) | 4.5 | €11.20 | €50.40 |
| 前刹车片 | 1 | €64.50 | €64.50 |
| 空气滤清器 | 1 | €18.60 | €18.60 |
| 工时(小时) | 2.5 | €54.00 | €135.00 |
汽修厂工单在 Access 97 中可能的样子,以及同一界面的网页应用版本。
拖动滑块,或使用键盘方向键。
各部分迁移后的去向
- 在 Access 中:.accdb 或 .mdb 后端中的表
- 在网页应用中:SQL Server 或 MySQL 中的表,主键和关系保持不变
- 在 Access 中:已保存的查询
- 在网页应用中:视图、存储过程或应用中的查询
- 在 Access 中:窗体和子窗体
- 在网页应用中:字段相同的网页,任何浏览器都能打开
- 在 Access 中:报表
- 在网页应用中:由服务器生成的可打印页面和 PDF 文件
- 在 Access 中:窗体事件中的 VBA
- 在网页应用中:在服务器上执行的校验和规则
- 在 Access 中:工作组文件(.mdw),或根本没有登录
- 在网页应用中:按角色分配的个人账号,并记录谁修改了什么
迁移流程
48 小时内完成评估
请发给我们.mdb 或 .accdb 文件的副本(如数据库已拆分,请附上前端和后端),如有顾虑,可用测试数据代替真实记录。我们会在 48 小时内回复一份书面报告:程序目前的功能、风险所在、网页版的结构设想、试点模块的固定价格以及其余部分的估价。评估免费,不附带任何义务。
试点模块
我们先在您真实数据的副本上构建应用的一部分,通常是使用最多的部分。在决定其余部分之前,员工可以在日常工作中实际使用。
同样的数据,同样的结果
我们在新数据库上运行查询和报表,把记录数、合计和打印出的数字与 Access 原结果逐一比对。我们发现的每条业务规则还会写成自动化测试,此后每次发布新版本前都会重新运行。您会收到列明每项核对结果的报告。
30 天并行运行
完整应用就绪后,Access 数据库会与之并行使用 30 天。任何差异都会在旧程序仍在时暴露出来,我们在约定价格内修正。
常见陷阱及应对方法
Jet 和 ACE 的 SQL 并非标准 SQL
Access 在
LIKE中用*和?作通配符,而 SQL Server 和 MySQL 用%和_;Access 用#包裹日期,把True存为 -1。IIf、Nz、Format、DateSerial等函数没有直接对应。直接复制 SQL 文本,查询要么报错,要么更糟,返回不同的记录。我们逐条改写查询,并与原结果比对。循环和查询中的域聚合函数
DLookup、DCount、DSum用起来方便,但每次调用都会单独执行一次查询。放在连续窗体或其他查询里,一个界面就可能执行上千次。网页版中它们会改为连接和分组查询,由数据库服务器一次完成。从打开的窗体读取值的查询
像
[Forms]![frmOrders]![txtCustomerID]这样的条件,只有在那台电脑上打开了该窗体时才有效。我们把这类引用改为参数,同一个查询就能供任何页面或报表使用。是/否、货币和日期/时间字段
Access 把是/否存为 0 和 -1,货币保留四位小数,日期以数字存储,还可能带有时间。迁移时稍不注意,合计就会差几分钱,或者按3月31日筛选却什么也查不到。我们为每种字段类型明确设定映射,并在每次导入后核对合计。
附件、多值和查阅字段
这些字段类型只存在于 .accdb 格式中,背后隐藏着额外的表。我们把它们改为普通的关联表,附件则存为文件,由数据库引用。
每台电脑上都有一份前端
很多数据库依赖每台电脑上的一份前端副本,版本有时各不相同,后端路径指向映射的网络驱动器。评估时我们会确认哪一份是最新的,以及代码依赖哪些路径、打印机和加载项。
价格和付款
评估
免费
书面报告,48 小时内
试点模块
€1,000–1,500
通常;开工时付 50%,验收时付 50%
付款条件
启动时支付 50%,验收时支付 50%。尾款须在上线和交付源代码之前付清。较大的项目按约定阶段分期付款。
评估免费。如果决定不继续,报告归您所有,无需支付任何费用。
价格固定,并在开工前以书面形式确定。如果工作内容发生变化,我们会发送新的书面报价,经您确认后才进行额外工作。
对于完整迁移,我们的目标是比一般软件公司的报价低 40% 到 60%。我们能做到,是因为我们是一家小型工作室,没有写字楼租金,也没有销售团队。
价格不含增值税。
一次真实的迁移,由测试验证
Northwind 是微软随 Access 附带的示例数据库,并不是我们的客户。我们把一份公开副本迁移到 SQLite 和 PostgreSQL,通过自动化测试将每张表、每个查询与原始数据逐一比较,并在此基础上构建了一个可运行的网页应用。案例研究给出了具体数字,等效性报告列出了每一项核对。

常见问题
开发网页版期间,我们还能继续用 Access 吗?
可以。您照常使用数据库。上线前我们会从最新副本重新导入数据,之后数据库还会与新应用并行使用 30 天。
能否保留 Access 窗体,只把数据迁到 SQL Server?
可以,对有些企业来说这正是合适的第一步:表迁到 SQL Server,Access 前端通过链接表连接。这能解决容量和稳定性问题,但解决不了远程访问和对 Office 的依赖。评估报告会说明哪种方案适合您。
我们的数据库是 Access 97 或 2003 的 .mdb 文件,有问题吗?
没有问题。.mdb 和 .accdb 我们都能处理。如果旧 .mdb 设置了用户级安全,我们还需要工作组信息文件(.mdw),这一点会在您发送文件之前告知。
我们的报表怎么办?
每份报表都会重建为可打印或保存为 PDF 的页面,分组和合计保持不变。随后我们让 Access 和新应用处理同一批数据,逐一核对报表中的每个数字。
网页版可以同时有多少人使用?
这主要取决于数据库服务器而非应用本身。SQL Server 或 MySQL 能承载的并发用户远多于共享的 Access 文件。评估报告会根据您的用户数推荐合适的托管方案。
应用部署在哪里?
部署在您选择的服务器或云服务上,也可以由我们代为安排托管。我们使用常见技术(C# 与 ASP.NET Core,或 PHP 与 MySQL),方便您的 IT 服务商接手日常运维。
联系我们
请选择您方便的联系方式。我们会在一个工作日内用中文通过电子邮件回复您。
把文件发给我们
如果程序是用 Access、Excel、VB6、Delphi 或早期 .NET 开发的,您在发送文件后 48 小时内即可收到一份免费的书面评估。
- 复制一份文件,如您愿意,可使用测试数据。
- 把它附在表单或邮件中,最好放进有密码保护的压缩包,并另行发送密码。如有需要,我们会先签署保密协议。
- 48 小时内:收到评估报告和试点模块的固定价格。
我们在意大利办公。