MS Access 데이터베이스 및 양식에 대한 업데이트 작업이 수행되었습니다. 각 양식이 쿼리에 연결되어있는 것 같습니다. 양식의 텍스트 상자에 데이터를 입력 한 다음 레코드 저장 단추를 누르지 않고 양식을 닫으면 새로운 레코드가 여전히 데이터베이스에 추가되어 의미가 없습니다.MS Access - 양식에 입력 된 데이터
모든 통찰력은 좋지만 필자는 프로그래머이지만 액세스 양식 및 데이터베이스 작업 경험이 거의 없습니다.
감사합니다.
MS Access 데이터베이스 및 양식에 대한 업데이트 작업이 수행되었습니다. 각 양식이 쿼리에 연결되어있는 것 같습니다. 양식의 텍스트 상자에 데이터를 입력 한 다음 레코드 저장 단추를 누르지 않고 양식을 닫으면 새로운 레코드가 여전히 데이터베이스에 추가되어 의미가 없습니다.MS Access - 양식에 입력 된 데이터
모든 통찰력은 좋지만 필자는 프로그래머이지만 액세스 양식 및 데이터베이스 작업 경험이 거의 없습니다.
감사합니다.
Microsoft Access는 기본적으로 양식을 데이터에 바인딩하고 레코드간에 이동하거나 작업중인 양식을 닫으면 자동으로 데이터를 저장합니다. 평범한 사용자의 경우 실제로 실수로 데이터를 잃어 버리기 쉽습니다. 실수로 편집 한 후에 양식을 닫은 경우에도 마찬가지입니다.
이 기능을 원하지 않는 경우 폼에서 바인딩을 제거하는, 즉 레코드 원본 속성을 비워 둔 다음 언 바운드 컨트롤을 사용하여 코드의 모든 데이터를 조작하는 것이 좋습니다. 더 까다 롭지 만 더 많은 통제력을 제공합니다.
다른 옵션은 양식의 BeforeUpdate 이벤트를 사용하여 변경 사항을 저장하기 전에 변경 사항을 저장할지 묻는 것입니다.
실수로 새 레코드를 추가하는 경우 추가 허용 속성을 false로 설정하고 프로그래밍 방식으로 새 레코드를 만듭니다.
BeforeUpdate 이벤트 프로 시저 (같은 코드가 BeforeInsert 이벤트를 작동합니다)의 샘플 :
Private Sub Form_BeforeUpdate(Cancel As Integer)
Dim intAns As Integer
intAns = MsgBox("Are you sure you want to save this record?", vbQuestion + vbYesNo, "Save Record")
If intAns = vbNo Then Cancel = 1
End Sub
위의 방법을 사용했다, 사용자가 "아니오"를 클릭 한 경우, 그들이 가지고있는 것 를 누른 다음 ESC 키를 눌러 입력 한 변경 사항을 취소하십시오. 그렇지 않으면 레코드를 벗어날 때 계속 대화를 표시합니다.
대단히 감사합니다. 정확히 알아 내려고 노력했습니다. 언급 한 BeforeUpdate 메서드를 사용할 수도 있습니다. 다시 한 번 감사드립니다! – JasonR
BeforeUpdate 플래그를 사용하면 해당 이벤트를 사용하여 DB에 새 데이터를 추가하는 가장 좋은 방법은 무엇입니까? – JasonR
도움이 될만한 BeforeUpdate 이벤트 프로 시저 샘플을 추가했습니다. BeforeInsert 이벤트 프로 시저에 대해 동일한 코드를 사용할 수 있습니다.이 프로 시저에서는 새 레코드를 추가하기 전에 사용자에게 묻습니다. 두 경우 모두 사용자가 "아니요"를 선택하면 ESC 키를 사용하여 변경 사항을 취소 할 때까지 레코드에서 벗어날 수 없습니다. 새 레코드를 추가 할 때 고려해야 할 다른 사항은 일시적으로 명령 단추를 사용하여 폼의 DataEntry 속성을 true로 변경하는 것입니다. 그것을 올바르게하는 것은 조금 더 복잡합니다. – Billious