设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1707|回复: 5
打印 上一主题 下一主题

[其它] 参数传递给in ()问题我想了10年,2007年六一儿童节终于想通了

[复制链接]
跳转到指定楼层
1#
发表于 2007-6-1 18:49:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家不用回复,直接就可以看到。如果觉得有用,就顶一下。

从1997年开始使用ACCESS,到如今已经10个年头了,开始学的时候,不知道怎么入门,就采用最笨的方法,把NORTHWIND原模原样的抄写了一遍,然后更改代码,运行,看看ACCESS报什么错误,就这样边改边学,VBA和SQL基本就入门了。

入门以后,一切就变的简单了。感觉每天都能学到新的东西,把这些知识再用到实际工作中,学以致用。学而时习之,不亦悦乎。

可是精通以后,人的惰性就来了,通常几个星期不写代码,不写SQL,因为工作中用到的查询、报表都已经完善了。开始吃老本。

言归正传,到底是什么问题要想10年呢?ACCESS论坛上经常有这样一个问题“怎么才能传递参数给IN查询呢”或者“有1个字符串,怎样才能才能转化成表呢?”,通常的答案是用VBA写动态SQL。我的做法也是用VBA处理。可是这个问题经常在脑海出现,难道真的只能用VBA吗?

比如这样的查询,当输入2,8,15时不会得到想要的结果

Parameters lngCaseNo string;

Select CaseNo

From Cases

where CaseNo in (lngCaseNo)

表CASES(辅助表,用来生成一些需要连续数字的查询),字段CASENO,值1到65536

CaseNo

1

2

3

4

5

6

...

65536

六一儿童节是个下雨的日子,好象自我记事以来,都是下雨天。坐在班车上,望着窗外的细雨绵绵。突然想起了什么。

Parameters lngCaseNo string;

Select *

from Cases

where CaseNo in (Select mid(lngCaseNo&',',first(CaseNo),Last(CaseNo)-first(CaseNo)) from Cases where CaseNo<=len(lngCaseNo)+1 Group by instr(CaseNo,lngCaseNo&',',','))

祝大家六一儿童节快乐

Parameters lngCaseNo string;

Select mid(lngCaseNo&',',first(CaseNo),Last(CaseNo)-first(CaseNo)) from Cases where CaseNo<=len(lngCaseNo)+1 Group by instr(CaseNo,lngCaseNo&',',',')

这句代码送给做物料管理的朋友,RABC*,REFG*,RDEF*,(物料代码)将会生成一个

RABC*

REFG*

RDEF*

的动态表,

[此贴子已经被作者于2007-6-2 12:34:50编辑过]

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-6-2 01:36:00 | 只看该作者
卖关子???鄙视。
3#
发表于 2007-6-2 08:46:00 | 只看该作者
晕死
4#
发表于 2007-6-12 19:21:00 | 只看该作者
老天,受不了了.
5#
发表于 2007-6-13 03:03:00 | 只看该作者
真晕,说不定某年的儿童节,我能突然看懂楼主在说什么
6#
发表于 2009-11-6 22:26:53 | 只看该作者
有点看不懂
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-15 12:47 , Processed in 0.092922 second(s), 29 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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