추가쿼리를 실행하면 이미지처럼 microsoft office access에서 추가쿼리에 레코드를 모두 추가할 수 없습니다.
microsoft office access 에서 형식 변환 오류 때문에 0필드를 null로 설정하고 키 위반 때문에 1레코드를 잠금 위반 때문에 0레코드를 유효성 검사 규칙 위반 때문에 0레코드를 추가하지 않았습니다.
실행쿼리를 실행하시겠습니까? 라는 오류가 뜨는데요..
해당 테이블에 기본키로 설정되어 있는 필드도 없고 인덱스가 중복 불가능으로 설정된 필드도 없는데
이런 오류가 뜨는 이유를 정말 모르겠네요
그냥 오류가 떠도 정답으로 인정된다는 답변 말고 이런 오류가 뜨는 이유를 상세하게 설명 부탁 드립니다.
그리고 또 한가지 질문은
특정 컨트롤에 비워있는 경우라는 조건에서
어떤 경우에는 if txt컨트롤명="" then 이라고 쓰고
어떤 경우는 if isnull(컨트롤명) then 이라고 쓰는데
"" 과 isnull 의 차이에 대해서도 정확한 설명 부탁드립니다.
질문 주신 오류는 각 필드간의 필드형식이 같지 않기 때문에 나타나는 오류이므로
필드 설정 하실때 빠트린 부분이 없는지 쿼리를 만들때 형식을 잘못 사용한 것은 아닌지 확인 해 보셔야 합니다.
그림만 가지고는 확인이 불가능 하므로 정확한 답변은 어렵습니다.
액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.
그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.
엑셀에서는 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.
lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.
어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.
좋은 하루 되세요.
-
*2015-02-24 01:18:53
질문 주신 오류는 각 필드간의 필드형식이 같지 않기 때문에 나타나는 오류이므로
필드 설정 하실때 빠트린 부분이 없는지 쿼리를 만들때 형식을 잘못 사용한 것은 아닌지 확인 해 보셔야 합니다.
그림만 가지고는 확인이 불가능 하므로 정확한 답변은 어렵습니다.
"액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.
그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.
엑셀에서는 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.
lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.
어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.
좋은 하루 되세요.