※ 아래 Daily Tip은 최천군님이
제공해주신 내용입니다.
사용자의 입장에서 데이터베이스의 가장 매력적인 부분은 다양한 경우에 따라 빠르고 정확하게 데이터를
검색할 수 있다는 점일 것입니다.
때문에 묻고답하기 게시판에서도 검색에 관한 많은 질문과 답변들이 올라옵니다. 이에 관한 최근 답변의
추세는 대체로 “검색에 대해 검색해 보십시요.”로 요약됩니다. Crocii도 종종 이렇게
답변합니다. “QBF로 검색해 보십시요.”
QBF(Query by Form)란?
QBF란 Query by From의 약어 입니다. 폼에 의한 쿼리 정도의 의미일 것
입니다. 말 그대로 폼의, 폼에 의한, 폼을 위한 쿼리 입니다.
아래와 같이 쿼리를 작성하여 CustomerID가 AROUT인 고객을 찾을 수 있습니다.
그러나 다른 고객을 찾을 때 번번히 쿼리 디자인 창을 열고 조건값을 바꾼 후 쿼리를 실행하는 것은
번거롭습니다.
매개변수 쿼리 : 매개변수에 의해 조건값이 정의되는 쿼리를
말합니다.
위와 같이 쿼리를 작성하고 데이터시트 보기를 실행하면 아래와 같이 매개변수 입력창이 열리고 찾고자
하는 값을 그 입력창에 입력하면 일치하는 레코드만 찾아 주는 융통성 있는 쿼리 입니다.
QBF는 매개변수 쿼리의 매개변수가 들어갈 자리에 아래와 같이 특정폼의 컨트롤 이름을 명시하여
특정폼의 컨트롤 값에 의해 매개변수가 자동으로 입력되고 이에 따라 검색이 실행되는 쿼리를 말합니다.
액세스의 테이블과 폼이 상호 시너지 효과를 내며 얼마나 데이터베이스에 특화 되었는지 그래서 얼마나
쉽게 강력한 기능을 발휘하는지를 보여 주는 순간입니다.
‘Query’ by ‘Form’이니까 쿼리와 폼이 필요할 겁니다. 위의 그림에서 언급된
frmOrders 폼을 만들어 보겠습니다.
아래의 데이터는 NorthWind.mdb의 Orders테이블을
데이터시트 형태의 폼으로 만든 것입니다. 이폼의 레코드 원본을 예제의 qryOrders 쿼리로 수정
했습니다.
그리고 이폼의 이름은 frmOrdersSub 로 수정 했습니다.
빈 폼 하나를 생성하여 아래의 그림과 같이 frmOrdersSub폼을 하위폼으로 삽입합니다.
그리고 이 폼의 이름을 frmOrders라고 명명 합니다.
매개변수 값을 주기 위해서 하위폼의 CustomerID 콤보상자를 복사하여 상위폼에 붙여 넣고 이름을
cmbCustomerID 라고 수정 했습니다. 그리고 속성창의 데이터 탭을 클릭하여
컨트롤 원본 항목의 값을 지웠습니다.
그리고 하위폼을 한 번 클릭하여 하위폼/보고서 컨트롤을 선택하고 이름을
chldOrders라고 명명합니다. 하위폼/보고서 컨트롤이 선택 되었는지 여부는 하위폼 외곽에 8개의
작은 점이 모서리와 한면의 중간에 나타나 있는지를 보고 판단할 수 있습니다.
점이 나타나 있는 상태가 ‘하위폼/보고서 컨트롤’이 선택된
상태입니다. 다시 한번 하위폼을 클릭하면 ‘하위폼/보고서 컨트롤’내의 하위폼 자체나 하위폼의 컨트롤이
선택 됩니다.
위의 폼의 내용이 콤보상자의 내용에 따라 연동되게 하기 위해서 콤보상자의 After Update
이벤트 항목에서 [이벤트 프로시저]를 선택하고 오른쪽의 […]버튼을 클릭하여
아래와 같이 코드를 작성합니다.
Private Sub
cmbCustomerID_AfterUpdate()
Me!chldOrders.Requery
End Sub |
이제 폼을 열면..!!
아무것도 안 나옵니다.
하지만 콤보 상자의 내용을 바꾸면..!
또 바꾸면..!
QBF 작성법을 아셨습니다. 다음번 팁에서 QBF를 이용한
다중 검색 방법과 다양한 응용법을 알아 보겠습니다. |