不要用ADODC控件更新,因为如果你更新的那条记录如果表中还存在其他记录和该条记录一样,ADODC控件就不知道该更新哪条记录了,所以你直接用
引用adodb数据源ADODB.Connection 。
dim conn as new adodb.connection
....
....
conn.execute "Update table set field=newValue"

解决方案 »

  1.   

    更新完后用ADODC控件刷新即可。
    ADODC3.Refresh
      

  2.   

    gxingmin(小高) 说得没错,直接使用ado会更灵活。而且,不会很容易就出错
      

  3.   

    楼上的二位,关键是运行到
    adodc3.recordset.update
    就报告错误:“缺少刷新或更新的数据表消息“
    根本都还没运行到刷新那里
      

  4.   

    gxingmin(小高) :老大,我不明白你的意思,更新有错?你又不说
    错到哪里,如果你的意思是不用update那行语句的话,又怎么能够
    更新到数据库里的东东呢
      

  5.   

    为什么这么多人都喜欢不用Sql呢?
      

  6.   

    改成u用SQL语名句
    update set nsocket
    CSDN的输入框老是出问题!!!改不了,晕~!
      

  7.   

    不用adodc3.recordset.update去更新,在后台声明一recordset 如:Public sub insert_update_data(sql As String) 'sql为不返回结果集的sql
        If sql = "" Then Exit sub 
        Dim cnn1 As ADODB.Connection
        Dim rst1 As ADODB.Recordset
        Set cnn1 = New ADODB.Connection
        Call cnn1.Open(connectstr()) 'connectstr()为数据库connect信息
        Set rst1 = New ADODB.Recordset
        rst1.ActiveConnection = cnn1
        On Error GoTo errorhandle
        Call rst1.Open(sql, cnn1, adOpenKeyset, adLockReadOnly)
        Set rst1 = Nothing
        cnn1.Close
        Set cnn1 = Nothing
        Exitsub
    errorhandle:
        Err.Clear
        Set rst1 = Nothing
        Set cnn1 = Nothing
        Exit sub
    End sub。
       sql = "Update table set field=newValue"
       call insert_update_data(sql)
       Adodc3.Refresh
      我想,楼上gxingmin(小高)所指大概也是这个意思吧? 
      

  8.   

    首先感谢楼上各位的解答,我先试一下。
    我写代码,平时能用控件我一般都用控件
    我还是很纳闷为什么同样的代码98下行2000下就不行
    如果各位能提供不用sql直接用adodc控件的方案解决的话,小女子感激不尽
    这个问题困扰我两天了,接下来的工作根本没法干
      

  9.   

    安装vb SP5,能解决大多数同样的代码98下行2000下就不行的问题
      

  10.   

    sunbird2002(王文丰) ,不知您是要如何加密文件夹?
      

  11.   

    007zc(笑咪咪):vb SP5是什么,请问在那里可以找到?(呵呵,很白痴问题,请告知,谢谢!)