2013-12-09 127 views
0

我需要在VB中更新簡單的查詢,我可以更新表中最後一條記錄中的某些字段。在Access 2010中更新記錄集

enter image description here

我有這樣的形式與一組組合框的,當我按下Edit按鈕,我應該能夠從組合框選擇不同的值,當我按下Save,應該更新的最後一條記錄我的桌子上有我的組合框中的最新選擇。請指教。

我有下面的代碼,但它只是垃圾,它不會編輯我的表中的任何東西。

Private Sub Command51_Click() 
Dim RS As DAO.Recordset 
Dim RecID As Integer 
Set RS = CurrentDb.OpenRecordset("Data", dbOpenDynaset) 
RecID = DLast("[ID]") 
RS.MoveFirst 
Do Until RS.EOF 
If RS("ID") = RecID Then 
    RS.Edit 
    RS("WLAN") = Me.Text34 
    RS("Controller Version") = Me.Text38 
    RS("AP Model") = Me.Text36 
    RS("Security") = Me.Text39 
    RS("Wired Network") = Me.Text37 
    RS("Installation Type") = Me.Text40 
    RS("Quoted Device") = Me.Text41 
    RS.Update 
    RS.Close 

    End With 

    MsgBox "Device info were edited and stored.", vbExclamation 

末次

而這裏的表結構[編輯]

enter image description here

+0

'我有這種形式'< - 哪種形式?請包含截圖? StackOverflow允許從剪貼板複製/粘貼。 – Neolisk

+0

對不起。請查看下面的圖片http://imageshack.com/a/img33/192/qjk6.jpg –

+0

好。還請包括您的代碼和表格結構。 – Neolisk

回答

0

基於你告訴我們什麼,我會改變默認值的當前值Form_Current事件上窗體上的每個控件。此外,在窗體設計模式中,將所有控件設置爲鎖定。當用戶點擊編輯按鈕時,我只是移動到一個新的記錄。當然,除非您鎖定所有控件,否則用戶將能夠編輯當前記錄。請注意,我沒有測試過這個代碼。

Private Sub Form_Current() 
    On Error Resume Next 'not all controls have the "DefaultValue" property, such as labels' 
    Dim ctl as Control 
    For Each ctl in Me.Controls 
     ctl.Locked = Not Me.NewRecord 
     ctl.DefaultValue = ctl.Value 
    Next ctl 
End Sub 

Private Sub cmdEdit_Click() 
    Access.Application.DoCmd.RunCommand acCmdRecordsGoToNew 
End Sub 

Private Sub cmdSave_Click() 
    Me.Dirty = False 
End Sub 
+0

不幸的是,它沒有奏效。你能否給我正確的更新查詢語法,因爲我試過這麼多,每個都返回一個錯誤。只是一個簡單的更新,編輯最後一個記錄集。謝謝。 –

+0

它工作。我用下面的代碼:Dim RS作爲DAO.Recordset 集RS = CurrentDb.OpenRecordset( 「數據」,dbOpenDynaset) RS.MoveLast RS.Edit RS( 「WLAN」)= Me.Text34 RS(「控制器RS(「安裝類型」)= Me.Text38 RS(「AP Model」)= Me.Text36 RS(「安全」)= = Me.Text40 RS(「Quoted Device」)= Me.Text41 RS.Update Set RS = Nothing 謝謝Bobort抽出時間幫忙。我很感激。 –