我用VB6+ACCESS2000,我的目的是,在数据保存时,检查ACCESS表dvb(仅有一个记录)的wtdh字段值,现在问题是:当网络上其他用户修改了该字段值后,我检测到的有时是已改过的值,但有时竟然是原来的值,而直接打开数据库,则都是已改过的值,我的检测代码很简单是:Private rstwtzj As New ADODB.Recordset
With rstwtzj
      Set .ActiveConnection = cnncl
      .CursorLocation = adUseClient
      .CursorType = adOpenStatic
      .LockType = adLockBatchOptimistic
      .Open "select * from dvb "
       mdh = !wtdh                        'mdh变量就是我检测的值
       .Close
End with

解决方案 »

  1.   

    试试看:
    .LockType = adLockOptimistic
      

  2.   

    谢谢 RUKYO,不行啊,还有其他办法吗? 今晚一直在线等待,请诸位伸出援助之手啊!我明天就要交付的,最后测试出来的问题,真急死人了,唉!
      

  3.   

    那再试试:
    .CursorLocation = adUseServer.CursorType = adOpenDynamicAccess的确不好办,不象SQLServer
      

  4.   

    .CursorType = adOpenStatic这里是静态游标!改成楼上动态的试试!
      

  5.   

    但据说Access是不支持动态游标的,不过楼主还是尝试下吧。
      

  6.   

    这里的关键在ConnectionPrivate rstwtzj As New ADODB.Recordset
    With rstwtzj
        dim conn as adodc.connection
        set conn=new adodc.connection
        conn.open cnnc1
          Set .ActiveConnection = conn
          .CursorLocation = adUseClient
          .CursorType = adOpenStatic
          .LockType = adLockBatchOptimistic
          .Open "select * from dvb "
           mdh = !wtdh                        'mdh变量就是我检测的值
           .Close
          conn.close
    End with
      

  7.   

    多谢各位的宝贵意见,让我深受启发,我已解决,方法挺笨:问题的确出在CONNECTION上,就是打开一个新的Connection,再将其赋给Recordset,这样保持的是最新的Connection,数据也就最新的了,再次感谢 W26547890(征服) !