2015-04-01 46 views
1

我正在使用excel 2007.我已成功更新過去使用此代碼的記錄集,但不知道爲什麼我開始在這一個上得到「運行時錯誤3251」。有人可以幫我找出答案。請。運行時錯誤3251當前記錄集不支持更新

的信息,我正在獲取數據訪問Excel的VBA用戶形式&然後根據需要做一些更新&刪除。

Private Sub Update_Finance_return_details_Click() 

Dim rs As ADODB.Recordset 
Dim strSQL As String 
Dim myDB As String 
Dim cn As Object 

On Error GoTo ErrorHandler 

    Set cn = CreateObject("ADODB.Connection") 

    myDB = "X:\COMMERCIAL\New Automated Invioce 
    Tracker\Commercial_Invoice_Tracker.accdb" 

    cn.CursorLocation = adUseServer 

    With cn 
    .Provider = "Microsoft.ACE.OLEDB.12.0" 'For *.ACCDB Databases 
    .ConnectionString = myDB 
    .Open 
    End With 

    Set rs = New ADODB.Recordset 
    If rs.State <> adStateClosed Then rs.Close 

    strSQL = "SELECT * FROM [CT] WHERE [Invoice_ID] = " & Me.ID.Value & "" 

    rs.CursorLocation = adUseServer 
    rs.Open strSQL, cn, adOpenKeyset, adLockOptimistic 

    With rs 
    If (Me.Clarification_Rec_Date_return.Visible = True) Then 
     !Fin_Query_Dt = Me.Clarification_Rec_Date_return.Value 
    Else 
     !Fin_Query_Dt = Null 
    End If 

    !Fin_Query = Me.Clarification_Received_Finance_return.Value 

    If (Me.Clarification_Resolve_date_return.Visible = True) Then 
     !Fin_Query_Resolve_Dt = Me.Clarification_Resolve_date_return.Value 
    Else 
     !Fin_Query_Resolve_Dt = Null 
    End If 
    !Last_Updated_by = Environ("Username") 
    !Last_Updated_on = Now 

    .Update 
    .Close 
End With 

MsgBox ("Record Updated Successfully") 

CleanExit: 
    cn.Close 
    Set rs = Nothing 
    Set cn = Nothing 
    Application.ScreenUpdating = True 

    Exit Sub 
ErrorHandler: 
    MsgBox Err.Description 
    Resume CleanExit 
End Sub 
+0

任何人都可以幫助我指導我犯錯的地方 – 2015-04-02 03:21:52

回答

0

我知道這是一個古老的線程,但我較早前有同樣的問題,並認爲這是值得大家更新什麼解決對我來說。

與你自己類似的情況,一切正常,然後突然間無法寫入Access數據庫。這個問題對我來說最近發生了一次IT遷移,所有用戶只能通過NTFS訪問Access數據庫。給用戶寫入NTFS訪問解決了這個問題。

相關問題