系统:Windows 7
软件:Excel 2010 / Access 2010
- 这个系列开展一个新的篇章,主体使用Access,包括数据库部分及界面部分,当然输出部分也会涉及到Excel,Excel的可读性还是比较好的
- 本公众号的不同阶段:Excel -> Excel + Access -> Access。但并不表示Access就一定比Excel好啊,各有所长吧,合适才是最好的
- 主体框架:换一种讲解方式,以项目为基础,从开始到结束
- 项目名称:培训管理系统
- 主要功能:两个界面。界面1,培训时录入信息;界面2,以培训老师和培训学员为客户,输出信息
- 涉及知识:Access界面,数据库知识,VBA,SQL,Excel
Part 1:本篇目标
- 建立输出界面:提供3个Excel输出功能
- 学员个人培训档案
- 某个老师的上课记录
- 所有课程记录
- 完成初始化工作
- 学员姓名
- 培训老师
界面如下
数据库准备:提前录入一些测试数据
03_培训记录
02_培训课程
Part 2:初始化组合框
- 根据03_培训记录工作表,初始化系统中已有学员姓名,现实工作中,可能存在同名情况(需要通过学号进行二次确认),这里只是示意,假设无同名学员
- 根据02_培训课程工作表,初始化系统中已有培训老师,假设无同名老师
Part 3:代码
- 在培训输出窗体增加一个窗体加载事件,初始化组合框
- 调用过程,初始化组合框
窗体内代码
Private Sub Form_Load()
Rem>>
Rem>>
Dim frmName
frmName = fFrm_pxsc_01_当前窗体名称
Call sMod_sc_01_输入界面初始化(frmName)
End Sub
代码截图
模块内代码
Sub sMod_sc_01_输入界面初始化(frmName)
Rem>>
Call sMod_tyk_01_清空当前界面(frmName)
Call sMod_sc_02_下拉列表(frmName)
End Sub
过程1:清空已有内容,参考之前的文章,使用的是通用过程
过程2:配置下拉列表
Sub sMod_sc_02_下拉列表(frmName)
Rem>>
Rem>>
'学员姓名初始化
Dim arr
Dim tblName
Dim dbAddr
Dim i
Dim fild
Dim searchC
Dim SQL
Dim ctrlName
Dim mode
Dim rsAdConn
Dim rs
Dim adConn
tblName = "03_培训记录"
dbAddr = fMod_dz_01_数据库地址
fild = "学员姓名"
searchC = fild & " is Not Null"
SQL = "Select distinct " & fild & " From " & tblName & " Where (" & searchC & " )"
ctrlName = fild
mode = 2
rsAdConn = fMod_tyk_01_rs产生(dbAddr, SQL, mode)
Set rs = rsAdConn(0) ' 注意:必须有set
Set adConn = rsAdConn(1)
Call sMod_tyk_02_组合框下拉列表(rs, adConn, frmName, ctrlName)
rs.Close
'培训老师初始化
tblName = "02_培训课程"
fild = "培训老师"
searchC = fild & " is Not Null"
SQL = "Select distinct " & fild & " From " & tblName & " Where (" & searchC & " )"
ctrlName = fild
mode = 2
rsAdConn = fMod_tyk_01_rs产生(dbAddr, SQL, mode)
Set rs = rsAdConn(0) ' 注意:必须有set
Set adConn = rsAdConn(1)
Call sMod_tyk_02_组合框下拉列表(rs, adConn, frmName, ctrlName)
rs.Close
'关闭数据库
adConn.Close
Set adConn = Nothing
End Sub
代码截图
- 本文为原创作品,如需转载,可加小编微信号learningBin
更多精彩,请关注微信公众号
扫描二维码,关注本公众号