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

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

培训

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

Access中级培训

Access高级培训

Access定制培训

Access树控件与BOM高级技巧

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

热门文章

  • access图片文件保存到..
  • Access列表框的高级应..
  • Access调用网页功能-..
  • Access自动播音员-A..
  • Access窗体控件-默认..
  • 通用读取文本文件模块-Ac..

最新文章

  • 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主题 主题:能排序的列表框-高手之路                  听课人数:90人      
Access主讲

 主讲:王宇虹                       演讲时间:2015-01-28 15:30 至 2015-01-28 16:30

                                                            2014-02-04 15:30 至 2014-02-04 16:30 

Access培训内容 讲课内容简介:                   Access培训报名: http://www.office-cn.net/thread-119395-1-1.html
  列表框像子窗体一样,可以按要求进行排序能排序的列表框的技术特征:
1、能对列表框进行排序
2、单击一次顺排,再单击一次倒排
3、能够显示排序的顺三角符号和倒三角符号
4、通用的XP式风格通用模块,只需设置一个参数就可实现
5、国际标准的LNC对象命名规则,标准的程序注释风格
6、通用的关于窗体
7、真正透明图片的实现
8、清爽程序界面的一些思想(参考了黄海的程序)
9、透明按钮的使用
 培训优势:使用新版Access2013+思维导图模式+Access源码剖析+在线课堂+PPT课件  培训
 培训目标:让你 听得懂 学得会 记得住 用得上             要求:有一定的Access 或 VBA的基础 
 

 

clip0058

能排序的列表框


 

 

application_key 功能描述:

 

  • 能对列表框进行排序

  • 单击一次顺排,再单击一次倒排

  • 能够显示排序的顺三角符号和倒三角符号

  • 通用的XP式风格通用模块,只需设置一个参数就可实现

  • 国际标准的LNC对象命名规则,标准的程序注释风格

  • 通用的关于窗体

  • 真正透明图片的实现

  • 清爽程序界面的一些思想(参考了黄海的程序)

  • 透明按钮的使用(在[购买]窗口)

 

 

application_key  行业应用场景:

  • 扩展列表框的功能

  • 可以对列表框的标题点击进行排序

 

 

application_key  界面预览:

 

     access数据库

      

 

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

 

     access数据库

 

Access教程视频能排序的列表框 -- Access经典源码剖析思维导图在线播放

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

 

 

application_key  Access培训笔记:

 

经典源码剖析系列 能排序的列表框 Office中国-王宇虹

1 应用场景

1.1 扩展列表框的功能

1.2 可以对列表框的标题点击进行排序

2 技术特征

2.1 能排序的列表框的技术特征:

2.2 1、能对列表框进行排序

2.3 2、单击一次顺排,再单击一次倒排

2.4 3、能够显示排序的顺三角符号和倒三角符号

2.5 4、通用的XP式风格通用模块,只需设置一个参数就可实现

2.6 5、国际标准的LNC对象命名规则,标准的程序注释风格

2.7 6、通用的关于窗体

2.8 7、真正透明图片的实现

2.9 8、清爽程序界面的一些思想(参考了黄海的程序)

2.10 9、透明按钮的使用(在[购买]窗口)

3 模块 源码剖析

3.1 界面设计

3.1.1 放置一个列表框

3.1.1.1 3列

3.1.2 与列数相等数量的标签

3.2 代码实现

3.2.1 两个关键函数

3.2.1.1 InitListHeader

3.2.1.1.1 实现:初始化列表框标题

暂时关闭屏幕刷新

避免对列表框排序时造成画面抖动

Application.Echo False

取列表框的列数

rlst.ColumnCount

取列表框的行来源的SQL语句

RowSource

select 客户编码,客户名称,客户电话 from 客户表 order by  客户编码

去掉"ORDER BY"后面的内容

取列表框行来源的SQL语句中"select"与"from"中间的字段串

客户编码,客户名称,客户电话

用这个Split函数折开每个字段

Split(strFldName, ",")

暂时显示列表框的列标题

以便取出标题给自制列标题

判断当前自制列标题的标题内容

如果是△,说明原来是升序,应转成降序,且相应改变标题

如果是▽,说明原来是降序,应转成升序,且相应改变标题

如果是其它字符,说明原来没有排序,应转成升序,且相应改变标题

把上次排序的列恢复原样

恢复列标题(标签模拟的标题)

排序完后,隐藏列表框的列标题

ColumnHeads = False

恢复屏幕刷新

避免对列表框排序时造成画面抖动

Application.Echo True

3.2.1.2 SetListOrder

3.2.1.2.1 实现:设置列表框的数据排序

3.2.1.2.2 取列表框的列数

取列表框的列数

3.2.1.2.3 取列表框的行来源的SQL语句

Rowsource

3.2.1.2.4 去掉"ORDER BY"后面的内容

select 字段名 from 表名 order by 排序字段 iPos = InStr(strRowSource, "Order By") If iPos > 0 Then strRowSource = Mid(strRowSource, 1, iPos - 1)

3.2.1.2.5 根据","拆分各个字段名称出来

strFldNames = Split(strFldName, ",")

3.2.1.2.6 暂时关闭屏幕刷新

3.2.1.2.7 暂时显示列表框的标题栏

rlst.ColumnHeads = True

3.2.1.2.8 判断当前自制列标题的标题内容

△

如果是△,说明原来是升序,应转成降序

lstObjDesc.RowSource = strRowSource & " ORDER BY " & strFldName & " desc"

▽

如果是▽,说明原来是降序,应转成升序

strRowSource & " ORDER BY " & strFldName

其它

如果是其它字符,说明原来没有排序,应转成升序

strRowSource & " ORDER BY " & strFldName

3.2.1.2.9 把除当前列的其它所有列的标题 复位

For i = 0 To intColumnCount - 1         '循环其它自制列标题,清除它们的排序标志字符      If i <> rintColumn Then        Me.Controls("lblColumn" & i).Caption = rlst.Column(i, 0)      End If    Next

3.2.1.2.10 排序完后,隐藏列表框的列标题

rlst.ColumnHeads = False

3.2.1.2.11 打开屏幕刷新,显示变化后的画面

Application.Echo True

4 知识点

4.1 列表框

4.1.1 有列标题

4.1.1.1 设置列标题为是

4.1.2 无列标题

 

5 程序要求

5.1 准确性

5.2 友好性

5.2.1 用户体验

5.2.1.1 用户满意度高

5.3 优化

5.4 稳定性

5.5 安全性

6 好的习惯

6.1 边改边调试

6.2 DEBUG

6.2.1 发布之前把错误排除掉

 

 

 

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数据库

   

 
'===============================================================================
'-函数名称:         SetListOrder
'-功能描述:         按指定的列对列表框数据进行排序
'-输入参数:         参数1:rintColumn Integer 要排序的列
'-                  参数2:rlst ListBox 要排序的列表框
'-返回参数:         无
'-使用示例:         SetListOrder 1, lstObjDesc
'-相关调用:
'-使用注意:         调用前设置好列表框的列和宽度以及行来源,且行来源要指定具体的字段
'-兼 容 性:         97,2000,XP compatible
'-参考资料:
'-作    者:         王宇虹  修改:王宇虹
'-创建日期;         2002-08-26  更新日期: 2002-10-28 ,2002-11-15
'-图    解:
'===============================================================================
 
 
Private Function SetListOrder(rintColumn As Integer, rlst As ListBox)
Dim strCaption As String        '存储标题
Dim ctrColumnLabel As Control   '自制列标题
Dim i As Integer
Dim iPos As Integer             '字符串查找的定位位置
Dim iPos2 As Integer
Dim intColumnCount As Integer   '列表框的列数
Dim strRowSource As String      '列表框的行来源
Dim strFldName As String        '字段名
Dim strFldNames As Variant      '字段名数组
Dim strHeader As String         '列表框本身的列标题内容
intColumnCount = rlst.ColumnCount   '取列表框的列数
 
strRowSource = lstObjDesc.RowSource '取列表框的行来源的SQL语句,去掉"ORDER BY"后面的内容
iPos = InStr(strRowSource, "Order By")
If iPos > 0 Then strRowSource = Mid(strRowSource, 1, iPos - 1)
iPos = InStr(strRowSource, "select")    '取列表框行来源的SQL语句中"select"与"from"中间的字段串
If iPos > 0 Then iPos = iPos + 7
iPos2 = InStr(strRowSource, "from")
strFldName = Mid(strRowSource, iPos, iPos2 - iPos)
strFldNames = Split(strFldName, ",")    '根据","拆分各个字段名称出来
 
 
 
Set ctrColumnLabel = Me.Controls("lblColumn" & rintColumn)
    Application.Echo False      '暂时关闭屏幕刷新,避免对列表框排序时造成画面抖动
    rlst.ColumnHeads = True     '暂时显示列表框的标题栏,以便取出标题给自制列标题
    strHeader = rlst.Column(rintColumn, 0)  '取出列表框当前列的列标题
    strCaption = ctrColumnLabel.Caption     '取出自制列标题
    strFldName = strFldNames(rintColumn)    '取出当前列所对应的字段名称
    iPos = InStr(strFldName, " as")         '可能用户会使用 fldname as fldname1这种方式,故截取字符
    If iPos > 0 Then strFldName = Mid(strFldName, 1, iPos - 1)
    
    Select Case Right(strCaption, 1)        '判断当前自制列标题的标题内容
     Case "△"                              '如果是△,说明原来是升序,应转成降序,且相应改变标题
       lstObjDesc.RowSource = strRowSource & " ORDER BY " & strFldName & " desc"
       ctrColumnLabel.Caption = Trim(Left(strCaption, Len(strCaption) - 1)) & "  ▽"
     Case "▽"                              '如果是▽,说明原来是降序,应转成升序,且相应改变标题
       lstObjDesc.RowSource = strRowSource & " ORDER BY " & strFldName
       ctrColumnLabel.Caption = Trim(Left(strCaption, Len(strCaption) - 1)) & "  △"
    ......
    End Select
    '善后
    '把除当前列的其它所有列的标题 复位
    
   ......
    rlst.ColumnHeads = False                '排序完后,隐藏列表框的列标题
    
    Application.Echo True                   '打开屏幕刷新,显示变化后的画面
End Function
 
'===============================================================================
'-过程名称:         InitListHeader
'-功能描述:         按指定的列对列表框数据进行排序
'-输入参数:         参数1:rlst ListBox 要初始化的列表框
'-返回参数:         无
'-使用示例:         InitListHeader lstObjDesc
'-相关调用:
'-使用注意:         调用前设置好列表框的列和宽度 且增加与显示的列数相等的标签
'-                  标签的命名必须以lblColumn开头,后面加顺序号
'-兼 容 性:         97,2000,XP compatible
'-参考资料:
'-作    者:         王宇虹  修改:王宇虹
'-创建日期;         2002-08-26  更新日期: 2002-10-28 ,2002-11-15
'-图    解:
'===============================================================================
Private Sub InitListHeader(rlst As ListBox)
Dim i As Integer    '定义循环计数器
Dim j As Integer
Dim iCnt As Integer '列表框列数
Dim dblWidth As Variant '用来存储提取出来的栏位宽度
Dim dblLeft As Double   '用来存储控件左边距
Dim dblLastColumnleft As Double '用来存储最后一栏对应的列头的左边距
On Error Resume Next
    Application.Echo False  '暂时关闭屏幕刷新,避免初始化列表框时造成画面抖动
    dblWidth = Split(rlst.ColumnWidths, ";")    '拆出列表框每列的宽度值,赋给数组
    iCnt = rlst.ColumnCount '取出列表栏的列数
    rlst.ColumnHeads = True '暂时显示列表框的列表题,以便取出标题给自制列标题
    dblLeft = rlst.Left     '设置开始的控件左边距为列表框的左边距
    For i = 0 To iCnt - 1   '循环列表框所有的列
        If Val(dblWidth(i)) <> 0 Then   '只对显示的列处理,如果是隐藏的列,则跳过
          With Me("lblcolumn" & j)
........

 


标签:  Access,列表框,排序,界面
发布人:zstmtony  
分享到:
点击次数:  更新时间:2018-02-28 11:06:51  【打印此页】  【关闭】
上一条:VBA开发神器发布及培训--完全颠覆Access VBA的开发方式--平台插件VBA伴侣-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数据库
  • [2018-02-28] Access调用网页功能-版本自动更新-Access经典源码剖析access数据库
  • [2018-02-28] 网站数据提取与采集-Access经典源码剖析access数据库
  • [2018-02-28] ERP之BOM树源码-Access经典源码剖析access数据库
  • [2018-02-28] access图片分页展示及选择功能-Access经典源码剖析access数据库
  • [2018-02-28] Access智能搜索组合框-Access经典源码剖析access数据库

热门产品

  1. 较强的日程管理功能源码(新版)

    较强的日程管理功能源码(新版)

  2. 通用票据打印软件

    通用票据打印软件

  3. 通用POS软件

    通用POS软件

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

中山市天鸣科技发展有限公司 版权所有 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-2021  www.metinfo.cn