[返回]
计算机世界2000年第23期

用ASP及Access实现网上调查

潘汀波

  现在很多网站都有网上调查,这已是网民们司空见惯的事了。但是究竟如何实现网上调查呢?本文介绍一个利用ASP及Access数据库实现网上调查的方法。当你看完本文,如果你的网站上有ASP,你就能很容易地实现网上调查了。

数据的建立及连接

  首先,你应先在已安装好Windows98并已安装了Office97(或更高版本)的Access数据库的PC机上建立一个Access数据库。具体操作如下:点选“开始”——新建Office文档——点“空数据库”poll.mdb——新建表polldata,表格应包含如下字段:调查说明(文本、若干个调查项目的计数、总计数。

  然后在服务器端(当然是Windows NT4或已安装PWS好的Windows98)建立ODBC连接,具体操作如下:在控制面版里找到ODBC DATA SOURCE图标点击进入——选取SYSTEM DSN——增加Micosoft Access drive (*.mdb)——点“完成”——为数据源起名poll,并选定数据库所在路径(当然,你要事先把已建好的数据库拷贝到相应的路径上)——点“OK",数据源和ODBC就建好了。

调查网页的编写

  当设计好数据库后,就可着手编写网页了。

  先用frontpage建立如下网页poll.htm。

  需要注意的是,以上网页中将每一项Radio按钮的value值分别设为1、2、3、4、5、6、7、8、9、10。在网页编辑器中点选“提交并查看结果”,在form属性上选“send to other",然后点选“options”,在“action”栏中填写调查结果的网页名称result.asp。即应包含如下代码:

< form method=“POST" action=“result.asp" target=“_blank" >

ASP及数据库操作

  下面是asp网页(result.asp)的制作。因为要进行数据库的读写操作,所以必须用ASP实现。这里我们用result.asp实现调查结果的输出。

  1.读取数据库表中的值

  即将数据表中的调查计数及总投票数取到变量中,用如下代码:

<%pollno=1
Set Myconnection=Server.CreateObject(“ADODB.Connection")
MyConnection.Open “poll"
‘上两句代表设定MyConnection与
ODBC的链接,并指定数据源名称为poll
SetMyCommand=Server.CreateObject(“ADODB.Command")
MyCommand.CommandType=1
MyCommand.CommandText=“Select *
 from polldata where id="&pollno&“"
‘上句表示在数据库poll的表中取polldata的第
“pollno"条记录
Set MyCommand.ActiveConnection=MyConnection
Set RS1=MyCommand.Execute
p1=RS1.Fields(“p_1")   ‘此句代表,
将数据表的p_1字段取出赋值给变量p1
p2=RS1.Fields(“p_2")
p3=RS1.Fields(“p_3")
p4=RS1.Fields(“p_4")
p5=RS1.Fields(“p_5")
p6=RS1.Fields(“p_6")
p7=RS1.Fields(“p_7")
p8=RS1.Fields(“p_8")
p9=RS1.Fields(“p_9")
p10=RS1.Fields(“p_10")
psum=RS1.Fields(“p_sum")
plook=RS1.Fields(“p_look")
plook=plook+1
%>

  其中pollno为数据表中的id号,选择不同的id号则可选择不同调查。

  2.对调查表提交的数据值进行判别计算

  如果某一项不为空,则对应此项的变量则进行累计加1。算法如下:

select  case aa
   case “1"
   p1=p1+1
   case “2"
   p2=p2+1
   case “3"
   p3=p3+1
   ……
   case “10"
   p10=p10+1
end select
psum=p1+p2+p3+p4+p5+p6+p7+p8+p9+p10

  3.将统计结果再写回数据表

  代码按如下格式:

sqlstr=“update polldata SET p_1=”&p1&“,
p_2=”&p2&“,…,p_10=”&p10&“,p_sum=
”&psum&“,p_look=”&plook&
“ where id=”&pollno&“”

  上句代表,用update命令将变量值分别赋给数据表中的各变量。

  4.将统计结果输出到网页上

  此步较简单,先设计好如下图的一个空表格,然后将前面用到的变量分别填到相应的位置,进行输出就行了,比如<%=p1%>即表示将第一项调查结果输出到网页上,而< %=psum% >即表示将总投票数输出到网页上。

  显示图例有一个技巧,即通过嵌入带某种颜色背底的表格的长短来表示调查数量的多少。用如下代码< td width=“< %=int(p5/psum*300)% >" >,其中p5表示第五项调查的投票数,当投票人数多时,此带有某种颜色背底的表格就会变得较宽。

  通过以上各步骤,我们的网上调查的制作就完成了。当你通过网页poll.htm选中调查项目,并按“提交并查看结果”后,即得出如下页面(result.asp):

  以上是网上调查的简单实例,当你要做自己网站的调查时,只需将以上两个网页中相应的项目直接替换为你自己设定的调查项目即可,如果项目少,则将多余的项目在网页上删除即可。