Office中国论坛/Access中国论坛

标题: 一个关于查询范围的问题 [打印本页]

作者: amd001    时间: 2008-2-3 09:21
标题: 一个关于查询范围的问题
先描述一下问题
我想作一个三位坐标查询(范围类似IP地址),如   0(范围0~255).0.0.0至255.255.255.255   如何实现输入任何一个值只要在两者之间范围内,就将此段显示出来,再具体点比如

125.200.235.100~~~125.200.235.255
不管我输入的是125.200.235.234,125.200.235.115,125.200.235.200
显示的查询结果都应该是:
125.200.235.100~~~125.200.235.255(该段已在数据表中定义)
换句话就是这个查询要求每三位一比较。


不知道我表达清楚了没有~~汗。。=。=~~

[ 本帖最后由 amd001 于 2008-2-3 09:31 编辑 ]
作者: amd001    时间: 2008-2-3 11:00
没有人知道?还是我没说清楚啊
作者: kangking    时间: 2008-2-3 11:06
有点不清楚,例如:你的三个输入的例子中的最后一节都没有255,为什么结果中是255?
作者: amd001    时间: 2008-2-3 11:24
举个再简单的例子
就是
开始值          结束10
1           ~~~~       10

当输入查询条件9时,显示的就是这个范围
也就是告诉别人9在这个范围里
作者: kangking    时间: 2008-2-3 11:39
有点清楚了.
还有个问题是:你的开始值和结束值是不是固定的?比如1-10,11-20-21-30.我输入9就显示1-10.我输入23就显示21-30?还是显示1-30?
作者: amd001    时间: 2008-2-3 13:18
不是固定的~~
都是一段一段的
比如1-10    15-36
我输入14   就应该显示无
输入16 显示 15~36
作者: fswxs    时间: 2008-2-3 13:33
可以实现的,你弄个例子上来,会有人帮你改的了。
作者: kangking    时间: 2008-2-3 14:48
原帖由 amd001 于 2008-2-3 13:18 发表
不是固定的~~
都是一段一段的
比如1-10    15-36
我输入14   就应该显示无
输入16 显示 15~36


一个小例子.
作者: amd001    时间: 2008-2-4 11:27
谢谢~~kangking的帮助
但是貌似你理解错误了我的意思,我不是一个简单比大小,而是一个范围,所以才弄到现在。
比如210.210.210.10~~210.210.210.255
那么210.210.210.244  因该属于这个数据段内而210.210.210.09 则不要在这个范围内~~~~而不是说比谁大,比谁小的~~~
作者: kangking    时间: 2008-2-5 09:35
我晕!
例子中的大于某值而小于某值,就是表明你录入的数据在这个范围内呀!!!
你最好能提供一个示例,别人才好做呀!
作者: haemon    时间: 2008-2-5 10:04
看不明白,无从下手,哈哈
不知道目的是什么
作者: amd001    时间: 2008-2-13 09:14
我传个例子上来,帮我看看吧~~
作者: Henry D. Sy    时间: 2008-2-13 09:16
between and
作者: Henry D. Sy    时间: 2008-2-13 09:26
val,replace等函数试试
作者: amd001    时间: 2008-2-13 09:36
麻烦能给个例子吗??
作者: Henry D. Sy    时间: 2008-2-13 09:46
用你的例子为例:

PARAMETERS [请输入不带句号的起始ip] Currency, [请输入不带句号的终止ip] Currency;
SELECT 测试1.IP地址起始段, 测试1.IP地址结束段, 测试1.地域
FROM 测试1
WHERE (((CCur(Replace([IP地址起始段],".","")))>=[请输入不带句号的起始ip]) AND ((CCur(Replace([IP地址结束段],".","")))<=[请输入不带句号的终止ip]));
作者: Henry D. Sy    时间: 2008-2-13 09:47
估计数值范围超出val函数,故改用ccur函数,
不过没有关系,目的只是比较一下而已。
作者: amd001    时间: 2008-2-13 09:54
你的这个是在已知起始地址和结束地址的情况下~~~
我想的是在未知起始与结束地址的情况下~~
输入一个地址,然后直接显示这个范围~~
作者: Henry D. Sy    时间: 2008-2-13 09:56
原帖由 amd001 于 2008-2-13 09:54 发表
你的这个是在已知起始地址和结束地址的情况下~~~
我想的是在未知起始与结束地址的情况下~~
输入一个地址,然后直接显示这个范围~~

什么已知未知,不明白你说什么?
作者: Henry D. Sy    时间: 2008-2-13 10:01
哦,有点明白了
你可以将你查询的ip地址,输入两次
一次在起始ip,另一次在终止ip
作者: Henry D. Sy    时间: 2008-2-13 10:05
如果嫌输入两次麻烦,就用查询窗体来实现。
作者: amd001    时间: 2008-2-13 11:15
本来就是打算用窗体来实现的哈~~

但是你在输入时,是不知道起始IP地址和结束IP地址的~~

所有,想实现的效果是,任意输入一个IP地址,如果有已知库中有这个地址范围,则显示这个范围~~无则不显示~~
作者: GZQT2005A    时间: 2008-2-13 11:20
大家真厉害,学习中!!支持!!
作者: jsf2008    时间: 2008-2-14 09:13
看不懂,学习~~~~~~~
作者: amd001    时间: 2008-2-14 09:57
顶一下,谁来解决啊~
作者: amd001    时间: 2008-2-14 13:53
谁来帮忙解决啊
~~~
作者: kitty001    时间: 2008-2-14 13:54
我也遇到这个问题,学习一下
作者: glw    时间: 2008-2-15 13:51
希望帮上LZ[attach]28438[/attach]




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