책 내용 질문하기
기본모의고사 4회 문제2 DCount 함수 조건식 작성 [ ],"" 차이
도서
2025 시나공 컴퓨터활용능력 1급 실기 기본서 (ver.2021)
페이지
371
조회수
48
작성일
2026-07-30
작성자
김*욱
첨부파일

다른 질문 답에서 정답만 같으면 상관없다하셨는데 []로 했을 때는 되고 ""로 했을 때는 되지 않습니다.

이 차이가 왜 생기는지 알고 싶습니다

답변
2026-07-31 09:23:53

안녕하세요.

좋은 질문입니다. 이 경우는 '정답만 같으면 된다'가 적용되지 않는 예외입니다.

핵심은 []""의 역할이 완전히 다르기 때문입니다.

1. []는 "필드나 컨트롤을 참조"하는 기호입니다.

예를 들어,

[txt학번]

은 현재 폼의 txt학번 컨트롤 값을 의미합니다.

또는

[학번]

은 테이블의 학번 필드를 의미합니다.

즉, Access가 실제 값을 가져와 계산합니다.


2. ""는 "문자열"입니다.

예를 들어,

"학번=Left(txt학번,7)"

은 단순한 문자열입니다.

하지만 DLookUp의 세 번째 인수는 원래 문자열 형태의 조건식을 요구합니다.

즉,

DLookUp(필드, 테이블, 조건식)

에서 조건식은

"학번=1001"

처럼 문자열이어야 합니다.

Access는 이 문자열을 다시 해석하여 검색을 수행합니다.


왜 아래 수식은 안 될까요?

DLookUp("성명","학생",[학번]=Left([txt학번],7))

Access는 먼저

[학번]=Left([txt학번],7)

을 계산합니다.

즉,

1001 = 1001

처럼 계산하여 결과가

True

또는

False

가 됩니다.

그러면 DLookUp은

DLookUp("성명","학생", True)

를 실행하게 되는데, 세 번째 인수는 문자열이어야 하므로 올바른 조건식이 아닙니다.


반대로 이 수식은 가능한 이유

DLookUp("성명","학생","학번=Left(txt학번,7)")

세 번째 인수 전체가 문자열입니다.

DLookUp은 내부에서

학번=Left(txt학번,7)

이라는 문자열을 조건식으로 다시 해석하여 검색합니다.


그럼 언제 []""를 바꿔도 결과만 같으면 인정되나요?

예를 들어

=[가격]*0.1

=[가격]/10

처럼 같은 값을 계산하는 식은 결과만 같으면 대부분 인정됩니다.

하지만 DLookUp, DSum, DCount 같은 도메인 함수의 세 번째 인수는 '조건식 문자열'이라는 문법 자체가 정해져 있으므로, []를 사용한 일반 비교식으로는 대체할 수 없습니다.

즉, 이번 사례는 결과의 문제가 아니라 함수의 문법(인수 형식)의 문제이기 때문에 채점 프로그램뿐 아니라 Access 자체에서도 서로 같은 식으로 취급하지 않습니다.

즐거운 하루 되세요.

  • 관리자
    2026-07-31 09:23:53

    안녕하세요.

    좋은 질문입니다. 이 경우는 '정답만 같으면 된다'가 적용되지 않는 예외입니다.

    핵심은 []""의 역할이 완전히 다르기 때문입니다.

    1. []는 "필드나 컨트롤을 참조"하는 기호입니다.

    예를 들어,

    [txt학번]
    

    은 현재 폼의 txt학번 컨트롤 값을 의미합니다.

    또는

    [학번]
    

    은 테이블의 학번 필드를 의미합니다.

    즉, Access가 실제 값을 가져와 계산합니다.


    2. ""는 "문자열"입니다.

    예를 들어,

    "학번=Left(txt학번,7)"
    

    은 단순한 문자열입니다.

    하지만 DLookUp의 세 번째 인수는 원래 문자열 형태의 조건식을 요구합니다.

    즉,

    DLookUp(필드, 테이블, 조건식)
    

    에서 조건식은

    "학번=1001"
    

    처럼 문자열이어야 합니다.

    Access는 이 문자열을 다시 해석하여 검색을 수행합니다.


    왜 아래 수식은 안 될까요?

    DLookUp("성명","학생",[학번]=Left([txt학번],7))
    

    Access는 먼저

    [학번]=Left([txt학번],7)
    

    을 계산합니다.

    즉,

    1001 = 1001
    

    처럼 계산하여 결과가

    True
    

    또는

    False
    

    가 됩니다.

    그러면 DLookUp은

    DLookUp("성명","학생", True)
    

    를 실행하게 되는데, 세 번째 인수는 문자열이어야 하므로 올바른 조건식이 아닙니다.


    반대로 이 수식은 가능한 이유

    DLookUp("성명","학생","학번=Left(txt학번,7)")
    

    세 번째 인수 전체가 문자열입니다.

    DLookUp은 내부에서

    학번=Left(txt학번,7)
    

    이라는 문자열을 조건식으로 다시 해석하여 검색합니다.


    그럼 언제 []""를 바꿔도 결과만 같으면 인정되나요?

    예를 들어

    =[가격]*0.1
    

    =[가격]/10
    

    처럼 같은 값을 계산하는 식은 결과만 같으면 대부분 인정됩니다.

    하지만 DLookUp, DSum, DCount 같은 도메인 함수의 세 번째 인수는 '조건식 문자열'이라는 문법 자체가 정해져 있으므로, []를 사용한 일반 비교식으로는 대체할 수 없습니다.

    즉, 이번 사례는 결과의 문제가 아니라 함수의 문법(인수 형식)의 문제이기 때문에 채점 프로그램뿐 아니라 Access 자체에서도 서로 같은 식으로 취급하지 않습니다.

    즐거운 하루 되세요.

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