| |
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
1. 액세스 버전(95,97,2000,2002):
2. 윈도우즈의 버전(win95,win98,winME,winNT,win2000,winXP):
3. CPU (486,PentiumI/II/III/IV...):
4. RAM (32,64,128,256,512MB,1G...):
* 아래줄에 질문을 작성하세요 >>
제가 문의드린 내용은 폼에서 메일주소를 변경하거나, 비어있는 메일주소를 새로 채워 넣을때 오류가 나는 부분에 대한 것이었는데요.
폼에서 새로운 자료를 입력할 때는 당연히 아무 문제가 없습니다.
그래서 그런데 혹시 오피스 버전이 2003 버전이신지?
저는 2002 버전을 사용하고 있는데, 다른 사람의 컴퓨터에서 테스트해보아도 오류가 나는 현상은 마찬가지이더군요.
오류메시지를 같이 첨부합니다.
고맙습니다.
==============[포와로경님 글에 대한 답변입니다]==============
골든님 말씀처럼 버젼에 상관 없이 말 그대로 쓰기 충돌입니다.
다만 여러사람이 사용할 때 일어나는 쓰기 충돌이 아니라..
혼자서도 일어날 수 있는 경우이지요..
이런 것은 프로젝트에서만이 아니라 mdb의 경우에서도 똑같이 발생합니다..
그렇다면 왜??
현재.. 폼으로 test 테이블의 한 레코드를 불러 왔습니다..
그리고 수정을 가합니다.. 설정에 따라 잠금 상태가 될 수도 있고 허용 상태가 될 수도 있고.. 또한 설정에 따라 트랜잭션 중에 있는 것일 수 도 있습니다. 아무튼 현재 폼에서 그 레코드를 사용하고 있는 중입니다.(입력중이니까)
그 상황에서 마지막으로 데이터를 실제로 갱신하는 순간에!! 코드를 통해 Update를 날리면...
폼과 상관없이 레코드가 갱신 됩니다... 게다가 이 Update구문이 먼저 완료됩니다.
당연히 충돌날 수 밖에 없겠지요?
그러니.. 코드로 처리한다면..
현재 폼의 바운드 된 레코드셋 필드에 값을 넣어 주거나 폼의 입력란에 값을 넣어 주어야 합니다.
또는 SQL 서버를 사용하시니..
보통 이런것은 트리거를 많이 사용합니다. 만들어 두면 신경쓰지 않아도 되서 편리합니다. 하지만 무분별한 트리거 남발은 서버의 성능을 떨어뜨릴 수 있으니 지금처럼 폼에서 사용하는 것이 더 효율적일 수 있습니다.
샘플로.. 트리거는 만들어 두었으니 적용될 겁니다. 확인해 보십시요.
폼의 코드를 모두 지우고 데이터를 입력하거나 업데이트 해 보십시요..
아.. 포와로경님의 요청대로 Email 필드의 변경(추가)시만 아이디가 입력되도록 했습니다. 약간의 주석과 함께.. |
|