C:\2014_컴활1급_실기\14년3회1급E형\1급 E형 정답.xlsm
2014년 3회 엑셀
질문은 맨 아래에 있습니다.
문제 4쪽, 풀이 10쪽
문제4 분석작업
2. 기타작업-2 시트, 폼울 통하여 데이터 시트에 자료 입력 프로시저
lst분야를 선택하지 않은 경우, "분야를 선택하세요."를 메세지 박스로 나타내기!
정답(p. 10)
Private Sub cmd등록_Click()
입력행 = [a5].Row + [a5].CurrentRegion.Rows.Count
참조행 = lst분야.ListIndex
If IsNull(lst분야.Value) Then
MsgBox "분야를 선택하세요."
lst분야.ListIndex = 0
Else
Cells(입력행, 1) = lst분야.List(참조행, 0)
Cells(입력행, 2) = txt도서명
Cells(입력행, 3) = txt저자
Cells(입력행, 4) = Format(txt판매가, "#,###")
End If
End Sub
--------------------------------------------
질문> 위 정답에서 'If IsNull(lst분야.Value) Then' 대신에 'If lst분야="" Then'으로 대치했을 경우,
분야(lst분야)를 선택하지않고 등록버튼을 클릭하면 아래와 같이 에러가 납니다.
왜 에러가 나는지 궁금합니다.

감사합니다.
If IsNull(lst분야.value) Then는 lst과목 컨트롤에 선택된 값이 있는지 없는지를 비교하는 것입니다.
isnull 은 컨트롤에 선택된 값이 없는지 확인 하는 것입니다.
액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.
그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.
엑셀에서 텍스트박스 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.
lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.
어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.
좋은 하루 되세요.
-
*2016-05-16 15:02:49
If IsNull(lst분야.value) Then는 lst과목 컨트롤에 선택된 값이 있는지 없는지를 비교하는 것입니다.
isnull 은 컨트롤에 선택된 값이 없는지 확인 하는 것입니다.
액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.
그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.
엑셀에서 텍스트박스 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.
lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.
어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.
좋은 하루 되세요.