책 내용 질문하기
명령어 차이
도서
2016 시나공 컴퓨터활용능력 1급 실기
페이지
370
조회수
117
작성일
2016-01-01
작성자
첨부파일

액세스 기본모의고사 7회에서요..

문제3의 2번에서 txt이름, cmb부서명 등 값이 입력되지 않으면 메시지박스가 나오게하는 명령어를 입력해야 하는 부분에서 앞에 모의고사를 푸는 동안에 나왔던 명령어와 마찬가지로 입력을 했는데 틀리게 나왔고 메시지 박스가 실행도 안되서 답지를 보니 그전과는ㄷ ㅏ른 명령어를 사용하더라구요..

그 문제에서 제가 쓴 답은..

Private Sub cmd결합검색_Click()
If txt이름 = "" Then
MsgBox "성을 입력하세요."
ElseIf cmb부서명 = "" Then
MsgBox "부서명을 선택하세요."
ElseIf cmb직위 = "" Then
MsgBox "직위를 선택하세요."
Else
lst사원정보.RowSource = "select * from 사원관리 where left(이름, 1)='" & txt이름 & "' and 부서명='" & cmb부서명 & "' and 직위='" & cmb직위 & "'"
End If
End Sub

이거였는데..

답지에서는 isnull(txt이름) then msgbox어쩌구 저쩌구 이런식으로 나오는데..

이 둘의 차이가 뭐죠?? 그 동안 앞에서는 입력되지 않았으면 위에 제가 쓴답처럼 해서 맞게나왔었는데..

이 둘을 어떻게 구분해야하는거죠..ㅠㅠ

답변
2016-01-04 13:26:42

액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.

그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.

엑셀에서는 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.

lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.

어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.

좋은 하루 되세요.

  • *
    2016-01-04 13:26:42

    액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.

    그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.

    엑셀에서는 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.

    lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.

    어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.

    좋은 하루 되세요.

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