Access-培训管理系统-11-按钮代码设置之 录入(3)

微信公众号原文

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

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

Part 1:本篇目标

  1. 接下来几篇分别介绍一下几个按钮的实现
  2. 今天说说录入按钮,点击该按钮,主体实现三个功能
  • 检查信息是否填写完整
  • 录入培训信息进数据库
  • 禁用当前按钮,防止重复录入(也可以从数据库端控制)
  1. 今天继续上次课程的内容,开始学员信息的录入

程序架构

2.png

运行效果

1.gif

数据库

3.png
4.png
5.png

Part 2:逻辑过程

  1. 每一次录入,会在数据库中两个表中增加信息,表1:02_培训课程;表2:03_培训记录
  2. 两个表中以培训课程ID相关联,要求数据类型必须完全一样,如下图
  3. 每一次培训在表1:02_培训课程中只会形成1条记录,在表2:03_培训记录中形成与学员数目相同的记录数,每个学员有一条记录

培训记录数据库结构

1.png

培训课程数据库结构

2.png

Part 3:代码

窗体内代码
只是在上一篇基础上增加一个调用

Call sMod_sr_07_信息录入(frmName, arr, listboxName)

模块内代码,与上一次对比,只是增加了:第2部分:录入人员信息

Sub sMod_sr_07_信息录入(frmName, arr, listboxName)
    Rem>>录入课程及学员信息
    Rem>>
    Dim courseID
    Dim frm
    Dim d
    Dim ctrl
    Dim ctrlName
    Dim filds
    Dim fildsValue

    courseID = fMod_01_获取课程ID
    
    '第1部分:录入课程信息
    Set frm = Forms(frmName)
    Set d = CreateObject("Scripting.Dictionary")
    
    For Each ctrlName In arr
        Set ctrl = frm.Controls(ctrlName)
        d(ctrlName) = ctrl.Value
    Next
    
    ' 连接数据库
    Dim dbAddr
    Dim tblName
    Dim SQL
    Dim mode
    Dim rsAdConn
    Dim rs
    Dim adConn
    
    dbAddr = fMod_dz_01_数据库地址
    
    tblName = "02_培训课程"
    filds = "培训课程ID,培训课程名称,培训开始时间,培训多少小时,培训老师"
    
    fildsValue = courseID & "," & Chr(39) & d("培训课程名称") & Chr(39) & "," _
                         & "#" & d("培训开始时间") & "#" & "," & d("培训多少小时") & "," _
                         & Chr(39) & d("培训老师") & Chr(39)
    
    SQL = "Insert Into " & tblName & " (" & filds _
                & ") VALUES(" & fildsValue & ")"
                
    mode = 1
    rsAdConn = fMod_tyk_01_rs产生(dbAddr, SQL, mode)
    
    Set rs = rsAdConn(0)  ' 注意:必须有set
    Set adConn = rsAdConn(1)
                
    '关闭数据库连接
    adConn.Close
    Set adConn = Nothing
    
    '第2部分:录入人员信息
    Dim ctrlListName
    Dim ctrlList
    Dim existsRow
    Dim i
    Dim student_name
    Dim student_number
    
    ctrlListName = "学员列表框"
    Set ctrlList = frm.Controls(ctrlListName)
    existsRow = ctrlList.ListCount
    
    tblName = "03_培训记录"
    
    For i = 1 To existsRow - 1  '第1行为标题行
        'ListBox.Column(Index, Row),Index表示列信息,Row表示行信息,都是从0开始
        student_name = ctrlList.Column(0, i)    '行i从0开始
        student_number = ctrlList.Column(1, i)    '行i从0开始
        
        SQL = "INSERT INTO " & tblName & " (培训课程ID,学员姓名,学号) VALUES(" _
                    & courseID & " , " & Chr(39) & student_name & Chr(39) & "," _
                    & Chr(39) & student_number & Chr(39) & ")"
        
        mode = 1
        rsAdConn = fMod_tyk_01_rs产生(dbAddr, SQL, mode)
    Next i
    
     Set adConn = rsAdConn(1)
     
    '关闭数据库连接
    adConn.Close
    Set adConn = Nothing
    
End Sub

增加部分代码截图

6.png

Part 4:部分代码解读

  1. student_name = ctrlList.Column(0, i),获取列表框内的信息
  2. 如果把列表框当做一张Excel工作表来看的话,Column(列号, 行号),第一个参数是列号,第二参数是行号,和平常Excel中的Cells(行号,列号)刚好相反
  3. 行号和列号都是从0开始
  • 本文为原创作品,如需转载,可加小编微信号learningBin

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

公众号底部二维码.jpg
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 219,490评论 6 508
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,581评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 165,830评论 0 356
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,957评论 1 295
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,974评论 6 393
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,754评论 1 307
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,464评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,357评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,847评论 1 317
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,995评论 3 338
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,137评论 1 351
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,819评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,482评论 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,023评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,149评论 1 272
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,409评论 3 373
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,086评论 2 355

推荐阅读更多精彩内容