Office中国论坛/Access中国论坛

标题: 【Access小品】组合框动态行来源示例 [打印本页]

作者: todaynew    时间: 2016-5-11 17:51
标题: 【Access小品】组合框动态行来源示例
本帖最后由 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进制函数来计算数据。

示例:[attach]59023[/attach]

视图:
[attach]59013[/attach]



作者: ardu95    时间: 2016-5-13 05:45
好东西

作者: 风中漫步    时间: 2016-5-16 13:36
谢谢                       
作者: p51219    时间: 2016-7-10 09:55
谢谢分享!谢谢分享!谢谢分享!谢谢分享!谢谢分享!
作者: woshinide    时间: 2016-8-14 17:28
outlook有没有录制宏之类的功能呢
作者: woshinide    时间: 2016-8-14 17:29
outlook有没有录制宏之类的功能呢
作者: 李力军2    时间: 2016-8-19 14:21
我来看看是什么鬼
作者: 李力军2    时间: 2016-8-19 14:47
东西是好东东,构思也巧,可惜比较难懂,尤其是其中所涉及的数学问题
作者: owen2016    时间: 2016-8-20 10:59
已经下载学习
作者: p51218    时间: 2016-11-14 22:16
感谢  感谢
作者: Hi曹老师    时间: 2017-6-7 15:16
谢谢分享!
作者: 灰太郎    时间: 2018-1-1 18:19
11111
作者: 灰太郎    时间: 2018-1-1 18:20
111111111111




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3