现象:www.art-child.com/aaa.jpg
进度显示很正常,程序也在正常运行。
谢谢

解决方案 »

  1.   

    就这点东东total = conn1.Execute("select count(*) from hyb")(0)
        rs1.Open "select rydm,rymc,hyxb from hyb", conn1, 1, 1
        Counter = 0
        StatusBar1.Panels(1).Text = "更新数据..."
        While Not rs1.EOF
            conn2.Execute ("update hyb set rymc='" & rs1(1) & "',hyxb='" & rs1(2) & "' where rydm='" & rs1(0) & "'")
            Counter = Counter + 1
            StatusBar1.Panels(2).Text = Counter & "/" & total & " 学生:" & rs1(0)
            rs1.MoveNext
        Wend
        Set conn1 = Nothing
        Set conn2 = Nothing
        Set rs1 = Nothing
        StatusBar1.Panels(1) = "就绪"
        StatusBar1.Panels(2) = ""
        MsgBox ("操作完成!")
      

  2.   

    在rs1.MoveNext后加 doevents试试
      

  3.   

    你的更新代码好像是将rymc与hyxb全部更新与rydm最大的那个一致,对吗?如果是的话,不用循环一个一个的更新,用批量更新一句搞定
        conn2.Execute "update hyb set rymc=T2.rymc,hyxb=T2.hyxb" _
                    & " from hyb T1 ,(select rydm,rymc,rydm from hyb where rydm in(select max(rydm) from hyb))T2" _
                    & " where T1.rydm=T2.rydm"
      

  4.   

    什么意思?hyb表的内容提出来又改成原来一样的,在干什么?
      

  5.   

    yoki(小马哥)看走了眼,还是我看走了眼?我怎么看来看去都是逐条记录改一遍,而其实内容没有变动呢。
      

  6.   

    呵呵,不好意思,看错了
    rydm可相同的情况
    假设纪录rydm , rymc, hyxb
    1             a b
    1             aa bb
    1             aaa bbb
    2              c cc
    对其查询后更新得:
    1             a b
    1             a b
    1             a b
    2             c ccrydm为主键的情况
    假设纪录rydm , rymc, hyxb
    1             a b
    2             aa bb
    3             aaa bbb
    4              c cc
    对其查询后更新得:
    1             a b
    2             aa bb
    3             aaa bbb
    4              c cc
    感觉楼主的更新语句有问题,不知道楼主相干什么呢??
      

  7.   

    同意yoki的做法,用一段sql语句批量执行更新的效果,肯定要比一条一条更新来的好。
      

  8.   

    我曾经试过在企业管理器里边用sql语句更新,不知道为什么失败了。只好做了这样一个程序。事情是这样的,conn2是远程的连接,conn1是本地的,因为不小心把远程的数据库上hyb里的姓名和性别update错了,所以只好从本地上读出来修改。现在要讨论的是以后遇到这种大量修改数据的情况怎么完善程序?现在这个窗口不能移动,不能最大,最小话,使用起来太不方便了。但是在sql企业管理器里边执行查询时就没有这样情况,肯定是我的程序写的不好。