실전모의고사 B형 443p 문제 4의 2번 문제인데 제가 답을
Private Sub cmd등록_Click()
If IsNull(cmb제품명.Value) Then
MsgBox "제품명을 선택하세요.", , "제품명"
ElseIf txt수량 = "" Then
MsgBox "수량을 입력하세요.", , "수량"
Else
입력행 = [a4].Row + [a4].CurrentRegion.Rows.Count
참조행 = cmb제품명.ListIndex + 5
Cells(입력행, 1) = Cells(참조행, 7)
Cells(입력행, 2) = txt수량
Cells(입력행, 3) = Cells(참조행, 8)
Cells(입력행, 4) = Cells(참조행, 9)
Cells(입력행, 5) = txt수량 * Cells(참조행, 8)
End If
End Sub
이렇게 쓰니까 틀렸다고 나오네요
위에 굵게 한 파랑부분이 틀린 것 같던데 여기서 IsNull을 쓰면 왜 안되는가요?
액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.
그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.
엑셀에서는 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.
lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.
어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.
좋은 하루 되세요.
-
*2014-11-24 11:51:34
액세스는 txt이름을 참조했을 때는 단순한 컨트롤이 아니라 바운드된 필드를 찾게 됩니다.
그래서 필드의 초기값은 Null이므로 값을 입력하지 않은 것은 IsNull로 검사하는게 맞습니다.
엑셀에서는 컨트롤에 등록된 내용을 바로 확인 하기 때문에 cmb제품명 = "" 와 같이 사용하는 것입니다.
lst 박스부분에서는 바운드된 값을 이용하기때문에 isnull을 사용하는 경우가 많구요.
"어떻게 작성하시든 코드가 정상실행되어 정확한 결과가 나온다면 상관 없습니다.
좋은 하루 되세요.