系统:Windows 7
软件:Excel 2010 / Access 2010
- 这个系列开展一个新的篇章,主体使用Access,包括数据库部分及界面部分,当然输出部分也会涉及到Excel,Excel的可读性还是比较好的
- 本公众号的不同阶段:Excel -> Excel + Access -> Access。但并不表示Access就一定比Excel好啊,各有所长吧,合适才是最好的
- 主体框架:换一种讲解方式,以项目为基础,从开始到结束
- 项目名称:培训管理系统
- 主要功能:两个界面。界面1,培训时录入信息;界面2,以培训老师和培训学员为客户,输出信息
- 涉及知识:Access界面,数据库知识,VBA,SQL,Excel
Part 1:本篇目标
- 之前介绍了界面及数据库部分
- 今天介绍一个小功能:清空界面及下拉列表实现
- 不同的界面一般都会用一些重复的功能,例如下拉列表框。在写代码的时候,我们需先全盘考虑,同样的功能尽量使用同一段代码,减少在不同的地方重复写同样的代码,减少后期更改成本。
Part 2:代码整体逻辑建立
- 根据系统实现的功能,将代码分成两大块:
- 窗体内代码:主要作用,事件触发
- 模块内代码:根据功能,先分为5个部分,分别为 首页 / 输入 / 输出 / 通用库 / 地址
- 各模块介绍
- 首页 / 输入 / 输出 模块分别对应以后的3个主界面;
- 通用库放置通用代码
- 地址主要是存放数据库地址的代码。如果你的系统是给客户使用,那么就存在个人调试版和实际使用版本区别,调试的时候只需要复制数据库地址到其它地方,更改这个模块的地址,不会影响到客户的使用
代码分布
Part 3:培训输入窗体初始化
- 打开“培训输入”窗体,希望触发两个动作
- 清空当前界面:文本框 / 组合框 / 列表框 内的内容
- 列表框增加下拉列表
- 清空当前界面
Sub sMod_tyk_01_清空当前界面(frmName)
Rem>>清空当前界面中 acTextBox / acComboBox / acListBox 控件中的内容
Rem>>清空 acComboBox 下拉列表
Dim frm
Dim ctrl
Dim ctrlType
Set frm = Forms(frmName)
For Each ctrl In frm.Controls
ctrlType = ctrl.ControlType
If ctrlType = acTextBox Then
ctrl.Value = ""
ElseIf ctrlType = acListBox Then
ctrl.RowSource = ""
ElseIf ctrlType = acComboBox Then '清空下拉列表,清空值
ctrl.RowSource = ""
ctrl.Value = ""
End If
Next
End Sub
代码截图
Part 4:部分代码解读
Set frm = Forms(frmName)
获取窗体对象For Each ctrl In frm.Controls
窗体内控件遍历,其实有点像Excel中的遍历工作表之类ctrlType = ctrl.ControlType
获取控件类型- 常用控件类型
- acTextBox 文本框
- acComboBox 组合框
- acListBox 列表框
- acCommandButton 命令按钮控件
- acLabel 标签控件
官方文件
- 接下来就是下拉列表实现了,今天就讲到这里了,且听下回分解
- 因为这系列,是一边写程序,一边写文章,所以后期存在对先前发表的文章进行更改
- 有的时候做一个系统就是这样,会返回去改动,所以说前期想的越周到,返工的可能性就越低
- 本文为原创作品,如需转载,可加小编微信号learningBin
更多精彩,请关注微信公众号
扫描二维码,关注本公众号