瑞星卡卡安全论坛

首页 » 技术交流区 » 系统软件 » 求助:数据库查询
开心客 - 2006-4-3 16:50:00
目的:凭证发放管理。
要求:根据一张凭证号能查询领取者。
数据库是access
有5个字段:id(自动编号)、hao1(凭证起始号)、hao2(凭证结束号)、name(领取人姓名)、riqi(领取日期)。
我现在只能设计根据起始号查询,在起始号和结束号之间的查询我无力做到,请大家帮帮我,谢谢!!!
附:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!--#include file="conn.asp" -->
<CENTER><H4>凭证管理</H4>
<%

Set rs =Server.CreateObject("ADODB.Recordset")    '制作 Recordset 对象
sql = "select * from ping "
rs.Open sql, conn ,1,1    '打开Recordset 对象   
  If Request.Form <> "" Then 
    RS.Find  "hao1 =" & Request.Form("hao")
IF RS.EOF THEN
        RESPONSE.WRITE "<B>抱歉 ! 资料库中没有 "& Request.Form("hao") & "的资料"


     ELSE
        RESPONSE.WRITE "<B>凭 证 号 : "& Request.Form("hao") & "<BR>"
        RESPONSE.WRITE "<B>领取人姓名 : " & RS("name") & "<BR>"
        RESPONSE.WRITE "<HR>"
    END IF
  End If
 
%>
<form method="POST" action="find.asp">
查找 <input type="text" name="hao" size="3">  的资料
<P><input type="submit" value="确  定">  <input type="reset" value="清        除">
</form>
</CENTER>
开心客 - 2006-4-3 18:42:00
例如一本凭证是100份,从10001到10100,现在只能根据10001查处领取者,要是查10002就不知道怎么办了,谢谢大家。请给我一些帮助。
江湖游客 - 2006-4-4 9:27:00
sql = "SELECT * FROM ping where hao1 BETWEEN 10001 AND 10100"
rs.Open sql, conn ,1,1
这是直接查询到10001到10100间的所有数据.前提是hao1字段必须是数字而不是字符串.
如果单个查询则可以使用
sql = "SELECT * FROM ping where hao1=10001"
试试看吧.
开心客 - 2006-4-4 10:00:00
非常感谢您的帮助。
但我这是一个凭证领取管理的小程序,A会领10001到10100,也会领15000到15100,B也会领多本凭证。现在需要输入任意一张凭证号查询出是谁领取的。
再次感谢!
聪仔工作室 - 2006-4-4 16:10:00
这是用什么语言做的.
开心客 - 2006-4-5 17:13:00
ASP啊
开心客 - 2006-4-5 17:15:00
这里今天打不开了,谢谢您的关注。
开心客 - 2006-4-7 17:13:00
自己顶一下
开心客 - 2006-4-9 21:43:00
请求帮助
江湖游客 - 2006-4-10 14:06:00
sql="SELECT * FROM ping where hao1=" & Request.Form("hao")
rs.Open sql,DBNews,1,1
这样不行吗?
开心客 - 2006-4-16 13:53:00
谢谢您,还是不行。
江湖游客 - 2006-4-16 17:32:00
昏迷,居然没法上传RAR文件,所以没办法给源代码给你进行修改了。
反正前面两句在我这里是可以运行通过的,完全可以达到目的。在这解释一下前面的代码你自己回去修改一下吧。
sql="SELECT * FROM ping where hao1=" & Request.Form("hao")
这一句其实是把你的SQL打开查询加个条件语句,即直接查询凭证号的语句。将它替代到你前面的sql语句即可。打开数据库后返回的记录集就是查询到的记录(如果没有返回空)
Request.Form("hao")则是从你的输入框中获取到的数据,有了这个就可以在运行时通过修改输入框里的数据进行不同的查询了。
rs.Open sql,DBNews,1,1 这句由于当时是我直接复制自己的代码修改时漏了修改打开数据连接对象了,你可以把rs.Open sql,DBNews,1,1修改成rs.Open sql,conn,1,1。其他的照你原来的,如果你前面给的代码可以通过,那么这个也应该可以通过吧。
其他的没什么好说了,只能说祝你好运了。
开心客 - 2006-4-17 10:26:00
(错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。
/ping/find.asp, 第 13 行)
还是打个包给我试试吧:kxinke@sohu.com
谢谢哦
江湖游客 - 2006-4-17 10:41:00
源代码已发.希望能够对你有点帮助.
开心客 - 2006-4-18 14:08:00
我想用一种表达式来查询,思路是这样的:当输入的hao2>=hao>=hao1时,显示领取者。只不过不知道怎样在语句中写。请高手们帮帮我,谢谢!
开心客 - 2006-4-18 20:25:00
非常感谢江湖游客的帮助,在此把源码贴出来,希望对大家有所帮助。
<%
if request.querystring="search" then
set rs=server.CreateObject("adodb.recordset") '制作 Recordset 对象
sql="SELECT * FROM ping where (hao1 <=" & Request.Form("hao") & ") AND (" & Request.Form("hao") & "<=hao2)"'条件
rs.Open sql,conn,1,1 '打开Recordset 对象
if rs.EOF then
RESPONSE.WRITE "<B>抱歉 ! 资料库中没有 "& Request.Form("hao") & "的资料"
else
RESPONSE.WRITE "<P><B>凭 证 号 : "& Request.Form("hao") & "<BR>"
RESPONSE.WRITE "<P><B>领取人姓名 : " & rs("name") & "<BR>"
RESPONSE.WRITE "<P><B>领取日期 : " & rs("riqi") & "<BR>"
RESPONSE.WRITE "<HR>"
end if
rs.close
end if
%>
注意:hao1和hao2的属性是数字。
再次感谢江湖游客!!!
黑奇一护 - 2006-7-14 10:49:00
来逛逛!!初学者!!学习!!!
根据自己的思想,设计东西,爽!!
帮你顶!!顶!顶!!
1
查看完整版本: 求助:数据库查询