Access交流网
  • 设为首页|收藏本站|繁体中文|手机版
  •     
  • Access培训-Access开发平台-Access行业开发

  • 首页
  • 资讯
  • 技巧
  • 源码
  • 行业
  • 资源
  • 产品
  • 活动
  • 培训
  • 招聘
  • 论坛
  • 商城
  • 关于

培训

Access企业培训(现场)
Access在线培训

Access中级培训

Access高级培训

Access定制培训

Access树控件与BOM高级技巧

Access公开课
Access免费公开课视频
Access培训(VIP)
Access培训优惠信息

热门文章

  • 网站数据提取与采集-Acc..
  • 能排序的列表框-Acces..
  • access图片分页展示及..
  • Access控制outlo..
  • Access多层架构开发思..
  • 数据自动导出多个Excel..

最新文章

  • Access自动播音员-A..
  • Access智能搜索组合框..
  • Access自动执行宏的妙..
  • access图片分页展示及..
  • 通用读取文本文件模块-Ac..
  • Access通用TAB键和..

联系方式

Access交流网

电  话:0760-88315075
热  线:0760-88315075

邮  编:528463
咨询QQ:1918333016
营销QQ:4008553990

Email:1918333016@qq.com

网  址:www.access-cn.com

当前位置:首页 > 培训 > Access培训(VIP)
Access培训(VIP)

Access列表框的高级应用-Access经典源码剖析

 
Access主题 主题:Access列表框的高级应用-高手之路                  听课人数:130人      
Access主讲

 主讲:王宇虹           演讲时间: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培训内容 讲课内容简介:         Access培训报名: http://www.office-cn.net/thread-119747-1-1.html
 

Access列表框跟组合框的功能,方法,事件,属性都是比较接近的。可以从已知的项目中挑选出一个或者多个项目,设置全选,全不选,反选。同时可以把选中的记录标记。显示总记录及已选记录的条数,同时按条件进行筛选,更新状态条。

 培训优势:使用新版Access2013+思维导图模式+Access源码剖析+在线课堂+PPT课件培训
 培训目标:让你 听得懂 学得会 记得住 用得上             要求:有一定的Access 或 VBA的基础 
 

 

clip0058

Access列表框的高级应用


 

 

application_key 功能描述:

 

  •  从已有的项目里面挑选一个或多个项目

  •  从所有物料挑选多个物料

  •  单个挑选

  •  多个挑选

  •  全选

 

 

application_key  行业应用场景:

 
  •   客户-销售订单

  •   物料-入库单

  •   产品-成品销售出库

  

 

 

application_key  界面预览:

     access数据库

     access数据库

      

 

application_key  源码思维导图(脑图):

 

     access数据库

 

     access数据库

 

 

     access数据库

 

Access教程视频Access列表框的高级应用 -- Access经典源码剖析思维导图在线播放

可直接展开和收缩思维导图中的每个节点来浏览,也可使用下面的放大 缩小 折叠 定位焦点 全页显示 查找关键字等功能
 

 

 

application_key  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 & "条记录"

 

 

 

application_key  相关链接:

 

1. 直接超值购买:

       点击购买:  Button 

       包含:Access示例完整源码+实现思路与代码讲解高清视频+Access培训课件    绝对低价超值

 

2. 购买前咨询:

    

    在线咨询QQ:1918333016

    企业热线QQ:4008553990 (使用QQ搜索: 搜索服务)

    更多联系方式:http://www.office-cn.net/t/training/officecontact.htm

 

application_key  部分源码预览:

 

    access数据库

 

    access数据库

    access数据库

   

    
''=============================================================================================
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
 
'根据值返回索引 (列表框, 查找的值, [第几列])
Public Function gf_GetIndexByList(lst As ListBox, strValue As String, Optional intCol As Integer = 0) As Integer
    Dim i As Integer
    For i = 0 To lst.ListCount - 1
            ......
            Exit Function
        End If
    Next
    gf_GetIndexByList = -1 '找不到值则返回-1
End Function
 
'两个列表框数据转移(单个数据)
Public Function gf_OneDataListToList(lstFrom As ListBox, lstTo As ListBox) As Boolean
    If lstFrom.ListIndex < 0 Then Exit Function '如果没有选择记录则退出
    
    
    Dim i As Integer
    Dim intColFrom As Integer, intColTo As Integer, intCol As Integer
    Dim str As String
    
    '获取两个列表框最小列数
    intColFrom = lstFrom.ColumnCount - 1
    intColTo = lstTo.ColumnCount - 1
    intCol = IIf(intColFrom > intColTo, intColFrom, intColTo)
    
    '遍历列
    ......
    
    '数据转移
    lstTo.AddItem str
    If lstTo.ListCount = 0 Then Exit Function
    ......
    gf_OneDataListToList = True
End Function
 
'更新列表框的数据
Public Function gf_UpdateListData(lst As ListBox, strValue As String, Optional intCol As Integer = 0)
    '获取对应的记录的值
    Dim i As Integer
    Dim str As String
    Dim strTemp As String
    For i = 0 To lst.ColumnCount - 1
        ......
        str = str & ";" & strTemp
    Next
    str = Mid(str, 2)
    
    '更新数据
    Dim intIndex As Integer
    ......
    On Error Resume Next
    lst.AddItem str, intIndex
    If Not Err = 0 Then lst.AddItem str
End Function
 

     Private Function LstMouseMove(ctr As Control)

 'ctr 传递过来是 当前正在使用的列表框控件对象
 
 Dim strLstName As String  '定义一个变量 保存 当前按钮与哪个列表框 挂接
 strLstName = ctr.Name
 If cmdAllShow.Tag <> strLstName Then
   cmdAllShow.Tag = strLstName
  ......
 
   cmdReverseShow.Top = cmdAllShow.Top
   cmdReverseShow.Left = cmdAllShow.Left + cmdAllShow.Width + 60
   
   ......
    Me.cmdAllShow.Visible = True
    Me.cmdDeselectShow.Visible = True
    Me.cmdReverseShow.Visible = True
    Dim strName As String
    If ctr.Enabled = True Then
      ......
    
    Else
      If Me.cmdAllShow.Enabled = True Then
         
         strName = Me.ActiveControl.Name
'         If Left(strName, 3) = "cmd" And Right(strName, 4) = "Show" Then
'            Me.pageMain.Pages(Me.pageMain.Value).SetFocus
'         End If
         Me.cmdAllShow.Enabled = False
         Me.cmdDeselectShow.Enabled = False
         Me.cmdReverseShow.Enabled = False
      End If
    
    End If
    
 End If
 
 
End Function
 
 
 
 
'列表框选中个数检查
Private Function gf_GetSelectItem(lst As Control) As Long
    On Error Resume Next
    Dim lSelectCount As Long
  ......
    
    If lSelectCount = 0 Then
        MsgBox ("Please select at least one item"), vbInformation
        lst.SetFocus
    End If
    gf_GetSelectItem = lSelectCount
End Function
 

标签:  Access,列表框,全选,反选,选择
发布人:zstmtony  
分享到:
点击次数:  更新时间:2018-02-28 10:54:15  【打印此页】  【关闭】
上一条:Access窗体控件-默认值的妙用-Access经典源码剖析  下一条:Access系统设置及系统函数的应用-Access经典源码剖析



相关文章

  • • Access自动播音员-Access经典源码剖析
  • • Access智能搜索组合框-Access经典源码剖析
  • • Access自动执行宏的妙用-Access经典源码剖析
  • • access图片分页展示及选择功能-Access经典源码剖析
  • • 通用读取文本文件模块-Access经典源码剖析
  • • Access通用TAB键和默认值设置-Access经典源码剖析
  • • access图片文件保存到数据库的通用技巧-Access经典源码剖析
  • • 数据自动导出多个Excel或者多个工作表-Access经典源码剖析

热门文章

  • [2018-02-28] Access智能搜索组合框-Access经典源码剖析access数据库
  • [2019-04-19] Access自动播音员-Access经典源码剖析access数据库
  • [2018-02-28] Access专业工资条打印-Access经典源码剖析access数据库
  • [2018-02-28] 能排序的列表框-Access经典源码剖析access数据库
  • [2018-02-28] Access控制outlook自动处理邮件-Access经典源码剖析access数据库
  • [2018-02-28] VBA开发神器发布及培训--完全颠覆Access VBA的开发方式--平台插件VBA伴侣-Access经典源码剖析access数据库

热门产品

  1. 电子厂管理软件系统

    电子厂管理软件系统

  2. 销售宝销售管理软件--让销售像“偷菜”一样简单!

    销售宝销售管理软件--让销售像“偷菜”一样简单!

  3. 短信专家接口(可用于企业及个人多种短信用途)

    短信专家接口(可用于企业及个人多种短信用途)

公司动态|在线留言|在线反馈|联系我们|友情链接|会员中心|站内搜索|网站地图

中山市天鸣科技发展有限公司 版权所有 1999-2018 粤ICP备10043721号

广东省中山市西苑广场富贵阁20楼A座

电话:0760-88315075 手机:13928102596 QQ:1918333016

Access应用 Access培训 Access开发 Access平台

access|数据库|access下载|access教程|access视频|access软件

Powered by MetInfo 5.3.12 ©2008-2022  www.metinfo.cn