设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: roych
打印 上一主题 下一主题

[VBA编程/宏] 浅谈Excel查询

[复制链接]
11#
 楼主| 发表于 2011-3-13 17:55:02 | 只看该作者
本帖最后由 roych 于 2011-3-13 18:23 编辑

      上次小妖姐姐在灌水帖里评了-30分,这次只好贴几个实例上来好混点评分,——请让小生自恋三秒钟,(*^__^*) 嘻嘻……)
      没想到,小妖姐姐一上来就刁难Roy。。。
      小妖姐姐说的定位,是不是Move系列方法(MoveFirst、MoveLast等等)。不过由于记录集属于内存数据,没试过,不知道行不行。
      而查找功能,应该是记录集中的Find方法,大家可以试试。语法为:rst.Find (条件, 起始行, [搜索行方式],查找方式 )
例如,从第一行搜索Roy的数据可以这样写:rst.Find("姓名=Roy",1,,adSearchForward),——第一行开始,肯定是向前搜索的了。
      不过,有这个必要么?  
  • 定位功能。Roy觉得查询出来之后,根据记录的条数,再用offset方法来定位岂非简单多了?
  • 查找功能。直接用系统自带的查找功能也不算太烂吧?即便想用VBA,也可以用For语句+Find方法来查找数据啊。是不是?
      狠狠地鄙视下小妖姐姐的无厘头难题~~~

12#
发表于 2011-3-13 18:12:26 | 只看该作者
roych 发表于 2011-3-13 13:36
回复 aslxt 的帖子

改成有效性序列时,就相当于组合框了~~但是这个数据较多,可能做成二级下拉菜单要好些。 ...

简单改成有效性系列时,如何解决以下问题:
1、序列的唯一性
2、序列的排序
3、下拉高度(只有8行,找了很久都没有方法改变这个高度,也就是下拉后显示的行数)
有知道的请指教一下
13#
 楼主| 发表于 2011-3-13 18:34:09 | 只看该作者
aslxt 发表于 2011-3-13 18:12
简单改成有效性系列时,如何解决以下问题:
1、序列的唯一性
2、序列的排序

问题1:分两种情况:
如果是固定的序列(如中国的省份等等),可以设置一个唯一的数列,定义好名称后在有效性里设置好就行了。
如果不是固定的序列,例如随时增加序列号的话,则需要写数组公式来列出不重复值,然后再动态定义该序列。有时间的话,我会写点这方面的实例。——个人觉得这倒不如用数据透视表做好之后,每次打开时刷新透视表,从而得到动态数据要好些。
问题2、顺序是必须排列好的。当然,你也可以在启用宏的情况下,每次打开时自动对序列进行排序(用Sort方法)。
问题3、Roy暂时没研究。

点击这里给我发消息

14#
发表于 2011-3-14 10:53:38 | 只看该作者
妖是V白!
查找和定位指的是CTRL+F和F5的两个功能,这对于V白们来说是个极好的查找手段,现实中让我去查找一堆东东,除非迫不得已坚决不用FIND,更不用那些让人头晕的数组函数。
顺便还有,筛选也是一种查找手段。
PS,让鄙视来得更猛烈些吧!!!!
15#
 楼主| 发表于 2011-3-14 11:21:36 | 只看该作者
对于小妖姐姐,这一点我是赞同的。我对所有人都是这么说的,能用命令时决不用公式,能用公式时决不用数组,能用数组时决不用VBA。
不到万不得已,谁会那么有空去调试代码呢?而且,我写这个的初衷,也不是为了鼓励大家去学VBA,更不是为了炫耀我的菜鸟VBA水平,而是希望这个能作为一种工具,能够简化大家的工作。——当然,前提是你必须知道怎么改数据源(这要求应该不算太高吧?),否则也是“授人以鱼”。
16#
发表于 2011-3-14 11:22:19 | 只看该作者
回复 roych 的帖子

无比激动的感谢楼主,帮了大忙

点击这里给我发消息

17#
发表于 2011-3-14 17:10:10 | 只看该作者
roych 发表于 2011-3-14 11:21
对于小妖姐姐,这一点我是赞同的。我对所有人都是这么说的,能用命令时决不用公式,能用公式时决不用数组, ...

没有鄙视?盾牌白准备了
18#
发表于 2011-3-16 22:13:48 | 只看该作者
谢谢分享,学习学习
19#
发表于 2011-3-17 15:35:31 | 只看该作者
厉害啊
20#
发表于 2011-3-22 09:47:48 | 只看该作者
学习
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-25 23:39 , Processed in 0.094396 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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