Access交流网
电 话:0760-88315075
热 线:0760-88315075
邮 编:528463
咨询QQ:1918333016
营销QQ:4008553990
Email:1918333016@qq.com
![]() | 主题:能排序的列表框-高手之路 听课人数:90人 |
![]() | 主讲:王宇虹 演讲时间:2015-01-28 15:30 至 2015-01-28 16:30 2014-02-04 15:30 至 2014-02-04 16:30 |
![]() | 讲课内容简介: 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的基础 |
能排序的列表框 |
能对列表框进行排序
单击一次顺排,再单击一次倒排
能够显示排序的顺三角符号和倒三角符号
通用的XP式风格通用模块,只需设置一个参数就可实现
国际标准的LNC对象命名规则,标准的程序注释风格
通用的关于窗体
真正透明图片的实现
清爽程序界面的一些思想(参考了黄海的程序)
透明按钮的使用(在[购买]窗口)
扩展列表框的功能
可以对列表框的标题点击进行排序
经典源码剖析系列 能排序的列表框 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 发布之前把错误排除掉
1. 直接超值购买:
包含:Access示例完整源码+实现思路与代码讲解高清视频+Access培训课件 绝对低价超值
2. 购买前咨询:
在线咨询QQ:1918333016
企业热线QQ:4008553990 (使用QQ搜索: 搜索服务)