你的刚更新的数据没有Update 
或者,你需要重新棒定一下ADO控件.
例:重新绑定DATAGRID的ADO数据源
Set grid_mx.DataSource = datamx

解决方案 »

  1.   

    1:我曾遇到类似问题,调试后发现:我数据库中有两条记录相同,在进行recordset.update时就会报同样错误!或可能recordset的一些属性设置有错误!
      

  2.   

    或者recordset.update后recordset.requery
      

  3.   

    UPDATE 上次折旧 INNER JOIN 资产卡片 ON [上次折旧].[卡片编号]=[资产卡片].[卡片编号] SET 上次折旧.累计折旧日期 = [资产卡片].[开始使用日期]
      

  4.   

    第一个问题可能是你设了只读,
    或者是没有更新。
    001chb说的情况也可能出现,
    第二个问题时因为你的sql语句错了!
      

  5.   

    建议你把execute sql设成断点取出sql语句然后到access里面去执行一下看看问题在哪里。
      

  6.   

    第一个问题:你的新添加的纪录还存在于数据库吗?是不是已经被删了
    第二个问题:g_AdoDb.Execute (sSql) 应为g_AdoDb.Execute sSql
      

  7.   

    第一个问题:有可能你的纪录还没有添加进去。
    好象“利用数据窗口向导建立一窗口(ADO代码方式)”的数据更新是在一些事件发生后的事:例如:移到下一条纪录、关闭窗口、.....
    是不是你在窗口里写了一些东东,接着就kk...
      

  8.   

    其实你的第二个问题是因为你的SQL语句写错了
    sSql = "Update 上次折旧 set 累计折旧日期=资产卡片.开始使用日期 where 上次折旧.卡片编号='资产卡片.卡片编号'"
    那where语句后面是要有单引号的。
    有时,那“=”还要改写成“ like ”才能正常执行呢
      

  9.   

    to wqx(文曲星) 
    你好像也错了吧!
      

  10.   

    第一个问题:我没有设置只读,当我添加记录后,退出。重新启动程序后就可以删除。也不是什么Update 问题。
    nepalese(熊猫)说得对,设置一个主键 后就对了。
    To wywq(幸福如猪) :谢谢你,帮我解决了第二个问题
    希望你真的能够幸福如猪!
    不过好象不该这么复杂?
    给分了。
      

  11.   

    奇怪,为什么有看不见给分的框框???
    那天我就遇到过,后来又突然出现了。是不是CSDN的问题哦????
      

  12.   

    to truezq
    呵呵,是复杂了一点,不过我用ACCESS生成的写起来不麻烦,你用WHERE或子查询一样可以解决的!
      

  13.   

    第二个问题:
    应该是sSql = "Update 上次折旧 set【表名.】累计折旧日期=资产卡片.开始使用日期 where 上次折旧.卡片编号=资产卡片.卡片编号"