1급 액세스 (Me.filter)
1급 액세스에서 가장 킹받는 것 중 하나는,
필드명과 컨트롤을 비교하는 방법이다.
주로 이벤트 프로시저에서 출몰하며, 5점밖ㅇㅔ안주면서 사람을 꽤 귀찮게한다.
그래도 암기하고 익숙해진다면 편하다.
me.filter나 recordsource, bookmark 등등에서 활용이 가능하다.
현재 폼에 자동으로 필터를 만들어주는 me. filter
쓰는 방법을 모른다면, 일일이 속성 시트-필터에 가서, 내가 찾고 싶은 조건을 입력해야한다.

수동을 자동으로 해주는 기능이라 생각하면 될 듯!
기본 구문
me.filter = "필드명 = 컨트롤명"
me.filteron = true
필드명과 고정값 비교 (쉬움)
예를들어 학과필드에서 '회계학과' 라는 조건에 맞는 값만 보여주고 싶다하면,
- 먼저, 문장 전체를 " " 로 묶어준다.
(me.filter = "조건" 위에 적은 기본구문에도 " "가 이미 있긴 하다.)
("학과=회계학과") - 회계학과라는건 문자이기 때문에, " "를 붙여준다.
("학과="회계학과" ") - 근데! 이미 바깥에 " "가 있으니, 중복으로 쓸수가없다. 그래서 ' '(작은따옴표)로 바꿔준다.
("학과 = ' 회계학과 ' ")
문제는 이제,
필드명과 변하는값(컨트롤) 비교
※ 컨트롤이란!
값이 계속 바뀔 수 있는 칸.
밑에 예시처럼, txt학과명에는 회계학과뿐만 아니라 컴퓨터학과, 경영학과 등이 올 수 있다.
예를들어, txt학과명에 입력한 값과 학과 필드값이 같은 자료만 보여주고 싶으면,
- 먼저, 위와같이 문장 전체를 " " 로 묶어준다.
("학과 = txt학과명") - 컨트롤(txt학과명)에는 문자가 들어간다. 그래서 " "를 붙여준다.
( "학과 = " txt학과명 " ") - 그런데, " "가 중복으로 들어갈 수 없어서, ' '(작은따옴표)로 바꿔준다.
( "학과 = ' txt학과명 ' " ) - 필드를 " "를 이용해 묶어준다.
( "학과 = ' " txt학과명 ' " ) - txt학과명 뒤에 있는 ' " , 작은 따옴표를 기준으로 오른팔(")은 있지만 왼팔(")이 없으니 넣어준다.
( "학과 = ' " txt학과명 " ' " ) - 필드와 컨트롤 사이를 & 연산자 이용하여 연결시켜준다.
( "학과 = ' " & txt학과명 & " ' " )
& 연산자 주위에는 반드시 띄어쓰기!
"학과 = ' " & txt학과명 & " ' "
이 수식이, 필드와 컨트롤을 비교하는 기본식(문자형)이다.
보고서에서 많이 보이는 문제,
"현재 페이지는" & [page] & "입니다."
(필드명) (컨트롤값)
[page] 도 숫자값이 계속 바뀌기 때문에 매개변수로 처리 후
양 옆에 & 연산자를 붙여주는 것처럼
이렇게 생각해서 풀어도 괜찮을 것 같담..
※ 쿼리에서!
Like " * " & [이름을 입력하세요.] & "*"
이런 문제를 경험해본적이 있다면, 조금 더 괜찮을까..? ㅜ
txt학과명 = [이름을 입력하세요] 같이, 변하는 값 주위에는 &를 이용해준다.
하지만, 더 큰 문제는
컨트롤 값이 <숫자,날짜,포함하는 문제>에 따라 위치가 달라진다! (찌밤)
컨트롤값이 숫자형일때 | |
"학번 = ' " & txt학번 & " ' " | 일단 기본형(문자)으로 만들어놓는다. |
"학번 = ' " & txt학번 & " ' " "학번 = " & txt학번 & " " |
' ' <- 이게 문자의 의미이므로, 숫자일땐 필요없으니 지운다. |
"학번 = " & txt학번 & " " | " " 이친구들은, 감싸줄 대상이 사라졌으니 있을 필요가 없다. |
"학번 = " & txt학번 & | & 뒤에 나올 것이 없으므로 얘도 지워준다. |
"학번 = " & txt학번 | 숫자형 완성! |
컨트롤값이 날짜형일때 (액세스에서는 날짜(년-월-일) 앞뒤로 #을 붙여준다. 예) #2023-04-28# | |
"날짜 = ' " & txt날짜 & " ' " | 일단 기본형(문자)으로 만들어놓는다. |
"날짜 = ' " & txt날짜 & " ' " | ' ' <- 이게 문자의 의미이므로, 지워준다. |
"날짜 = # " & txt날짜 & " # " | 작은 따옴표가 없어진 자리에 #을 넣는다. |
"날짜 = # " & txt날짜 & " # " | 날짜형 완성! |
컨트롤값을 포함하는 문제일때 ( *김밥* 을 쓰면, 액세스에서 자동으로 Like "*김밥*" 으로 만들어준다.) Like "*김밥*" 을 굳이 하나씩 나누자면 Like " * " & 김밥 & " * " |
|
"음식 = ' " & txt메뉴 & " ' " | 일단 기본형(문자)으로 만들어놓는다. |
"음식 Like ' " & txt메뉴 & " ' " | = 대신 Like 를 넣어준다. |
"음식 Like ' " & txt메뉴 & " ' " | ' " 와 " ' 사이에 포함하는 기호인 *을 넣어준다. |
"음식 Like ' * " & txt메뉴 & " * ' " | 포함하는 문제 완성! |
번외 "음식 Like ' " & txt메뉴 & " * ' " |
김* <- 김으로 시작하는 문장 마찬가지로 뒤에 *이 하나 있으면, 컨트롤명으로 시작하는 값을 찾아온다. |
번외 "음식 Like ' * " & txt메뉴 & " ' " |
*밥 <- 밥으로 끝나는 문장 앞에 *이 하나 있으므로, 컨트롤명으로 끝나는 값을 찾아온다. |
일단 나는, 이런식으로 연습을 꾸준히 했었담.
그래도 1트만에 합격해서, 더러운 모습을 더 안봐서 좋았다.

무슨 말인지 모르겠다면, 암기가 좋을 것 같다...
글로 전하려다보니 어렵다. ㅜㅜ
그래도 손에 익으면, 그렇게 어렵지 않은 문제이당~
다들 화이팅 ㅇㅅㅇ!
