请教,一个数据库的问题。

windcat 2002-05-31 11:00:16
我建了一个sql server数据库,要通过金额显示它的排名。我想通过一边查询一边就确定它的排名,但以下程序出错,请问有何办法解决。
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str)
Do Until repri.EOF
i = i + 1
With repri
.field("order")=i
.Update
End With
Set dbitem = dblist.ListItems.Add(, i & "ID", i)
dbitem.SubItems(1) = repri.Fields("wangno")
dbitem.SubItems(2) = repri.Fields("count")
dbitem.SubItems(3) = formatd(Format(repri.Fields("smoney"), "##,##0.00"))
repri.MoveNext
Loop

...全文
2 点赞 收藏 12
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
wzsswz 2002-05-31
repri.Open (str, cnn, adOpenStatic, adLockReadOnly)
应为:
repri.Open (str, cnn, adOpenStatic, adLockOptimistic)
回复
wzsswz 2002-05-31
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str, cnn, adOpenStatic, adLockReadOnly)
str = "delete * from repri_tab "
repri00.open(str)
Do Until repri.EOF
i = i + 1
With repri
。。。
这样试试看
回复
windcat 2002-05-31
写这个的目的就是把真正的排名导入数据库,i其实就是名次。这是必要的。
具体出错确实是
With repri
.field( "order ")=i
.Update
End With
这段代码。
回复
hillmanweb 2002-05-31
具体出什么错?
回复
gmc007 2002-05-31
sql语句是没错的,错的是:
With repri
.field("order")=i
.Update
End With
你这是什么意思?上面的SQL语句不是排序了吗?
你去掉这四行代码就行了。
回复
gyang 2002-05-31
可以
1。生成临时表
create table yg_xxxx as(select * from repri_tab order by smoney desc)

2.删除元标
delete repri_tab;
3.更改表明
rename yg_xxxx to repri_tab;
回复
ql_mf 2002-05-31
奇怪,不应该不行呀,难道不是打开方式的问题?
回复
gyang 2002-05-31
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str)
Do Until repri.EOF
i = i + 1
With repri
exec "update repri_tab set order =" & i & " where id=" & .field("id")
End With
Set dbitem = dblist.ListItems.Add(, i & "ID", i)
dbitem.SubItems(1) = repri.Fields("wangno")
dbitem.SubItems(2) = repri.Fields("count")
dbitem.SubItems(3) = formatd(Format(repri.Fields("smoney"), "##,##0.00"))
repri.MoveNext
Loop
回复
windcat 2002-05-31
那有没有什么方法可以将它按某一条件的排序的结果放入数据库中?
回复
gyang 2002-05-31
i = 0
str = "select * from repri_tab order by smoney desc"
repri.Open (str)
Do Until repri.EOF
i = i + 1
With repri
exec "update repri_tab set order =" & i
End With
Set dbitem = dblist.ListItems.Add(, i & "ID", i)
dbitem.SubItems(1) = repri.Fields("wangno")
dbitem.SubItems(2) = repri.Fields("count")
dbitem.SubItems(3) = formatd(Format(repri.Fields("smoney"), "##,##0.00"))
repri.MoveNext
Loop
回复
gyang 2002-05-31
update是错误的,逻辑上的错误,一条语句是不可能做到上述两种事情的,
update时,应该只update选中的一条记录。你想在显示的同时更新数据库没有道理。
回复
windcat 2002-05-31
还是不行
关键是在
.update
的时候会出错。
回复
发动态
发帖子

1180

社区成员

VB 数据库(包含打印,安装,报表)
申请成为版主
社区公告
暂无公告