Access-培训管理系统-07-按钮代码设置之 增加学员

微信公众号原文

系统:Windows 7
软件:Excel 2010 / Access 2010

  • 这个系列开展一个新的篇章,主体使用Access,包括数据库部分及界面部分,当然输出部分也会涉及到ExcelExcel的可读性还是比较好的
  • 本公众号的不同阶段:Excel -> Excel + Access -> Access。但并不表示Access就一定比Excel好啊,各有所长吧,合适才是最好的
  • 主体框架:换一种讲解方式,以项目为基础,从开始到结束
  • 项目名称:培训管理系统
  • 主要功能:两个界面。界面1,培训时录入信息;界面2,以培训老师和培训学员为客户,输出信息
  • 涉及知识:Access界面,数据库知识,VBA,SQL,Excel

Part 1:本篇目标

  1. 接下来几篇分别介绍一下几个按钮的实现
  2. 今天说说增加学员按钮,点击该按钮,则在下面的列表框中增加该学员信息,细致上说有四个部分组成:
  • 检查学员姓名及学号是否有填写
  • 检查列表框是否有信息,无则增加表头部分
  • 检查列表框是否已经有该学员信息(学号是唯一的)
  • 若无该学员信息,增加该学员信息

静态效果

Access-培训管理系统-07-按钮代码设置之 增加学员_第1张图片
3.png

动态过程

Access-培训管理系统-07-按钮代码设置之 增加学员_第2张图片
1.gif

Part 2:写代码前的准备

  1. 写代码之前需对该列表框控件做如下设置:
  • 设计视图下,属性表 - 格式,列数设置为2,列表题设置为
  • 设计视图下,属性表 - 数据,行来源类型设置为值列表
  1. 详细见下图

数据设置

Access-培训管理系统-07-按钮代码设置之 增加学员_第3张图片
1.png

格式设置

Access-培训管理系统-07-按钮代码设置之 增加学员_第4张图片
2.png

Part 3:代码

  1. 分为两个部分,一个在窗体内,一个在模块内

窗体内代码

Private Sub 增加学员_Click()
    Dim frmName
    Dim ctrlName
    
    frmName = fFrm_pxsr_01_当前窗体名称
    ctrlName = "学员列表框"
    Call sMod_sr_03_学员信息(frmName, ctrlName)
End Sub

模块内代码

Sub sMod_sr_03_学员信息(frmName, ctrlName)
    Rem>>
    Rem>>
    Dim frm
    Dim ctrl
    Dim stuName
    Dim strAnswer
    Dim stuNum
    Dim existsRow
    Dim tableHeader
    Dim i
    Dim existsStuNum
    Dim newStu
    
    Rem>>第1步:检查信息是否填写完毕
    Set frm = Forms(frmName)
    Set ctrl = frm.Controls("学员姓名")
    stuName = ctrl.Value
    If stuName = "" Or IsNull(stuName) Then
        strAnswer = MsgBox("请填入学员姓名", vbCritical, "提示")
        Exit Sub
    End If
    
    Set ctrl = frm.Controls("学号")
    stuNum = ctrl.Value
    If stuNum = "" Or IsNull(stuNum) Then
        strAnswer = MsgBox("请填入学员学号", vbCritical, "提示")
        Exit Sub
    End If
    
    Rem>> 第2步:检查原列表框是否有信息
    Set ctrl = frm.Controls(ctrlName)
    existsRow = ctrl.ListCount
    
    If existsRow = 0 Then
        tableHeader = "学员姓名;学号"
        ctrl.AddItem tableHeader
    End If
    
    Rem>> 第3步:检查原列表框是否已该信息
    If existsRow > 1 Then
        For i = 1 To existsRow - 1  '第1行为标题行
            'ListBox.Column(Index, Row),Index表示列信息,Row表示行信息,都是从0开始
            existsStuNum = ctrl.Column(1, i)  '行i从0开始
            If existsStuNum = stuNum Then
                strAnswer = MsgBox("拟添加人员信息已在列表框中,请勿重复添加", vbCritical, "提示")
                Exit Sub
            End If
        Next i
    End If
    
    Rem>> 第4步:录入信息
    newStu = stuName & ";" & stuNum
    ctrl.AddItem newStu

End Sub

代码截图

Access-培训管理系统-07-按钮代码设置之 增加学员_第5张图片
4.png

Part 4:部分代码解读

  1. ctrl.AddItem newStu,列表款增加内容就是一行一行往下增加,不同列使用;隔开即可
  2. existsRow = ctrl.ListCount获取当前列表框已有信息行数

官方解读

Access-培训管理系统-07-按钮代码设置之 增加学员_第6张图片
5.png

本文为原创作品,如需转载,可加小编微信号learningBin


更多精彩,请关注微信公众号
扫描二维码,关注本公众号

公众号底部二维码.jpg

你可能感兴趣的:(Access-培训管理系统-07-按钮代码设置之 增加学员)