大家好:
   我用一个ado控件连接数据库与DataGrid,现在要实时刷新datagrid中的信息,不用datagrid.refresh,因为没有效果.
   我采用刷新ado的方法,代码如下:
   当我单步执行时,没问题.连续运行就提示"无法为更新定位行,一些值可能已在最后一次读取后已更改".
   
   问题出在Adodc1.Refresh上,如果单步执行,速度不时很快,就没问题.
   
   用更新ado的方法怎么解决这个问题呢???   Private Sub Command1_Click()
     Do While Adodc1.RecordSet.EOF = False
              Adodc1.RecordSet.Fields("Status").Value = 1
              Adodc1.RecordSet.MoveNext
              Adodc1.Refresh
     Loop
     Unload Me
   End Sub

解决方案 »

  1.   

      Private Sub Command1_Click() 
        Do While Adodc1.RecordSet.EOF = False 
                  Adodc1.RecordSet.Fields("Status").Value = 1 
                  Adodc1.RecordSet.MoveNext 
                  Adodc1.Refresh 
                  DoEvents
        Loop 
        Unload Me 
      End Sub 改成这样试试看
      

  2.   

    还是不行啊,每次只能更新一行
    大家来看看
    是不是用了Adodc1.RecordSet.MoveNext ,后面再用Adodc1.Refresh不行啊? 
      

  3.   

      Private Sub Command1_Click() 
        Do While Adodc1.RecordSet.EOF = False 
                  Adodc1.RecordSet.Fields("Status").Value = 1
                  Adodc1.RecordSet.Update
                  Adodc1.RecordSet.MoveNext 
                  Adodc1.Refresh 
        Loop 
        Unload Me 
      End Sub
      

  4.   

    "无法为更新定位行,一些值可能已在最后一次读取后已更改". 
    这个提示在其它地方也出现了,都是针对adodc.RecordSet.MoveNextde的
    为什么会这样?这条语句的使用和adodc的更新需要注意哪些问题吗?
      

  5.   

    在几个程序中都出现这样的问题,当ado和datagrid的指针发生变化时,都有这样的提示
    大家来看看,帮帮忙
    谢谢