컴활 실기 액세스 함수 자주 틀리는 유형 5가지 정리

컴활 1급 실기 액세스, 당신도 함수 앞에서 좌절하고 있다면? 자주 틀리는 유형 5가지를 마스터하고 단번에 합격하세요! 컴퓨터활용능력 1급 실기 시험, 특히 액세스 과목은 많은 수험생들에게 좌절감을 안겨주는 난코스입니다.

엑셀에서 함수 좀 다뤄봤다고 자신만만하게 덤볐다가 액세스 특유의 논리와 문법 앞에서 무너지는 경우가 허다하죠. 저 역시 처음에는 데이터베이스의 개념조차 생소했고, 특히 함수 문제에서 번번이 감점당하며 '이 길이 내 길이 맞는가' 하는 회의감에 시달렸습니다.

컴활 실기 시험 보는 모습


하지만 포기하지 않고 수많은 기출문제를 풀어보고 오답 노트를 정리하면서, 결국 합격의 문을 열 수 있었어요. 그 과정에서 얻은 가장 큰 교훈은 바로 '자주 틀리는 유형'을 정확히 파악하고 집중적으로 공략하는 것이었습니다.

특히 액세스 함수는 몇 가지 핵심적인 함정이 있는데, 이것만 제대로 이해하면 액세스 함수는 더 이상 당신의 발목을 잡지 않을 겁니다.

지금부터 컴활 1급 실기 액세스 함수에서 수험생들이 가장 많이 틀리는 유형 5가지를 저의 경험과 함께 상세히 분석해 드릴 테니, 이 글을 통해 여러분의 합격까지의 여정이 조금 더 순탄해지기를 바랍니다.

 

💡 컴활 액세스 함수, 이제는 완벽하게!



목차

도메인 집계 함수 (D함수 계열)의 복잡한 조건식

액세스 D 함수 마스터하기

DLookup, DSum, DAvg... 이들은 테이블이나 쿼리의 특정 조건에 맞는 필드 값을 가져오거나 집계할 때 사용됩니다.

조건식 오류

문자열, 숫자, 날짜 형식의 따옴표 사용에 주의하세요.

도메인/필드 이름

정확한 필드 이름과 테이블/쿼리 이름을 지정해야 합니다.

Null 값 처리

조건에 맞는 데이터가 없을 때 발생하는 Null 값을 고려해야 합니다.

컴활 실기 액세스에서 **DLookup**, **DSum**, **DAvg**와 같은 도메인 집계 함수는 특정 조건을 만족하는 데이터를 가져오거나 합산할 때 매우 유용하게 사용됩니다. 하지만 이 함수들의 가장 큰 난관은 바로 '조건식'을 정확하게 작성하는 것에 있습니다.

엑셀의 VLOOKUP처럼 단순하게 값을 찾는 것이 아니라, 데이터베이스 내에서 복잡한 조건을 걸어 원하는 값을 추출해야 하기 때문이죠. 가장 흔한 실수는 조건식 내에서 문자열, 숫자, 날짜 데이터를 다루는 방식입니다.

예를 들어, 문자열은 작은따옴표(' ')로 묶어야 하고, 날짜는 #으로 묶어야 하며, 숫자는 그대로 사용해야 합니다. 필드 값이 문자인 경우, 조건식 내에서 작은따옴표를 잊거나, 필드 값이 숫자인데 따옴표를 넣는 등의 실수가 빈번하게 발생합니다.
함수 유형 실수 유형 올바른 예시
DLookup 문자열 조건에 따옴표 누락 DLookup("가격", "상품", "분류 = '전자제품'")
DSum 날짜 조건에 # 누락 DSum("수량", "판매", "판매일 = #2023-10-26#")
DAvg 숫자 조건에 따옴표 사용 DAvg("점수", "학생", "학년 = 3")

게다가 필드명이나 도메인(테이블/쿼리 이름)을 정확히 입력하지 않아서 발생하는 오류도 많습니다. 대소문자를 구분하지는 않지만, 오타 하나로도 함수가 제대로 작동하지 않으므로 꼼꼼한 확인이 필요합니다.

이러한 **D함수**들은 쿼리 작성 시 다른 테이블의 데이터를 참조하거나 보고서에서 특정 값을 표시할 때 빈번하게 출제되므로, 조건식 작성법을 확실히 숙지해야 합니다.

조건에 따른 값 반환 (IIF 함수)의 데이터 형식 불일치

IIF 함수 핵심!
조건식

논리적으로 참/거짓을 명확히 판별해야 합니다.

참일 때 값

조건이 참일 때 반환될 값을 정의합니다.

거짓일 때 값

조건이 거짓일 때 반환될 값을 정의합니다.

주의! 참일 때와 거짓일 때 반환되는 값의 데이터 형식을 일치시켜야 합니다.

엑셀의 IF 함수와 비슷한 역할을 하는 **IIF 함수**는 조건에 따라 다른 값을 반환할 때 사용됩니다. "조건, 참일 때 값, 거짓일 때 값"의 세 인자를 가지며, 언뜻 보기에는 간단해 보이지만 데이터 형식 불일치로 인해 예상치 못한 오류를 일으키곤 합니다.

특히 컴활 실기에서는 다양한 데이터 형식의 필드를 다루기 때문에 더욱 주의가 필요합니다. 가장 흔한 오류는 '참일 때 값'과 '거짓일 때 값'의 데이터 형식이 다를 때 발생합니다.

예를 들어, 조건이 참일 때는 "우수"라는 문자열을 반환하고 거짓일 때는 0이라는 숫자를 반환하도록 IIF 함수를 작성하면 오류가 발생합니다. 액세스는 하나의 필드에 두 가지 다른 데이터 형식을 저장할 수 없기 때문입니다.
실수 유형 예시 (잘못된) 올바른 수정 예시
문자열/숫자 혼용 IIF([점수] >= 80, "합격", 0) IIF([점수] >= 80, "합격", "불합격") 또는 IIF([점수] >= 80, 1, 0)
Null 값 처리 미숙 IIF(IsNull([배송일]), "미배송", [배송일]) - 날짜 vs 문자열 IIF(IsNull([배송일]), Null, [배송일]) 또는 IIF(IsNull([배송일]), "미배송", Format([배송일], "yyyy-mm-dd"))

따라서 IIF 함수를 사용할 때는 항상 반환될 값들의 데이터 형식을 일치시켜야 합니다. 문자열이면 모두 문자열로, 숫자면 모두 숫자로 통일하는 것이 중요합니다.

경우에 따라서는 Null 값을 반환해야 할 때도 있는데, 이때는 "Null"이라는 문자열이 아니라, 시스템의 Null 키워드를 사용해야 올바르게 처리됩니다.

이러한 **IIF 함수**의 데이터 형식 일치 규칙은 컴활 액세스 실기에서 빈번히 출제되므로, 반드시 기억해야 할 핵심 포인트입니다.

날짜/시간 계산 함수 (DateDiff, DateAdd)의 인자 오류

날짜/시간 함수 완벽 가이드

DateDiff

두 날짜/시간 간의 차이 계산

  • 인터벌: "yyyy", "q", "m", "d", "h", "n", "s"
  • 시작/종료 날짜: 필드명 또는 #날짜#
  • 주의: 순서 반전 시 음수 값

DateAdd

날짜/시간에 특정 기간 추가

  • 인터벌: "yyyy", "q", "m", "d", "h", "n", "s"
  • 간격: 추가할 숫자 (양수/음수)
  • 기준 날짜: 필드명 또는 #날짜#

날짜/시간 함수는 인터벌(단위) 지정이 가장 중요하며, 정확한 인자 전달이 핵심입니다.

컴활 실기 액세스에서는 특정 기간을 계산하거나 날짜에 특정 값을 더하는 문제가 자주 출제됩니다. 이때 사용되는 대표적인 함수가 바로 **DateDiff**와 **DateAdd** 함수입니다.

이 함수들은 날짜 계산의 편리함을 제공하지만, 인자를 잘못 지정하여 오답을 유발하는 경우가 많습니다. 가장 치명적인 실수는 바로 '인터벌(interval)'을 잘못 지정하는 것입니다.

예를 들어, 년 단위 차이를 구할 때는 "yyyy", 월 단위는 "m", 일 단위는 "d"와 같이 정확한 문자열 코드를 사용해야 합니다. 간혹 엑셀의 DATEDIF 함수와 헷갈려 인자 순서를 잘못 넣거나, 인터벌을 생략하여 오류가 발생하는 경우도 있습니다.
함수 실수 유형 올바른 예시
DateDiff 인터벌("월")을 "m" 대신 "mm"으로 사용 DateDiff("m", [시작일], [종료일])
DateAdd 날짜를 묶는 # 누락 또는 숫자 간격 오류 DateAdd("d", 7, #2023-01-01#)
DateDiff 시작일과 종료일 순서 반전 DateDiff("yyyy", [생년월일], Date()) - 나이 계산 시

DateAdd 함수에서는 추가할 '간격'이 양수인지 음수인지에 따라 미래 날짜 또는 과거 날짜를 계산할 수 있습니다. 예를 들어, 7일 전을 계산하고 싶다면 -7을 간격으로 지정해야 합니다.

또한, 날짜 리터럴을 직접 입력할 때는 D 함수에서와 마찬가지로 #으로 묶어주어야 합니다. 이처럼 **날짜/시간 함수**의 각 인자가 요구하는 데이터 형식과 의미를 정확히 이해하고 사용해야 오답을 피할 수 있습니다.

문자열 처리 함수 (Left, Right, Mid, InStr)의 위치 및 길이 지정

문자열 함수 핵심 정리

Left(텍스트, 개수)

왼쪽부터 지정한 개수만큼 반환

예: Left("ABCDE", 2) → "AB"

Right(텍스트, 개수)

오른쪽부터 지정한 개수만큼 반환

예: Right("ABCDE", 2) → "DE"

Mid(텍스트, 시작위치, 개수)

시작 위치부터 지정한 개수만큼 반환

예: Mid("ABCDE", 2, 3) → "BCD"

InStr(시작위치, 텍스트1, 텍스트2)

텍스트2가 텍스트1에 처음 나타나는 위치 반환

예: InStr(1, "ABCDE", "CD") → 3

시작 위치는 1부터 시작한다는 점을 항상 기억해야 합니다.

코드나 이름에서 특정 부분을 추출해야 하는 문제는 컴활 실기 액세스에서 단골로 출제됩니다. 이때 **Left, Right, Mid, InStr**와 같은 문자열 처리 함수가 사용되는데, 이들의 인자 중 '위치'와 '길이'를 정확히 지정하는 것이 중요합니다.

엑셀과 달리 Access는 함수 인자의 순서와 의미에 더욱 민감하게 반응합니다. 가장 흔한 실수는 **Mid 함수**에서 '시작 위치'를 잘못 지정하는 것입니다. Access의 문자열 함수는 엑셀과 마찬가지로 첫 글자의 위치를 1로 간주합니다.

하지만 종종 프로그래밍 언어의 0-기반 인덱싱에 익숙한 경우 0부터 시작한다고 착각하여 엉뚱한 값을 반환하는 오류를 범할 수 있습니다. 또한, Mid 함수의 마지막 인자인 '개수'를 생략하거나 너무 길게 지정하여 원치 않는 결과가 나오는 경우도 있습니다.
함수 실수 유형 올바른 예시
Mid 시작 위치를 0으로 착각 Mid([코드], 2, 3) - 두 번째 문자부터 3개 추출
InStr '시작 위치' 인자를 누락하거나 잘못 지정 InStr(1, [이메일], "@") - 첫 글자부터 @ 위치 찾기
Left/Right 필요한 길이보다 적게/많게 추출 Left([제품명], InStr([제품명], " ") - 1) - 첫 공백 전까지 추출
InStr 함수는 특정 문자열이 다른 문자열 내에서 처음 나타나는 위치를 찾아주는 함수입니다. 이 함수는 Left나 Mid 함수와 함께 사용되어 유동적인 문자열 길이를 처리할 때 특히 유용합니다.

여기서도 '시작 위치'를 1부터 지정해야 하며, 찾는 문자열이 없는 경우 0을 반환한다는 점을 이해해야 합니다. **문자열 함수**들을 조합하여 복잡한 추출 조건을 만족시키는 연습을 충분히 해야 고득점을 할 수 있습니다.

집계 쿼리 (Sum, Avg, Count) 내 식 작성 및 Group By 활용

집계 쿼리 마스터하기

데이터를 그룹별로 요약하고 분석하는 핵심 기능입니다.

Sum, Avg, Count

  • 숫자 필드의 합계, 평균 계산
  • 조건에 맞는 레코드 수 세기
  • Null 값 처리 방식 이해 필수

Group By

  • 집계할 기준이 되는 필드 지정
  • 모든 비집계 필드는 Group By에 포함
  • 계산 필드를 Group By로 사용할 때 주의

핵심은 '무엇을 기준으로' 집계할 것인지 명확히 하고, 그 기준을 Group By 절에 정확히 명시하는 것입니다.

액세스 쿼리 중 가장 많은 점수 배점을 차지하는 것 중 하나가 바로 '그룹화 및 집계 쿼리'입니다. **Sum, Avg, Count**와 같은 집계 함수를 사용하여 데이터를 요약하고, **Group By 절**을 통해 그룹의 기준을 설정하는 문제입니다.

여기서 많은 수험생들이 실수하는 부분은 '그룹화 기준'을 잘못 설정하거나, 집계할 필드를 적절히 사용하지 못하는 것입니다. 가장 흔한 오류는 Select 절에 있는 모든 비집계 필드(집계 함수를 사용하지 않은 필드)를 Group By 절에 포함시키지 않는 것입니다.

SQL 문법상 Select 절에 명시된 모든 필드는 집계 함수 안에 있거나 Group By 절에 포함되어야 합니다. 또한, 특정 조건에 따라 다른 필드를 집계해야 할 때 IIF 함수를 중첩하여 사용하는 등 복잡한 식을 작성해야 하는 경우도 있습니다.
함수 실수 유형 올바른 예시
Count 고유한 값만 세지 않고 전체 레코드 수 세기 Count(Distinct [고객ID]) - 고유 고객 수
Sum/Avg Group By 절 누락 또는 잘못된 필드 포함 SELECT 분류, Sum(판매량) FROM 판매 GROUP BY 분류
IIF + 집계 조건부 집계 시 IIF 함수 내 집계 함수 사용 (불가능) Sum(IIF([성별]='남', [점수], 0)) - 남학생 점수 합계

Count 함수는 일반적으로 레코드의 수를 세지만, **Count(Distinct 필드명)**을 사용하면 해당 필드의 고유한 값만을 셀 수 있습니다. 이는 컴활 문제에서 특정 조건을 만족하는 '개수'를 묻는 경우가 많기 때문에 매우 중요합니다.

집계 쿼리에서 **Group By** 절을 이해하고 모든 비집계 필드를 올바르게 포함시키는 것은 액세스 실기 합격의 핵심적인 부분입니다.

사용자 정의 함수(VBA) 및 매크로 연동 시 디버깅 문제

VBA와 매크로의 시너지

복잡한 비즈니스 로직 구현을 위한 필수 요소입니다.

VBA 사용자 정의 함수 (UDF)

  • ✔️ 복잡한 계산 또는 조건 처리
  • ✔️ 모듈에 Public Function으로 선언
  • ✔️ 디버깅: F8 단계별 실행, Debug.Print 활용

매크로 연동

  • ✔️ 버튼 클릭 시 특정 동작 실행
  • ✔️ RunCode 액션으로 UDF 호출
  • ✔️ 오류 메시지 확인 및 수정

VBA와 매크로는 엑셀의 프로시저와 유사하며, 논리적 오류를 잡아내는 꼼꼼함이 요구됩니다.

컴활 1급 실기 액세스에서 **사용자 정의 함수(UDF)**를 VBA로 작성하거나, 매크로를 이용해 특정 기능을 구현하는 문제는 출제 난이도가 높은 편에 속합니다.

특히 VBA 코딩 경험이 적은 수험생들에게는 문법 오류나 논리적 오류를 찾아내는 '디버깅' 과정 자체가 큰 벽으로 다가올 수 있습니다. 메시지 박스나 폼 컨트롤과 연동될 때 더욱 복잡해지죠. VBA로 함수를 작성할 때는 Public Function 키워드를 사용하여 모듈에 선언해야 쿼리나 폼에서 사용할 수 있습니다.

매개변수의 데이터 형식 지정, 함수 내 변수 선언, 그리고 If...Then...Else와 같은 조건문을 올바르게 사용하는 것이 중요합니다. 작은 오타나 논리 오류 하나라도 전체적인 기능에 문제를 일으킬 수 있습니다.
유형 문제점 해결 방안
VBA 함수 함수 정의 오류 (Public Function 누락, 오타) VBA 편집기에서 [디버그] - [컴파일] 실행, Function 이름 정확히 확인
매크로 연동 RunCode 액션 시 함수명/인자 불일치 매크로 디자이너에서 RunCode 함수명과 인자 목록 정확히 입력
디버깅 런타임 오류, 논리적 오류 발생 시 원인 파악 어려움 F8 키로 단계별 실행, Debug.Print로 변수 값 확인

매크로에서는 **RunCode** 액션을 사용하여 VBA 함수를 호출할 수 있습니다. 이때 함수 이름과 전달하는 인자(Arguments)가 VBA 함수 정의와 정확히 일치해야 합니다. 조금이라도 다르면 "정의되지 않은 함수입니다"와 같은 오류 메시지가 발생하며, 원인을 찾느라 시간을 허비하게 됩니다.

따라서 **VBA 사용자 정의 함수**와 **매크로** 연동 문제는 꼼꼼한 코드 작성과 함께 적극적인 디버깅 기술이 합격을 위한 필수 요소라 할 수 있습니다.

 

컴활 액세스, 정복할 수 있습니다!

액세스 함수는 처음에는 어렵게 느껴지지만, 반복적인 연습과 정확한 원리 이해를 통해 충분히 극복할 수 있는 부분입니다. 위에 제시된 자주 틀리는 유형들을 집중적으로 학습하고, 실제 기출문제를 통해 적용하는 연습을 꾸준히 한다면 좋은 결과를 얻으실 수 있을 겁니다. 포기하지 마세요!

---

자주 묻는 질문 (FAQ)

Q1. 컴활 1급 실기 액세스 함수의 공부 우선순위는 어떻게 되나요?

A1. 쿼리 작성 시 사용되는 D함수 계열, IIF, 그리고 날짜/문자열 함수가 가장 중요하며, 그 다음으로 집계 쿼리와 VBA 사용자 정의 함수 순으로 학습하는 것이 효율적입니다.

Q2. DLookup 함수에서 조건식을 필드 값과 비교할 때, 필드명을 대괄호([ ])로 묶어야 하나요?

A2. 네, 필드명은 대괄호로 묶는 것이 일반적이고 안전합니다. 예를 들어, `[필드명] = '조건'` 과 같이 사용합니다.

Q3. IIF 함수에서 '참일 때 값'과 '거짓일 때 값'이 Null인 경우 어떻게 처리해야 하나요?

A3. IIF 함수에서 Null을 반환하려면 문자열 "Null"이 아닌, Access 시스템의 Null 키워드를 그대로 사용해야 합니다. 예: `IIF([조건], Null, [필드값])`.

Q4. DateDiff 함수로 두 날짜의 '년' 차이를 계산했는데, 실제 나이와 다르게 나옵니다. 왜 그런가요?

A4. DateDiff("yyyy", 시작일, 종료일)은 단순히 '년도'의 차이를 계산하므로, 생일이 지나지 않아도 1살로 계산될 수 있습니다. 정확한 나이를 구하려면 IIF 함수를 중첩하여 생일 여부를 확인해야 합니다.

Q5. Mid 함수에서 '개수' 인자를 생략하면 어떻게 되나요?

A5. Mid 함수에서 '개수' 인자를 생략하면 '시작 위치'부터 문자열의 끝까지 모든 문자를 반환합니다. 필요한 경우에만 생략하고, 보통은 명시적으로 길이를 지정하는 것이 좋습니다.

Q6. InStr 함수에서 찾는 문자열이 없는 경우 어떤 값을 반환하나요?

A6. InStr 함수는 찾는 문자열이 원본 텍스트에 없는 경우 0을 반환합니다. 이를 이용하여 특정 문자의 존재 여부를 판단할 수 있습니다.

문자열 처리 함수 (Left, Right, Mid, InStr)의 위치 및 길이 지정
문자열 처리 함수 (Left, Right, Mid, InStr)의 위치 및 길이 지정

Q7. 집계 쿼리에서 Count(*)와 Count([필드명])의 차이는 무엇인가요?

A7. Count(*)는 모든 레코드의 수를 세는 반면, Count([필드명])은 해당 필드에 Null 값이 아닌 레코드의 수를 셉니다. Null 값을 포함할지 여부에 따라 선택하여 사용합니다.

Q8. Group By 절에 Select 절의 모든 비집계 필드를 포함해야 하는 이유는 무엇인가요?

A8. SQL 표준에 따라, 그룹화되지 않은 개별 레코드 값이 집계된 그룹 결과와 함께 표시될 경우 데이터의 모호성이 발생할 수 있기 때문에, 모든 비집계 필드는 그룹화 기준으로 사용되어야 합니다.

Q9. VBA 사용자 정의 함수를 만들었는데 쿼리에서 "정의되지 않은 함수입니다"라는 오류가 발생해요.

A9. 대부분 함수 이름의 오타, Public Function 키워드 누락, 또는 매개변수 데이터 형식 불일치 때문입니다. VBA 모듈에서 [디버그] - [컴파일]을 통해 구문 오류를 확인하고 함수 정의를 정확하게 다시 확인하세요.

Q10. 매크로에서 RunCode 액션으로 VBA 함수를 호출할 때 인자를 어떻게 전달하나요?

A10. RunCode 액션의 '함수 이름' 인자에 `함수명(인자1, 인자2, ...)` 형식으로 직접 작성합니다. 이때 각 인자는 VBA 함수 정의의 매개변수 순서와 데이터 형식에 맞게 전달해야 합니다.

---

Q11. DSum 함수에서 여러 조건을 동시에 적용하려면 어떻게 해야 하나요?

A11. DSum 함수의 조건식 인자 내에서 `And`나 `Or` 연산자를 사용하여 여러 조건을 연결할 수 있습니다. 예: `"필드1 = '조건1' And 필드2 > 100"`.

Q12. IIF 함수를 중첩하여 3개 이상의 조건에 따라 다른 값을 반환하고 싶으면 어떻게 하나요?

A12. IIF 함수는 엑셀의 IF처럼 중첩하여 사용할 수 있습니다. `IIF(조건1, 값1, IIF(조건2, 값2, 값3))`와 같이 거짓일 때 값 자리에 다른 IIF 함수를 넣습니다.

Q13. DateAdd 함수로 특정 날짜의 다음 달 1일을 구하는 방법은 무엇인가요?

A13. 먼저 `DateAdd("m", 1, [현재날짜])`로 다음 달을 구한 후, `DateSerial(Year(다음달), Month(다음달), 1)`을 사용하여 그 달의 1일을 만듭니다.

Q14. Left 함수와 InStr 함수를 조합하여 특정 구분자 앞의 문자열을 추출하는 예시를 알려주세요.

A14. `Left([텍스트필드], InStr([텍스트필드], "구분자") - 1)`와 같이 사용하면 구분자 바로 앞까지의 문자열을 추출할 수 있습니다.

Q15. 집계 쿼리에서 '총합계'를 구하려면 어떻게 하나요?

A15. 쿼리 디자인 보기에서 '요약' 행을 추가하고, 합계를 구할 필드의 '요약' 셀을 'Sum'으로 설정합니다. 그룹화 기준이 되는 필드는 '그룹화'로 둡니다.

Q16. Access의 Format 함수는 엑셀의 TEXT 함수와 유사한가요?

A16. 네, Access의 Format 함수는 엑셀의 TEXT 함수처럼 숫자, 날짜, 시간 값을 특정 형식의 문자열로 변환하는 데 사용됩니다. 날짜 형식 지정 시 "yyyy-mm-dd", 숫자 형식 지정 시 "#,##0" 등을 활용합니다.

Q17. VBA에서 Option Explicit 선언은 왜 중요한가요?

A17. Option Explicit을 선언하면 모든 변수를 명시적으로 선언해야 하므로, 변수 오타로 인한 오류를 방지하고 코드의 가독성 및 유지보수성을 높이는 데 도움이 됩니다.

Q18. 매크로에서 메시지 박스를 띄우는 방법은 무엇인가요?

A18. 매크로 디자이너에서 'MsgBox' 액션을 추가하고, '메시지' 인자에 표시할 텍스트를 입력합니다. '경고음', '유형', '제목' 등을 설정할 수 있습니다.

Q19. 컴활 실기 액세스에서 쿼리를 작성할 때 대소문자 구분을 해야 하나요?

A19. Access 쿼리에서 기본적으로 필드명이나 테이블명은 대소문자를 구분하지 않습니다. 하지만 조건식의 문자열 값은 대소문자를 구분할 수 있으므로 주의해야 합니다.

Q20. Null 값을 0으로 바꾸거나 특정 값으로 대체하는 함수는 무엇인가요?

A20. Access에서는 **Nz 함수**를 사용하여 Null 값을 다른 값으로 대체할 수 있습니다. 예를 들어, `Nz([필드명], 0)`은 [필드명]이 Null이면 0을 반환합니다.

---

Q21. DCount 함수로 특정 조건에 맞는 레코드 수를 세는 방법은 무엇인가요?

A21. DCount 함수를 사용하며, 필드명 대신 `"*"`를 첫 번째 인자로 사용하고 두 번째와 세 번째 인자에 테이블/쿼리 이름과 조건식을 넣습니다. 예: `DCount("*", "테이블명", "조건식")`.

Q22. Left, Right 함수에서 추출하려는 길이가 원본 문자열 길이보다 길면 어떻게 되나요?

A22. 추출하려는 길이가 원본 문자열의 길이보다 길더라도 오류가 발생하지 않고, 원본 문자열 전체를 반환합니다. 즉, 텍스트의 끝을 넘어가지 않습니다.

Q23. DateDiff 함수에서 "ww" (주 단위) 인터벌 사용 시 주의할 점이 있나요?

A23. "ww" 인터벌은 일요일을 기준으로 주의 경계를 판단합니다. 특정 요일로 시작하는 주를 기준으로 하려면 `FirstDayOfWeek` 인자를 추가로 지정해야 합니다.

Q24. 쿼리에서 계산 필드를 만들 때, 필드명에 공백이 있으면 어떻게 해야 하나요?

A24. 계산 필드의 이름에 공백이 포함될 경우, 해당 필드명을 대괄호([ ])로 묶어야 합니다. 예: `[총 판매 금액]: [단가] * [수량]`.

Q25. VBA에서 함수를 테스트할 수 있는 가장 간단한 방법은 무엇인가요?

A25. VBA 편집기에서 '직접 실행 창(Ctrl+G)'을 열어 `?함수명(인자)` 형식으로 함수를 직접 호출하여 반환 값을 확인할 수 있습니다.

Q26. 액세스에서 조건부 서식을 폼이나 보고서에 적용하는 방법은 무엇인가요?

A26. 폼이나 보고서 디자인 보기에서 컨트롤을 선택한 후 [서식] 탭의 [조건부 서식]을 클릭하여 규칙을 설정합니다. 조건식에 함수를 활용할 수도 있습니다.

Q27. D 함수 계열 사용 시 성능상 주의할 점이 있나요?

A27. D 함수는 데이터를 레코드 단위로 탐색하므로, 대량의 데이터에 반복적으로 사용하면 성능 저하가 발생할 수 있습니다. 가능한 경우 집계 쿼리나 조인(Join)을 활용하는 것이 더 효율적입니다.

Q28. 집계 쿼리에서 Sum 함수가 Null 값을 어떻게 처리하나요?

A28. Sum 함수는 Null 값을 무시하고 계산합니다. 즉, Null 값은 합계에 포함되지 않습니다. 만약 Null을 0으로 간주하여 합산하고 싶다면 Nz 함수를 함께 사용해야 합니다.

Q29. InStrRev 함수는 InStr 함수와 어떤 차이가 있나요?

A29. InStr 함수는 문자열의 시작부터 찾는 문자열의 첫 번째 발생 위치를 반환하는 반면, InStrRev 함수는 문자열의 끝에서부터 역방향으로 탐색하여 첫 번째 발생 위치(문자열 시작 기준)를 반환합니다.

Q30. 액세스에서 날짜를 비교할 때 `#` 기호를 사용하는 이유가 무엇인가요?

A30. `#` 기호는 Access에서 날짜/시간 리터럴을 명시적으로 구분하는 역할을 합니다. 이를 통해 Access는 해당 값이 텍스트가 아닌 날짜/시간 데이터로 인식하여 올바른 비교 및 계산을 수행합니다.

Disclaimer: 본 포스팅은 컴활 1급 실기 액세스 함수 학습에 도움을 드리고자 작성되었습니다. 시험의 출제 경향은 수시로 변동될 수 있으며, 제공된 정보는 참고용으로만 활용하시기 바랍니다. 정확한 최신 정보는 대한상공회의소 공식 자료를 확인해 주세요.

다음 이전