一段代码对ACCESS的数据表进行删除记录和插入记录的操作,不定时的会出现错误提示“无法更新,当前被锁定”。
如果重启机器再执行也许就没问题了,但有时候就算重启机器也仍然报错,这是不是微软的BUG?该如何才能解决或避免这个问题?

解决方案 »

  1.   

    对数据库操作最好用事务控制来处理,处理后及时释放资源,如果并发用户较多则建议将数据库换成SQL
      

  2.   

    我也遇到过类似的问题,用了一段时间access就不能更新了。
      

  3.   

    主要代码如下
    RsHistory.Open "Select tbname From tbname Where tbname='d_u_bjml'", S_HFcn, 3
    If Not RsHistory.EOF Then
        S_HFcn.Execute "delete from d_u_bjml"
        Conn.Execute "INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', '" & App.Path & "\HistoryFiles.tlb'; 'admin'; '', d_u_bjml) (bjbh,bjmc,lbmc,cgjg,xsjg1,xsjg2,xsjg3,kcsx,kcxx,dw,bjlb,bzhl,ly,Zydid) Select a.bjbh,a.bjmc,b.lbmc,a.cgjg,a.xsjg1,a.xsjg2,a.xsjg3,a.kcsx,a.kcxx,a.dw,a.bjlb,a.bzhl,a.ly," & Zydid & " as zydid From j_bjml a,j_bjlb b Where a.lbbh*=b.lbbh and a.ly='0'"
    End If
    RsHistory.Close
    HistoryFiles.tlb是ACCESS文件,改了后缀,S_HFCN是打开该文件的连接。
    CONN是SQL SERVER的连接。