设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 6835|回复: 12
打印 上一主题 下一主题

[模块/函数] 【Access小品】组合框动态行来源示例

[复制链接]
跳转到指定楼层
1#
发表于 2016-5-11 17:51:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 todaynew 于 2016-5-16 09:11 编辑

  版友风中漫步同志问如何得到如同Excel列的字母列表,恰好最近在一个MVC嵌入Excel表的项目开发中也涉及到此问题。由于项目中实际最多取到AH列,所以函数写的相对简单一些。风中漫步同志提出要在2000以内取字母的组合,这就超过了ZZ(也就是超过了26的2次方),版友盗梦同志认为比较难处理。其实这个问题本质上是一个10进制转换为26进制,然后取其各个位数上的值的问题。所以只要写出一个通用的10进制转n进制的函数即可。

  对这个问题版友roych同志认为没什么意义。我对此不这么看,原因在于我们在处理Excel表的列(column)时,有很多时候需要用户对列做出选择。由于Excel表的列名是字母组合而非数字,因此从方便用户的角度来看,提供给用户选择的是列名而非数字要更好一些。否则,用户需要数出列名对应的数字再输入,那对用户来说多少有些麻烦。

  解决这个问题,还有一个技巧性的问题,那就是呈现多少数据给用户进行选择。一般来说,给用户的数据不宜太多,有十个八个就行了。问题是选择的范围并非十个八个,可能有很多,甚至可以假设为无上下限。这个情况下就需要通过一些技巧来动态的给用户提供数据。我个人喜欢的处理是,以用户的选择为中间数,以此来得到那些要呈现给用户的数据,这样每次用户的选择都改变数据呈现的范围。

  在以下示例中,我们假设用户需要两个组合框来选择数据。其中一个是年度,一个是Excel表列名。这两个组合框的行来源为不同函数,在组合框的更新后事件中,调用函数来得到数据的呈现范围。两个组合框处理的基本思路是相同的,也就是说其他类似的组合框均可按这个思路处理。不同的是,Excel表列名需要依赖一个十进制转换n进制函数来计算数据。

示例:

视图:



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

本帖被以下淘专辑推荐:

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享分享 分享淘帖1 订阅订阅
2#
发表于 2016-5-13 05:45:06 | 只看该作者
好东西
回复

使用道具 举报

3#
发表于 2016-5-16 13:36:06 | 只看该作者
谢谢                       
4#
发表于 2016-7-10 09:55:40 | 只看该作者
谢谢分享!谢谢分享!谢谢分享!谢谢分享!谢谢分享!
5#
发表于 2016-8-14 17:28:47 | 只看该作者
outlook有没有录制宏之类的功能呢
6#
发表于 2016-8-14 17:29:29 | 只看该作者
outlook有没有录制宏之类的功能呢
7#
发表于 2016-8-19 14:21:44 | 只看该作者
我来看看是什么鬼
8#
发表于 2016-8-19 14:47:55 | 只看该作者
东西是好东东,构思也巧,可惜比较难懂,尤其是其中所涉及的数学问题
9#
发表于 2016-8-20 10:59:47 | 只看该作者
已经下载学习
10#
发表于 2016-11-14 22:16:54 | 只看该作者
感谢  感谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-12-27 13:27 , Processed in 0.118837 second(s), 36 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表