나는 나와 같은 초보자를위한 매우 간단한 질문이라고 생각한 것에 대한 대답을 찾고 서핑을하고 있습니다. ! 일을 간단하게하기 위해 두 개의 코드를 첨부하여 두통을 줄 것입니다. 내가하려는 것은 버튼을 클릭하여 읽기 전용 모드에서 쓰기 허용 상태로 전환하는 것입니다. 그렇게하기 위해서, 나는 루틴이 레코드의 변경을 확인하고, 변경 사항을 저장할지 아니면 버릴지를 결정할 것을 사용자에게 묻는 것이 필요하다.이 특정 버튼을 테스트하는 동안, 나는 " 재미있다 ".. 변경 사항이 도입되지 않으면 잘 작동하는 것처럼 보입니다. 읽기 전용 상태에서 쓰기 허용 상태로 완벽하게 전환합니다. 그러나 쓰기 허용 및 변경시 "저장 옵션"이 선택/클릭 된 경우 다른 모든 서브 루틴 및 변경 사항이 구현 되더라도 내용이 잠기지 않습니다.읽기 전용 및 실행 취소 속성 MS 액세스 (VBA)
다른 문제는이 문제와 밀접한 관련이 있습니다. 실행 취소 옵션에 "저장 지점"을 설정하는 방법을 찾을 수 없다는 것입니다. "레코드를 저장하는"방법을 찾고 싶습니다. 언두 버튼을 눌렀을 때 데이터베이스가 처음 열렸으므로 레코드가 겪은 모든 변경 사항을 취소하지 않습니다 (현재 진행중).하지만 버튼이 눌렀다. DoCmd Save 기능을 시도했지만 예상대로 작동하지 않습니다. (참고 : 마지막 'else'는이 마지막 문제 였지만 예상대로 작동하지 않습니다.)
앞으로도 협업,
알렉스
Private Sub Command28_Click()
If Form_AODNewRecord.AllowAdditions = True Then
Call isModified_Save
Form_AODNewRecord.AllowAdditions = False
Form_AODNewRecord.AllowEdits = False
Form_AODNewRecord.AllowDeletions = False
MsgBox "Read Only. Addition, Edits and Deletions are now locked"
Command28.Caption = "LOCKED"
Else
Form_AODNewRecord.AllowAdditions = True
Form_AODNewRecord.AllowEdits = True
Form_AODNewRecord.AllowDeletions = True
MsgBox "New records, edits and deletions are now allowed"
Command28.Caption = "Lock mode OFF"
End If
MsgBox Form_AODNewRecord.AllowAdditions
End Sub
Sub isModified_Save()
If Form_AODNewRecord.Dirty Then
Dim strMsg As String, strTitle As String
strMsg = "You have edited this record. Do you want to save the changes?"
strTitle = "Save Record?"
If MsgBox(strMsg, vbQuestion + vbYesNo, strTitle) = vbNo Then
Me.Undo
Else
DoCmd.OpenTable "AOD Type", acViewPreview, acReadOnly
DoCmd.Save acTable, "AOD Type"
DoCmd.Close acTable, "AOD Type", acSaveYes
End If
End If
End Sub
많은 감사의 말씀을드립니다. 적절한 피드백을 제공합니다.) – user1872905