高分:求解一小段代码问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 22:52:34
求解一小段代码问题:
for j=0 to num
sqlstr="select * from [Station] where qmstation_name='"& qmroute_address_now(j) &"'"
rs.open sqlstr,conn,1,3
if not rs.eof then '存在这个站点的话就修改数据
station_bus=rs("qmstation_bus")
station_bus_new=station_bus+"-"+qmroute_name
rs("qmstation_bus")=station_bus_new
rs("qmstation_addupdate")=now()
rs.update
rs.close

else '不存在的话就添加数据
rs.addnew
rs("qmstation_name")=qmroute_address_now(j)
rs("qmstation_bus")=qmroute_name
rs("qmstation_addupdate")=now()
rs.update
rs.close
end if
next
不好意思刚才死机了没说完

如我添加一个线路:5路(qmroute_address)的3个站点为88和99和99
(qmroute_address1)的3个站点为77和88和99
点确定添加到数据库时,qmstation_bus这里的99这三个相同站点会添加三次,变成:5路-5路-5路
77添加一次,为:5路(原来数据库中没有77这个站点,所以添加进去)
88添加一次,为:5路(原来数据库中没有88这个站点,所以添加进去)

我相解决的是: 如果添加5路车时有好多个相同站点时只添加一

先写个变量的注释:
qmstation_bus:经过该站点的车号,如5路。
qmroute_name:当前要添加的车号,如6路。
你的意思是不是说,你在添加一个线路(如5路)时,[station]站点表中已经有的站点(如99站点)会重复出现:5路-5路-5路,你想要的结果是qmstation_bus中已经有了5路了,再给99站点添加5路车的时候只显示一个5路就可以了。如果是这个问题的话,你可以参考下我下边的代码:(我直接把我的代码插进去了)

if not rs.eof then '存在这个站点的话就修改数据
//--------------------------以下是我插入的代码,用来判断qmstation_bus字段中是不是已经包含5路
station_id=rs("id")//该站点ID(全表唯一),你的[Station]表中肯定有这一项吧
sqlstr="select * from [Station] where id="& station_id &" and qmstation_bus like '%" & qmroute_name &"%'" //重新查找[Station]表,id等于你刚才查到的站点的ID,且qmstation_bus包含“5路”
rs2.open sqlstr,conn,1,1 //我重新定义了个rs2
if rs2.eof or rs2.bof then //如果改查询不存在,说明刚才你查到的站点不包含“5路”,则添加
//--------------------------我插入的代码结束
station_bus=rs("qmstation_bus")
station_bus_new=station_bus &"-"& qmroute_name
rs("qmstation_bus")=station_bus_new
rs("qmstation_addupdate")=now()