2014년 11월 17일 월요일

[액세스] VBA - 폼/보고서 호출, 닫기

폼 호출 (매크로)

on click 등의 이벤트의 작성기 선택에서 매크로 작성기 띄운다.
매크로 대화상자에서, 매크로 함수: OpenForm, 폼 이름: 대상폼의 이름을 입력

ex)
함수: OpenForm
폼 이름: 분류등록
보기형식: 폼
창 모드: 기본


보고서 호출 (매크로)

이벤트에서 매크로 작성기 선택
매크로 대화 상자에서, 함수: OpenReport, 보고서 이름: 분류별판매내역, 보기 형식: 인쇄 미리 보기, where 조건문: [분류]=[Forms]![판매현황]![txt분류] 를 입력

ex)
함수: OpenReport
보고서 이름: 분류별판매내역
보기 형식: 인쇄 미리 보기
where 조건문: [분류]=[Forms]![판매현황]![txt분류]

호출하는 대상 보고서인 분류별판매내역 보고서에서는 보고서 데이터 레코드 원본으로 SELECT 판매종합.분류, Sum(판매종합.수량) AS 수량합계, Sum(판매종합.금액) AS 금액합계 FROM 판매종합 GROUP BY 판매종합.분류; 를 쓰고 있는데, 보고서 내 txt분류 컨트롤에서 컨트롤 원본으로 판매종합 테이블의 분류 필드를 쓰고 있다.

즉, 저 where절에서 쓴 [분류]는 즉 보고서에서 사용되고 있는 [분류] 필드이다. 대상으로 보고서 이름을 써주었으므로 [보고서]!..와 같이 쓰지 않고 바로 필드 이름을 쓴다.

보고서의 판매현황 폼의 txt분류 컨트롤에 입력된 값과 [분류] 필드 값이 같은 경우에만 보고서에 표시해서 그 보고서를 열어라는 매크로이다.


폼이나 보고서 닫기 (매크로)

매크로 함수: Close
개체 유형: 폼 혹은 보고서
저장: 확인, 예, 아니오 중에 선택


폼 호출 (코드 작성)

Private Sub cmd상품정보_Click()
DoCmd.OpenForm "상품정보", acNormal, , "상품명 = '" & txt이름 & "'"
End Sub

docmd.openForm "폼이름", 보기형식, 필터, "조건"


보고서 호출 (코드 작성)

Private Sub cmd상품정보_Click()
DoCmd.OpenReport "판매내역", acViewPreview, , "상품명 = '" & txt이름 & "'"
End Sub

docmd.openReport "폼이름", 보기형식, 필터, "조건"


DoCmd 개체

엑세스 매크로 함수를 비쥬얼 베이직에서 실행하기 위한 개체이다.
메서드를 이용하여 매크로를 실행한다.

주요 메서드
OpenReport
OpenForm
RunSQL
GoToRecord
Quit
Close

댓글 없음:

댓글 쓰기