문제
다음 중 아래 그림과 같이 ‘성명’필드가 ‘txt검색’ 컨트롤에 입력된 문자를 포함하는 레코드만을 표시하도록 하는 프로시저의 코드로 옳은 것은?
① Me.Filter = "성명 = '" & txt검색 & "'" Me.FilterOn = True ② Me.Filter = "성명 = '" & txt검색 & "'" Me.FilterOn = False ③ Me.Filter = "성명 like '" & txt검색 & "'" Me.FilterOn = True ④ Me.Filter = "성명 like '" & txt검색 & "'" Me.FilterOn = False
정답
3번
해설
정답: 3. 일부 문자를 '포함'하는 레코드를 찾으려면 와일드카드(*)와 함께 LIKE 연산자를 써야 하고, 필터를 실제로 적용하려면 FilterOn을 True로 설정해야 한다.
오답 풀이
- 1번: 와일드카드(*)를 = 연산자와 함께 쓰면 정확히 그 문자열을 찾아 '포함' 조건이 되지 않으므로 옳지 않다.
- 2번: = 연산자 사용에다 FilterOn=False라 필터가 적용되지도 않으므로 옳지 않다.
- 3번: LIKE + 와일드카드로 포함 검색을 하고 FilterOn=True로 적용하므로 옳다.
- 4번: 조건은 맞지만 FilterOn=False라 필터가 켜지지 않아 옳지 않다.
보충 개념 부분 일치 검색은 LIKE와 와일드카드(*)를 조합한다. Filter 속성에 조건을 넣고 FilterOn=True여야 실제로 필터가 동작한다.