从 Excel 到 Access:做一个商品信息管理系统,适合零基础学习
原创:香橙科技shine
很多朋友一开始都是用 Excel 管商品资料:商品名称、条码、分类、进价、售价、库存,一行一行录进去。
商品少的时候没问题,商品一多就开始麻烦:重复录入、筛选不方便、价格改了不知道哪个是最新、库存靠手工改容易出错。
这时就可以考虑用 Access 做一个小型商品信息管理系统。

图注:图 1:封面 Access商品信息管理模板
一、为什么商品信息是进销存的基础
如果以后想做进销存,至少会用到几类基础资料:
客户信息; 商品信息; 供应商信息; 采购入库; 销售出库; 库存流水。
其中商品信息是核心底座。采购单要选商品,销售单也要选商品;库存数量、进价、售价、条码,都要先从商品档案里来。
所以这一期模板先把“商品主档”做好。

图注:图 2:Excel到Access 商品资料管理对比
二、这个模板能做什么
本次模板文件是:
2商品信息管理.accdb打开后可以完成这些操作:
查看商品列表; 按关键字查询商品; 按商品分类、商品状态筛选; 新增商品; 自动生成商品 ID; 编辑商品资料; 删除商品; 保存后自动刷新列表; 对进价、售价、库存数量做数字校验。
也就是说,它不是单纯的一张表,而是一个小型 Access 管理界面。

图注:图 8:查询结果 按关键字筛选商品
三、系统结构很简单
这个模板由一张表、四个窗体、一个模块组成:
Access 开发建议先理解这个分工:表负责存数据,窗体负责录入和查看,VBA 负责自动化逻辑。

图注:图 4:系统整体结构 表窗体模块关系
四、表结构设计重点
商品信息表里主要有这些字段:
这里最容易踩坑的是字段类型。
商品条码虽然看起来像数字,但应该用短文本。因为条码可能以 0 开头,也可能很长,不适合做数学计算。
进价和售价是金额,建议用货币类型。
库存数量要参与加减,所以用数字类型。

图注:图 5:表设计 商品信息字段类型和主键
五、商品 ID 自动生成
新增商品时,系统会自动生成商品 ID。
规则是:
SP + 年月日 + 三位流水号比如:
SP20260618001
SP20260618002这样做的好处是编号有业务含义。看到 mod商品信息 模块的 [商品名称]='可乐'
[售价]=3.5 | ||
# |
很多保存错误,都是因为把数字字段写成了文本。
模板里用 SQLQuote() 处理后再加单引号,避免文本里的单引号导致 SQL 出错。

图注:图 12:SQL字段类型写法对照
八、第一次打开要启用内容
Access 文件第一次打开时,顶部可能会提示安全警告。
如果没有启用内容,VBA 按钮可能不会运行。
建议把模板文件夹加入 Access 的受信任位置,或者第一次打开时点击“启用内容”。

图注:图 15:启用内容 宏安全提示
九、适合初学者的练习顺序
建议不要只看成品,最好按下面顺序练一遍:
先打开成品库,熟悉主界面; 新增 3 个商品; 故意把进价填成字母,看看校验提示; 修改一个商品的售价和库存; 按分类或关键字查询商品; 打开表设计视图,理解每个字段类型; 看 GetNewProductID、ToNum。

图注:图 13:VBA模块 公共函数重点
结尾
商品信息管理是进销存系统的第二块积木。
客户信息解决“卖给谁”,商品信息解决“卖什么”。有了客户和商品,后面就可以继续做供应商、采购入库、销售出库和库存流水。
学 Access 不建议一上来就做很大的系统。先把一个小模块做完整,理解表、窗体、查询、VBA 的分工,再一个模块一个模块往下扩展,会更稳。
这期模板的重点可以总结成四句话:
条码用文本,不要用数字; 金额用货币,库存用数字; 文本 SQL 加引号,数字 SQL 不加引号; 新增、编辑、查询、刷新分清职责。
掌握这些,再做后面的进销存模块就容易多了。
关于我
我是做 Access 数据库的 Leo。
如果你需要系统学习 Access 数据库,或者需要定制 Access 数据库系统,可以联系我。
微信:flyrio1986
夜雨聆风