Private Sub cmdSave_Click()
     With OrderRs
        !track_no = Trim(txtTrack_no.Text)
        !frgt_cost = CDbl(txtFrgt_cost.Text)
        !AddUser = InitLoad.UserId
        !AddDate = Format(Now, vbDateTimeFormat)
        !UpdtUser = InitLoad.UserId
        !UpdtDate = Format(Now, vbDateTimeFormat)
        .Update
      End With
end sub
以上代碼是修改記錄集OrderRs,第一次單擊Save按鈕沒問題,數據能保存! 第二次再單擊Save按鈕時執行到Update就出以下提示:
Run-time error'-2147217864(80040e38)':找不到要更新的資料行。最後讀取的值已被更改
OrderRs的游標狀況如下:
  With OrderCostRs
     .ActiveConnection = Connect
     .Source = SqlCmd
     .CursorLocation = adUseClient
     .CursorType = adOpenStatic
     .LockType = adLockOptimistic
     .Open
  End With
請問這是為什麼會有這種情況?很急的,請各位兄弟幫幫忙!

解决方案 »

  1.   

    建议使用SQL的UPDATE语句来修改,不会出现错误的
      

  2.   

    表中有主鍵
    OrderCostRs 打開代碼:
      Private OrderCostRs As ADODB.Recordset
      Set OrderCostRs = New ADODB.Recordset
      SqlCmd = "select * from dbo.ssFrgtCost where order_no='" & OrderNo & "'"
      
      With OrderCostRs
         .ActiveConnection = Connect
         .Source = SqlCmd
         .CursorLocation = adUseClient
         .CursorType = adOpenStatic
         .LockType = adLockOptimistic
         .Open
      End With