Database Design Lab: MS Access Queries 1. Download lab6.accdb and rename it to lab7.accdb. 2. 이름 값을가지는쿼리 qryauthor 를만든다 a) Open lab6.accdb. b) 리본메뉴 만들기 - 쿼리디자인 을클릭한다. c) 테이블표시 창에서 Author 테이블을선택하고 추가 버튼을누르고닫는다 d) Author 테이블에서 Author_ID, Lastname, Firstname 필드를추가한다 ( 객체관계패널 -> 디자인그리드 ) e) Firstname 필드옆의빈필드를클릭하고, 리본메뉴 디자인 - 작성기 를연다. 그리고 식작성기 에아래와같이입력하고 확인 을클릭한다. Name: [Firstname] & & [Lastname]
f) 쿼리를 데이터시트보기 에서확인한후 qryauthor 로저장한다. 3. 멀티테이블쿼리 qrybook 을만든다. a) 리본메뉴 만들기 - 쿼리디자인 을클릭한다 b) 다이어그램창에 Book, Publisher 테이블을추가한다 테이블표시 창에서 Book, Publisher 테이블을선택하고추가한다 c) 다이어그램창에 qryauthor 쿼리를추가한다. 테이블표시 창에서 쿼리 탭을선택하고 qryauthor 쿼리를추가하고창을닫는다 d) qryauthor 의 Author_ID 필드를 Book 테이블의 Author_ID 필드와드래그해서연결한다. e) qryauthor 와 Book 을연결하는선을더블클릭하고 ( 조인속성창호출 ), 확인 버튼을누른다. 2 1 3 f) qryauthor 의 Name 필드, Book 의 Title 필드, Publisher 의 PubName 필드를디자인그리드에추가한다 ( 드래그또는더블클릭 ) g) 디자인그리드의 조건 열에아래와같은조건을입력한다 h) 쿼리를 qrybook 으로저장한다. 4. qrybook 쿼리를바운드하는 frmqrybook 폼을만든다. a) 탐색창 에서 qrybook 을선택한후리본메뉴 만들기 - 기타폼 - 여러항목 을선택한다. b) 매개변수값입력 창이뜨면 확인 버튼을누른다
c) 폼을아래와같이수정한다. i. 폼머릿글 영역의폼레이블을 Book Search Result 로변경한다. ii. 폼머릿글영역에 폼닫기 버튼을추가한다 iii. 본문영역의컨트롤레이블의이름을 Book Title, Author, Publisher 로변경한다 iv. 컨트롤의높이를조정한다 ( 더좁게 ) d) 폼을 frmqrybook 으로저장하고닫는다. 5. 책을저자명, 서명, 출판사명으로검색하는언바운드폼 frmbooksearch 를만든다 a) 리본메뉴 만들기 - 폼디자인 을선택한다 b) 폼에 BookSearch 레이블을추가한다 i. 리본메뉴 디자인 - 레이블 아이콘선택하고, 폼상단에그린다 ii. 레이블에 Book Search 라고입력하고글자크기 18, 중앙정렬, 굵게 설정한다. c) 검색조건으로사용하기위한언바운드텍스트박스 title, author, publisher 세개를추가한다. -- 속성시트 - 기타 - 이름 값이정확히 title, author, publisher 로입력되어야한다
d) 검색을실행할버튼 btnfind 를추가한다. e) 입력필드를초기화하는버튼 btnclear 를추가한다. i. btnfind 를복사하고, 캡션을 Clear 로설정한다 ( 속성시트 형식 탭 - 캡션 ) ii. 버튼의 On Click 이벤트속성값을수정한다 1. 기존의매크로를삭제한다 ( [ 포함된매크로 ] 라고표시됨 ) // 이후... 버튼을눌러매크로작성기로진입한다. 2. 모든매크로함수표시 를클릭한다 3. SetValue 함수선택후 항목 [title], 식 null 입력한다. 4. SetValue 함수선택후 항목 [author], 식 null 입력한다 5. SetValue 함수선택후 항목 [publisher], 식 null 입력한다 6. 저장하고매크로편집기를닫는다
f) 폼닫기 버튼을추가한다 g) 레코드선택기 와 탐색단추 를제거하고, 폼을 frmbooksearch 로저장한다 6. frmbooksearch 로작동하는쿼리 qrybook 을만든다. a) 디자인보기 에서 qrybook 쿼리를연다 b) Name 필드의 조건 열을클릭한후, 식작성기를열기위해 작성기 를클릭한다. c) [Author] 교체 i. 식작성기내의 Like * & [Author] & * 에서 [Author] 를삭제한다. ii. 커서가 { Like * & } 와 { & * } 사이에있는지확인한다. iii. 식작성기하단의 식요소 에서 lab6.accdb 를더블클릭한다. iv. Forms - 모든폼 을확장하고, frmbooksearch 를클릭한다. v. 하단중간에있는 식범주 에서 author 를더블클릭해서추가한다. 상단창의식은 { Like * & Forms![frmBookSearch]![author] & * } 이어야한다. ( { 기호는아님 } vi. 확인 버튼을눌러식작성기를닫는다.
d) Title, PubName 필드의조건열에도동일한수정을수행한다. -> [Book Title] 을 frmbooksearch 폼의 title 컨트롤로교체 -> [Publisher] 을 frmbooksearch 폼의 publisher 컨트롤로교체 e) 쿼리를저장하고닫는다. 7. frmbooksearch 폼을이용하여책검색기능을테스트해본다. 8. 네비게이션메뉴에 Search Books 버튼을삽입한다 a) frmnavigation 폼을디자인보기로연다 b) DataEntry 탭의버튼중하나를클릭하고복사한다. c) Search 탭을클릭하고버튼을붙여넣기한다. d) 버튼의캡션을 Search Books 로바꾼다 e) frmbooksearch 폼을열고닫기위해버튼의 On Click 이벤트속성값을바꾼다
9. 데이터베이스가 Main Switchboard 가기본으로열리도록액세스의옵션을설정한다 a) 파일 - 옵션 메뉴를클릭하고, 현재데이터베이스 를선택한다 b) 폼표시 를 frmnavigation 으로설정한다. c) 닫을때압축 옵션을설정하고, 상태표시줄표시 옵션을해제한다. d) 닫고데이터베이스를다시연다. - 옵션을비활성화하려면, 쉬프트키를누른채데이터베이스를연다. Optional Exercises 10. Add a publication year search criteria to Book Search. a) Edit frmbooksearch as follows. i. Add publication year search textboxes 1. Name the from-year box as begyear, to-year box as endyear 2. For begyear, set Input Mask property (Data tab of Property Sheet) to 9999, set Validation Rule to Between 1 And Year(Date()), and set Validation Text to Invalid Start Year. 3. For endyear, set Input Mask property (Data tab of Property Sheet) to 9999, set Validation Rule to Between nz([begyear]) And Year(Date()), and set Validation Text to Invalid End Year. ii. Update the Clear button On Click event property to add begyear and endyear. Action Item Expression SetValue [begyear] Null SetValue [endyear] Null b) Modify the qrybook query to use the publication year parameters. i. In Design View, create a PubYear field derived from [PubDate] field of Book table. -- PubYear: Year([PubDate]) ii. Add the following criteria for PubYear. -- Between nz([forms]![frmbooksearch]![begyear]) And IIf(IsNull([Forms]![frmBookSearch]![endyear]),Year(Date()),[Forms]![frmBookSear ch]![endyear]) iii. Save and Close the query.
11. Modify the search result form (frmqrybook). a) Add the PubYear field b) Add a command button to open the frmbook form. i. Add Book_ID to the qrybook query.
ii. Add Book_ID to frmqrybook and set its Visible property to No. iii. iv. Add a Command Button to the form header & select Form Operations category and Open Form action. Select frmbook and click Next. v. Select Open the form and find specific data to display and click Next. vi. vii. Select Book_ID in both forms, click the double-arrow button in the middle, and click Next. Select Text: Book Info and click Finish.
12. Modify the Author form (frmauthor) to add Add Book button. a) Open frmauthor in Design View and drag the Book table from Navigation Pane to the form. b) In the SubForm Wizard window, select Choose from a list (Show Book for each record in Author using Author_ID) & click Next. c) Name the subform (e.g., Book Subform) and click Finish. d) Adjust the size & layout of the subform and change its label to Book List. - Hint: change column widths in Layout View (e.g., hide Book_ID, Author_ID). e) Rename the subform control to booklist (Name property in Other tab of Property Sheet) f) Make a copy of frmbook named frmbook0. g) Add the Add Book button. i. Add a Command Button next to the subform label & select Form Operations category and Open Form action and click Next. ii. iii. iv. Select frmbook0 & click Next. Select Open the form and show all the records and click Next. Select Text: Add Book and click Next. v. Name the button as btnaddbook and click Finish.
h) Modify the On Click event property of the btnaddbook button to show book information. i. In the OpenForm action in the On Click event macro, set the Data Mode to Add. ii. Click Show All Actions, add the SetValue action below & save and close the macro. Item Forms![frmBook0]![Author_ID] Expression [Author_ID]
i) Modify the form close button of frmbook0 to update the booklist subform of frmauthor. i. Open the embedded macro of On Click event property of btnclose of frmbook. ii. Add Requery action as shown below. -- Control Name = [booklist] Sample Lab Solution: Download lab7.accdb.