2016-07-14 2 views
0

Ich habe dieses Formular, das ein Unterformular mit Datensätzen aus der Tabelle enthält. Ich will ist, wenn der Benutzer auf das Kontrollkästchen klickte, wird die Meldung "Möchten Sie die Anwendung genehmigen?" Wenn der Benutzer dann auf OK klickt, wird der Wert des Kontrollkästchens und anderer bearbeiteter Datensätze in der Tabelle gespeichert. aber ich begegne, wenn Benutzer einen Datensatz bearbeiten, aktualisiert er automatisch die Tabelle.So stoppen Sie den automatischen Speichervorgang, wenn Datensatz für Daten bearbeitet wird

hier Probe meines form: hier ist mein Code:

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 

Und ich mag auch das Verlassen Checkbox deaktivieren, wenn die zugelassenen Kontrollkästchen bereits aktiviert ist. Ich habe versucht, es in meinem Code hinzuzufügen, aber endet immer deaktivieren alle Kontrollkästchen.

Ich bin nur neu, also weiß ich nicht so viel. Bitte hilf mir.

Antwort

0

Access speichert Ihre Änderungen sofort als Standardverhalten, da die Datenbank direkt bearbeitet wird. Ich sehe, dass Sie bereits das Ja/Nein-Meldungsfeld eingerichtet haben. Versuchen Sie Undo and Cancel auszuführen, wenn der Benutzer die Änderung ablehnt.

Um ein einzelnes ungebundenes Objekt in einem fortlaufenden Formular zu deaktivieren, versuchen Sie this link.

+0

Ich habe diesen Code ausprobiert, aber es endet mit der Deaktivierung aller Kontrollkästchen unter paid_leave. Nur die Zeile, für die das genehmigte Flag aktiviert ist, sollte das Kontrollkästchen paid_leave in dieser Zeile deaktiviert sein. danke für deinen Rat. – geekypanda

+0

@geekypanda Verwenden Sie ein Formular mit mehreren Ankreuzfeldern und einem Kästchen paid_leave oder ein fortlaufendes Formular mit mehreren Kästchen paid_leave, eines pro Datensatz? Der Code in meiner Antwort funktioniert, wenn im Formular ein Kontrollkästchen paid_leave vorhanden ist. – jjjjjjjjjjj

+0

Im Verwendung von Endlosformular mit mehreren Bezahlschranken Kontrollkästchen, eins pro Datensatz. – geekypanda

Verwandte Themen