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

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

...全文
35 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
的时候会出错。

1,217

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧