|
|
|
|
|
|
* 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.
- 액세스 버전(2007-2016):
* 아래줄에 질문을 작성하세요 >>
정상적으로 잘 되던 프로시저에서 오류가 발생했습니다. 원인은 테이블의 필드에 null 값이 만들어지게 상황이 바뀐 이후부터 입니다. 그래서 null 값이 있는 경우와 없는 경우로 나누어 데이터를 추출하려고 하는데 쉽게 풀리지 않아 도움을 요청드립니다.
테이블의 해당 필드 속성에는, 아무런 지정을 하지 않은 상태입니다. 필수는 '아니오'이고, 유효성검사규칙은 조건을 입력하지 않았습니다. 데이터형식은 '짧은 텍스트' 입니다.
이렇게 한 이유는 홈페이지에서 다운로드 받은 엑셀파일을 access 테이블로 옮겨 편집한 후 다시 엑셀파일로 내보내야 하므로, 혹시라도 엑셀파일을 테이블로 옮겨올 때 미리 지정된 속성으로 인하여 생각치 못한 오류가 만들까 염려되어 지정하지 않았습니다. 필드의 데이터 형식 속성은 모두 짧은 텍스트로 사용하고 있습니다.
오류가 발생하고 있는 코드의 내용은 주문수량이 2개 이상인 레코드를 추출하는 내용입니다. select 구문으로 테이블의 레코드를 불러들이는데, 다음은 그 동안 문제가 없었던 코드입니다.
select * 테이블명
where clng(주문수량) >= 2
order by 주문자명
그동안은 필드 '주문수량'에 null 값이 없는 상황이어서 위와 같은 구문으로 문제없이 잘 구동되었습니다. 그런데 최근 테이블에 레코드를 임의로 추가하는 경우가 발생했고, 그로인하여 '주문수량' 필드에 null 값이 만들어지게 상황이 바뀌었습니다. 그 때부터 null로 인한 오류가 발생되기 시작한 것입니다.
null 문제를 해결하기 위하여 바꾼 코드는 다음과 같습니다.
select * 테이블명
where nz(주문수량) and clng(주문수량) >=2
order by 주문자명
위와 같이 했더니 레코드 추출이 전혀 되지 않고 있습니다. and 뒤에 다양한 시도를 했지만 해법을 찾지 못하고 있습니다.
clng(주문수량) >=2
에 문제가 있는 것 같은데, 며칠 째 방법을 찾지 못하고 있습니다.
주문수량 필드에 null값이 있는 경우는 아래와 같은 여러가지 방법으로 추출이 가능했습니다.
where clng(isnull(주문수량)) = 0
where isempty(주문수량) =0
where nz(주문수량)
그런데 and로 2개 이상인 코드를 추가하면 그 때부터 레코드 추출이 되지 않습니다.
주문수량 필드가 'null이 아니면서 2보다 큰' 레코드를 추출하려면 코드를 어떻게 바꿔야 할까요? |
|
[불량 게시물 신고] |
|
|
|
작성일 : 2025-05-01(10:41)
최종수정일 : 2025-05-01(10:41) |
|
|
 |