2016-07-14 53 views
0

我有這種形式,它具有包含表格記錄的子表單。 我想要的是當用戶點擊複選框消息時會彈出「你想批准應用程序嗎?」那麼當用戶點擊確定後,複選框和其他已編輯記錄的值將保存在表格中。 但我遇到用戶編輯記錄時它會自動更新表。如何在編輯數據記錄時停止自動保存

這裏是我的form樣本: 這裏是我的代碼:

Private Sub chkApproved_Click() 
Dim strSQL As String 
Dim rs As DAO.Recordset 
DoCmd.SetWarnings False 

strSQL = "SELECT * FROM RECORD WHERE ID = '" & Me.txtID & "' AND DATE = #" & Me.txtDate & "# " 
Set rs = CurrentDb.OpenRecordset(strSQL, dbOpenDynaset) 

If Me.chkApproved = -1 Then 
If MsgBox("Do you want to approve application?", vbOKCancel, "Leave Approval") = vbOK Then 

    If Not rs.EOF Then 
     rs.Edit 
     rs.Fields("APPROVED_FLG") = Me.chkApproved.Value 
     rs.Fields("LEAVE_FLG") = Me.chkLeave.Value 
     rs.Fields("REMARKS") = Me.REMARKS 
     rs.Update 
    End If 
    rs.Requery 
Else 
    Me.chkApproved = 0 
End If 
Else 
Exit Sub 
End If 

rs.Close 
Set rs = Nothing 

DoCmd.SetWarnings True 

End Sub 

同時,我要禁用休假複選框時批准的複選框已被選取。我試圖將其添加到我的代碼中,但最終會禁用所有複選框。

我只是新手,所以我不知道那麼多,請幫助我。

回答

0

Access會將您的更改立即保存爲默認行爲,因爲它直接編輯數據庫。我看到您已經設置了「是/否」消息框。如果用戶拒絕更改,請嘗試運行Undo and Cancel

要以連續形式禁用單個未綁定對象,請嘗試this link

+0

我試過這個代碼,但它最終禁用了paid_leave下的所有複選框。只有批准的flg被檢查的行,該行上的paid_leave複選框應該被禁用。謝謝你的建議。 – geekypanda

+0

@geekypanda您是否在使用具有多個複選框和一個paid_leave複選框的表單,或者具有多個paid_leave複選框的連續表單,每個記錄一個?如果表單上有一個paid_leave複選框,我的答案中的代碼將會起作用。 – jjjjjjjjjjj

+0

即時使用連續的形式與多個paid_leave複選框,每個記錄一個。 – geekypanda

相關問題