记录每一次折腾,
把学到的做出来

这里是我的技术学习与个人作品空间。所有内容均为本人学习过程中的原创实践记录,用于个人学习与交流,不涉及任何经营活动。

站点标志图

作品与实践

从需求梳理、数据库设计到界面实现,每一部分是自己的练习作业。

Access · VBA

燃气配送员工管理系统

面向瓶装燃气配送企业的业务管理系统,涵盖客户档案、送气单、进货入库、司机提成计提与客户流失预警。

  • 25 张业务表,完整参照完整性约束
  • 30 余个窗体与报表,按岗位分配操作权限
  • 单据三级确认流转:录入 → 确认 → 锁定
SQL Server

后台数据库升级迁移

将上述系统的后台由 Access 迁移至 SQL Server,前端保留原界面,通过 ODBC 链接表访问。

  • 25 张表、3500 余行数据完整迁移,编号对齐
  • 20 条外键在数据库端重建引用完整性
  • 6 个触发器替代计算字段,保障金额自动重算
数据统计

盘点与日清月结

钢瓶进销存的每日结算与月度盘点模块,按规格汇总进出数量并自动计算盘盈盘亏。

  • 日结滚存期初/结存,逐日链式校验
  • 月结自动比对盘点数与账面数
  • 统一按公斤计量,15KG 瓶自动折算
权限控制

登录与岗位权限体系

基于角色的访问控制:登录后按工号识别岗位,不同岗位可查看的报表与可操作的单据各不相同。

  • 密码 MD5 加盐存储,不在库中明文出现
  • 岗位 — 对象权限表驱动,新增零改代码
  • 未登录访问自动拦截并跳转登录窗
查询与报表

对账与计提统计

多表联查 + 参数窗体驱动的统计模块,支持按客户、按日期区间生成对账单与提成汇总。

  • 6 表联合查询提取司机提成明细
  • 客户流失预警:超期未充气自动列出
  • 上月充气次数与周期分析
数据归档

历史数据归档还原

针对历史单据积压导致主表臃肿的问题,提供按时间段归档与一键还原,双向闭环、可追溯。

  • 归档前自动校验明细是否随单搬走
  • 事务包裹,中途失败整体回滚
  • 归档数量、还原结果实时反馈
B/S 四端

书店进销存系统

把单机版思路重做成浏览器访问的网络版:服务端 + Web 管理端 + 微信小程序 + 手机 App 四端共用一套接口。

  • FastAPI + SQLite,31 个 REST 接口,JWT 鉴权
  • 进货即增库存、销售即扣库存,超卖自动拦截
  • 日结月结自动生成,六张统计报表按岗位开放

学习笔记

开发中踩过的坑,记下来比记住更有用。

中文库名会让 ODBC 链接静默失败

Access 通过 ODBC 连接 SQL Server 时,若数据库名是中文,驱动传出的库名编码会被破坏,报错只显示"无法连接",翻 SQL Server 错误日志才看到真正原因。解决办法:库名用英文,表名与字段保持中文不受影响。

迁移后必须加 dbSeeChanges

Access 对带有自增列的 SQL Server 链接表做新增时,若记录集未使用 dbSeeChanges 选项,会报"无法确定唯一行标识符"。批量替换所有 OpenRecordset 调用即可。

计算字段与 SELECT INTO 的冲突

明细表里的金额是计算字段,用 SELECT INTO 建归档表会失败。正确做法是显式列出字段清单,跳过计算列,由目标表自行重算。

前后端分离是多人协作的前提

把数据表拆到独立后端库,前端库只留链接表。以后更新程序时只需发前端文件,数据留在各自机器,配一个备份脚本就能做日常运维。

用到的技术

Microsoft Access VBA SQL Server T-SQL ODBC Python FastAPI DAO / COM HTML / CSS 微信小程序 Ubuntu / Nginx

关于本站

本站用于记录个人技术学习过程、整理开发心得,并集中展示自己动手实现的小型软件作品。内容均为原创实践记录,不含商业推广内容,不提供任何经营性服务。

如果你对某个项目感兴趣,或有技术上的想法愿意交流,欢迎在留言渠道联系我。