2권 (엑세스 2007)
섹션 08 처리기능 파트에서
매크로를 프로시저로 변환하는 방법에 대해 배웠는데
매크로를 프로시저로 변환해서 얻어진 식(1)과
처음 부터 프로시저로 작성한 식(2)이 차이가 있어 보였습니다.
(1) Docmd.OpenReport "판매내역", acviewpreview, " " , "[상품명]=[Forms]![판매현황]![txt이름]"
(2) Docmd.OpenReport "판매내역", acviewpreview, , "상품명= ' " & txt이름 & " ' "
두 식에서 Where조건문 부분이 차이를 보이는데요
어떤 부분이 차이가 있는지 알고 싶습니다.
숫자컨트롤, 문자컨트롤, 날짜컨트롤의 컨트롤 표시법이 각각 다른데
(1)식과 같이 [상품명]=[Forms]![판매현황]![txt이름] 형태로 나타낸다면 훨씬 쉬울것 같다는 생각이 들었습니다.
이에 유추하여 섹션 06 조회 파트의
Filter와 FilterOn 기능을 이용하는 부분에서
(3) Me.Filter = "제품명= ' " & txt제품명 & " ' "
(4) Me.Filter = "[제품명]=[Forms]![판매현황관리]![txt제품명]
책에 나와있는 (3)번 식을 대체하여 (4)번 식을 쓸수 있지 않을까? 하는 생각이 들었습니다.
그러나 조회버튼을 클릭했을 때 1회에 한하여 조회는 가능하나
FilterOn = False 명령어가 듣지 않는것 같습니다. 계속 1회차에 조회했던 값이 나옵니다.
여기서는 사용할수 없는 조건문인지 알고 싶습니다.
그리고
매크로에서의 Msgbox 명령은 프로시저로 변환하였을때
VbOkOnly 조건만 가능한것 같습니다.
혹시 매크로로 Msgbox 를 사용하여 VbYesNo 등 여러가지 조건을 사용할수 있나요?
된다면 복잡한 프로시저를 외울필요가 없어질것 같습니다.
마지막으로
198page의 Docmd개체의 주요메서드라고 나와있는 부분 모두
매크로 -> 프로시저 변환으로 식을 이끌어 낼수 있는지 알고 싶습니다.
1번은 다른 폼이나 다른 보고서등 다른 개체의 컨트롤을 사용해야 할때 쓰는 방법입니다.
이 방법이 적용이 되 때가 있고 안될때가 있는데요. 사용가능할때 사용하시면 됩니다.
me.filter 의 경우 지금 현재 폼에있는 컨트롤로 실행하는 경우가 많기 때문에
1번과 같은 형태로 사용이 불가능 한 것입니다.
msgbox 에서 기본적인것만 사용이 가능한 것 같습니다. 다른 것을 사용할 수 있다면 좋겠지만
매크로에서는 한정된 기능만 사용이 가능하네요.
매크로로 작성이 가능한 것은 변환도 가능 합니다.
그렇지 않다면 사용이 불가능 하세요.
좋은 하루 되세요.
"-
*2012-05-17 07:53:41
1번은 다른 폼이나 다른 보고서등 다른 개체의 컨트롤을 사용해야 할때 쓰는 방법입니다.
이 방법이 적용이 되 때가 있고 안될때가 있는데요. 사용가능할때 사용하시면 됩니다.
me.filter 의 경우 지금 현재 폼에있는 컨트롤로 실행하는 경우가 많기 때문에
1번과 같은 형태로 사용이 불가능 한 것입니다.
msgbox 에서 기본적인것만 사용이 가능한 것 같습니다. 다른 것을 사용할 수 있다면 좋겠지만
매크로에서는 한정된 기능만 사용이 가능하네요.
매크로로 작성이 가능한 것은 변환도 가능 합니다.
그렇지 않다면 사용이 불가능 하세요.
좋은 하루 되세요.
"