Access交流网
电 话:0760-88315075
热 线:0760-88315075
邮 编:528463
咨询QQ:1918333016
营销QQ:4008553990
Email:1918333016@qq.com
![]() | 主题:Access列表框的高级应用-高手之路 听课人数:130人 |
![]() | 主讲:王宇虹 演讲时间:2015-06-10 15:30 至 2015-05-10 16:30 2015-06-17 15:30 至 2015-06-17 16:30 2015-06-24 15:30 至 2015-06-24 16:30 |
![]() | 讲课内容简介: Access培训报名: http://www.office-cn.net/thread-119747-1-1.html |
Access列表框跟组合框的功能,方法,事件,属性都是比较接近的。可以从已知的项目中挑选出一个或者多个项目,设置全选,全不选,反选。同时可以把选中的记录标记。显示总记录及已选记录的条数,同时按条件进行筛选,更新状态条。 | |
培训优势:使用新版Access2013+思维导图模式+Access源码剖析+在线课堂+PPT课件培训 | |
培训目标:让你 听得懂 学得会 记得住 用得上 要求:有一定的Access 或 VBA的基础 |
Access列表框的高级应用 |
从已有的项目里面挑选一个或多个项目
从所有物料挑选多个物料
单个挑选
多个挑选
全选
客户-销售订单
物料-入库单
产品-成品销售出库
经典源码剖析系列 Access列表框的高级应用 Office中国-王宇虹
1 应用场景
1.1 挑选项目
1.1.1 客户
1.1.1.1 销售订单
1.1.2 物料
1.1.2.1 入库单
1.1.3 产品
1.1.3.1 成品销售出库
1.1.4 从已有的项目里面挑选一个或多个项目
1.1.4.1 从所有物料挑选多个物料
1.1.4.2 单个挑选
1.1.4.3 多个挑选
1.1.4.4 全选
2 技术特征
2.1 列表框与组合框 功能 属性 方法 事件都比较接近
2.2 全选 全不选 反选
3 模块 源码剖析
4 知识点
4.1 工程名与类名重复
4.1.1 保留字
4.1.1.1 类名
4.1.1.1.1 LISTBOX
4.1.1.2 数据类型名
4.1.1.3 属性名
4.1.2 尽量避免使用保留字来命名
4.1.2.1 My
4.1.2.2 Prj
4.2 ListIndex相关注意事项
4.2.1 在组合框或列表框获得焦点
4.2.2 listindex
4.2.2.1 先lstTest.SetFocus
4.2.2.1.1 获得焦点
4.3 使用ItemData
4.3.1 If cboTest.ColumnHeads Then cboTest.Value = cboTest.ItemData(1) Else cboTest.Value = cboTest.ItemData(0) End If
4.4 使用ColumnHeads
4.4.1 列标题
4.4.1.1 直接在表中的字段加上中文标题
4.4.1.2 表字段直接用中文名
4.4.1.3 通过查询中转,做一个查询,把字段名转为中文
4.5 使用Column
4.5.1 Column(1,8)
4.5.1.1 第1个参数是列
4.5.1.2 第2个参数是行
4.6 ItemsSelected
4.6.1 所有选择项的集合
4.6.1.1 For each VarItem in lstTest.ItemsSelected
4.7 Selected(5)
4.7.1 判断指定上是否选中
4.7.1.1 True
4.7.1.1.1 已选中
4.7.1.2 False
4.7.1.2.1 未选中
4.8 MultiSelect
4.8.1 无
4.8.2 简单的多选
4.8.3 展开的多选
4.9 事件的属性
4.9.1 MouseMove
4.9.2 OnMouseMove
4.9.2.1 =lstMouseMove([lstSearchField])
4.9.2.1.1 =lstMouseMove([lstSearchField])
4.9.2.1.2 me.ActiveControl
4.9.2.2 Me.lstButton.OnMouseMove = "=lstMouseMove([lstSearchField])"
1 模块 源码剖析
1.1 自定义函数LstMouseMove
1.1.1 传入一个参数
1.1.1.1 ctr
1.1.1.1.1 当前正使用的列表框对象
1.1.2 Dim strLstName As String
1.1.2.1 定义一个变量 保存 当前按钮与哪个列表框 挂接
1.1.3 strLstName = ctr.Name
1.1.3.1 通过当前列表的名称与上一次的名称对比
1.1.3.1.1 名称不同
1.1.3.1.1.1 列表框已经更换
1.1.4 窗体上建立3个按钮
1.1.4.1 全选
1.1.4.1.1 cmdAllShow
1.1.4.2 全不选
1.1.4.3 反选
1.1.5 根据当前列表框的位置重新定位3个按钮的位置
1.1.5.1 上边距:当前列框的上边距+列表框的高度 +20
1.1.5.2 左边距:将全选按钮的左边距移到 当前列表框的 左边距
1.1.5.2.1 另2个按钮 再加一点间隔
1.1.6 把3个按钮显示出来
1.1.6.1 Me.cmdAllShow.Visible = True Me.cmdDeselectShow.Visible = True Me.cmdReverseShow.Visible = True
1.1.7 如果列表框是不可用
1.1.7.1 就把3个按钮同步禁用
1.1.7.1.1 If ctr.Enabled = False Then
1.1.7.1.1.1 Me.cmdAllShow.Enabled = False Me.cmdDeselectShow.Enabled = False Me.cmdReverseShow.Enabled = False
1.1.8 如果列表框是不可用
1.1.8.1 就把3个按钮同步禁用
1.1.8.1.1 If ctr.Enabled = False Then
1.1.8.1.1.1 Me.cmdAllShow.Enabled = False Me.cmdDeselectShow.Enabled = False Me.cmdReverseShow.Enabled = False
1.1.9 如果列表框是可用
1.1.9.1 就把3个按钮同步开启
1.1.9.1.1 If ctr.Enabled = True Then
1.1.9.1.1.1 Me.cmdAllShow.Enabled = True Me.cmdDeselectShow.Enabled = True Me.cmdReverseShow.Enabled = True
1.2 通用函数gf_SelectAll
1.2.1 传递参数:列表框对象
1.2.1.1 cmdAllShow.Tag保存的是当前列表框的名称
1.2.2 列表框行数=0 没有项目 退出
1.2.2.1 If lst.ListCount = 0 Then Exit Function
1.2.3 lst.Selected(i) = True
1.2.3.1 设置每一项为选中状态
1.2.4 循环每一项,并选中
1.2.4.1 Dim i As Integer For i = 0 To lst.ListCount - 1 lst.Selected(i) = True Next
1 模块 源码剖析
1.1 通用函数gf_SelectAll
1.1.1 传递参数:列表框对象
1.1.1.1 cmdAllShow.Tag保存的是当前列表框的名称
1.1.2 列表框行数=0 没有项目 退出
1.1.2.1 If lst.ListCount = 0 Then Exit Function
1.1.3 lst.Selected(i) = True
1.1.3.1 设置每一项为选中状态
1.1.4 循环每一项,并选中
1.1.4.1 Dim i As Integer For i = 0 To lst.ListCount - 1 lst.Selected(i) = True Next
1.2 通用函数gf_DeSelect
1.2.1 传递参数:列表框对象
1.2.1.1 cmdAllShow.Tag保存的是当前列表框的名称
1.2.2 列表框行数=0 没有项目 退出
1.2.2.1 If lst.ListCount = 0 Then Exit Function
1.2.3 lst.Selected(i) = False
1.2.3.1 设置每一项为未选择状态
1.2.4 循环每一项,并取消选中
1.2.4.1 Dim i As Integer For i = 0 To lst.ListCount - 1 lst.Selected(i) = False Next
1.3 通用函数gf_Reverse
1.3.1 传递参数:列表框对象
1.3.1.1 cmdAllShow.Tag保存的是当前列表框的名称
1.3.2 列表框行数=0 没有项目 退出
1.3.2.1 If lst.ListCount = 0 Then Exit Function
1.3.3 lst.Selected(i) = Not lst.Selected(i)
1.3.3.1 设置每一项为选择状态为原状态的反状态
1.3.3.1.1 未选中
1.3.3.1.1.1 选中
1.3.3.1.2 选中
1.3.3.1.2.1 未选中
1.3.4 循环每一项,并原状态的反状态
1.3.4.1 Dim i As Integer For i = 0 To lst.ListCount - 1 lst.Selected(i) = Not lst.Selected(i) Next
1.4 把3个函数共性抽像合并成一个函数
1.4.1 Public Function gf_SetSelStatus(lst As ListBox, intStatus As Integer) If lst.ListCount = 0 Then Exit Function Dim i As Integer For i = 0 To lst.ListCount - 1 Select Case intStatus Case 1 '全选 lst.Selected(i) = True Case 2 '全不选 lst.Selected(i) = False Case 3 '反选 lst.Selected(i) = Not lst.Selected(i) Next End Function
2 通过条件对列表框进行多选
2.1 显示总记录及已选记录的条数
2.1.1 Me.lstReceive.ListCount
2.1.1.1 列表框总行数
2.1.1.2 列标题:-1
2.1.2 Me.lstReceive.ItemsSelected.Count
2.1.2.1 已选中多少行
2.1.3 在全选 全不选 反选3个按钮单击事件
2.1.3.1 更新状态标签的内容
2.2 按条件进行筛选
2.2.1 lngCnt = Me.lstReceive.ListCount
2.2.1.1 取得列表框的总行数
2.2.2 Column(3, i)
2.2.3 If lstReceive.Column(3, i) = Trim(Nz(Me.cboWeekNo)) Then
2.2.3.1 循环每一行,如果第4列(周别)值 与我们要求值是一致
2.2.3.1.1 选中
2.2.3.1.1.1 Me.lstReceive.Selected(i) = True
2.2.3.1.2 计数器加1
2.2.3.1.2.1 lngSelCnt = lngSelCnt + 1
2.2.3.2 不相等
2.2.3.2.1 Me.lstReceive.Selected(i) = False
2.2.3.2.1.1 不选中
2.3 更新状态条
2.3.1 lblSelected.Caption = "共有:" & lngCnt - 1 & "条记录/已选取:" & lngSelCnt & "条记录"
1. 直接超值购买:
包含:Access示例完整源码+实现思路与代码讲解高清视频+Access培训课件 绝对低价超值
2. 购买前咨询:
在线咨询QQ:1918333016
企业热线QQ:4008553990 (使用QQ搜索: 搜索服务)
Private Function LstMouseMove(ctr As Control)