책 내용 질문하기
엑셀과 엑세스에서 isnull
도서
[2013] 컴퓨터활용능력 1급 실기(엑셀, 액세스 2007 사용자용)
페이지
362
조회수
66
작성일
2012-12-26
작성자
첨부파일

엑세스 363p. 기본모의고사 7회 3.2번에서

private sub cmd결합검색_click()

if isnull(txt이름) then

msgbox "성을 입력하세요."

end if

end sub

엑셀 227p. 섹션18. 기본문제5.

private sub cmd등록_click()

if txt제품명="" then

msgbox "제품명을 입력하시오."

end if

end sub

에서 반대로 적용하면 왜 프로시저가 올바르게 작동되지 않는 건가요?

엑셀vb와 엑세스vb의 isnull이 다르게 작동하는 건가요?

아니면 '엑셀227p. 섹션18. 기본문제5.'의 'txt제품명'이 'lst제품목록과 연결되어 있어서 그런건가요?

ㅠㅠ

엑셀에서 isnull을 사용할 경우,

첫번째, 반응없음

private sub cmd등록_click()

if isnull(txt제품명) then

msgbox "제품명을 입력하시오."

end if

end sub

두번째, 반응없음

private sub cmd등록_click()

if isnull(txt제품명)=true then

msgbox "제품명을 입력하시오."

end if

end sub

세번째, 선택되든 안되든 msgbox실행

private sub cmd등록_click()

if isnull(txt제품명)=false then

msgbox "제품명을 입력하시오."

end if

end sub

답변
2012-12-27 11:00:19

안녕하세요.

엑셀이든 액세스이든 txt이름 컨트롤을 참조한다면 해당 컨트롤의 Text를 참조하는 것은 같습니다. 그런데 액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다. 그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다. 그러나 엑셀은 바운드의 개념이 없으므로 txt이름을 참조해도 Text를 참조하게 됩니다. Text의 초기값은 0길이 문자열("")이므로 txt제품명 = ""으로 검사하는게 맞습니다.

즐거운 하루 되세요.

"
  • *
    2012-12-27 11:00:19

    안녕하세요.

    엑셀이든 액세스이든 txt이름 컨트롤을 참조한다면 해당 컨트롤의 Text를 참조하는 것은 같습니다. 그런데 액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다. 그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다. 그러나 엑셀은 바운드의 개념이 없으므로 txt이름을 참조해도 Text를 참조하게 됩니다. Text의 초기값은 0길이 문자열("")이므로 txt제품명 = ""으로 검사하는게 맞습니다.

    즐거운 하루 되세요.

    "
· 5MB 이하의 zip, 문서, 이미지 파일만 가능합니다.
· 폭언, 욕설, 비방 등은 관리자에 의해 경고없이 삭제됩니다.