database design lab: ms access...

14
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]

Upload: others

Post on 31-Dec-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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]

Page 2: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

f) 쿼리를 ‘데이터시트보기’에서 확인한 후 ‘qryAuthor’로 저장한다.

3. 멀티테이블 쿼리 ‘qryBook’을 만든다.

a) 리본메뉴 ‘만들기’ - ‘쿼리 디자인’을 클릭한다

b) 다이어그램 창에 ‘Book’, ‘Publisher’ 테이블을 추가한다

테이블 표시’ 창에서 ‘Book’, ’Publisher’ 테이블을 선택하고 추가한다

c) 다이어그램 창에 ‘qryAuthor’ 쿼리를 추가한다.

’테이블 표시‘ 창에서 ’쿼리‘ 탭을 선택하고 ’qryAuthor’ 쿼리를 추가하고 창을 닫는다

d) ‘qryAuthor’의 ‘Author_ID’ 필드를 ‘Book’ 테이블의 ‘Author_ID’ 필드와 드래그해서

연결한다.

e) ‘qryAuthor’와 ‘Book’을 연결하는 선을 더블클릭하고(조인 속성 창 호출), ‘확인’ 버튼을

누른다.

f) ‘qryAuthor’의 ‘Name’필드, ‘Book’의 ‘Title’ 필드, ‘Publisher’의 ‘PubName’ 필드를

디자인그리드에 추가한다(드래그 또는 더블클릭)

g) 디자인그리드의 ‘조건’ 열에 아래와 같은 조건을 입력한다

h) 쿼리를 ‘qryBook’으로 저장한다.

4. ‘qryBook’ 쿼리를 바운드 하는 ‘frmqryBook’ 폼을 만든다.

a) ‘탐색 창’에서 ‘qryBook’을 선택한 후 리본메뉴 ‘만들기’ - ‘기타 폼’ - ‘여러

항목’을 선택한다.

b) ‘매개변수 값 입력’ 창이 뜨면 ‘확인’ 버튼을 누른다

1

2

3

Page 3: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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’로

입력되어야 한다

Page 4: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

d) 검색을 실행할 버튼 ‘btnFind’를 추가한다.

e) 입력 필드를 초기화 하는 버튼 ‘btnClear’를 추가한다.

i. btnFind’를 복사하고, 캡션을 ‘Clear’로 설정한다(속성시트 ‘형식’탭 - ‘캡션’)

ii. 버튼의 ‘On Click’ 이벤트 속성값을 수정한다

①. 기존의 매크로를 삭제한다(“[포함된 매크로]” 라고 표시됨) // 이후 “...”

버튼을 눌러 매크로 작성기로 진입한다.

②. ‘모든 매크로 함수 표시’를 클릭한다

③. ‘SetValue’ 함수 선택 후 ‘항목’ [title] , ‘식’ null 입력한다.

④. ‘SetValue’ 함수 선택 후 ‘항목’ [author] , ‘식’ null 입력한다

⑤. ‘SetValue’ 함수 선택 후 ‘항목’ [publisher] , ‘식’ null 입력한다

⑥. 저장하고 매크로 편집기를 닫는다

Page 5: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb
Page 6: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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. ‘확인’ 버튼을 눌러 식 작성기를 닫는다.

Page 7: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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’ 이벤트 속성값을 바꾼다

Page 8: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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

①. Name the from-year box as “begyear”, to-year box as “endyear”

②. 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”.

③. 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]![frmBookSearch]![endyear])

iii. Save and Close the query.

Page 9: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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.

Page 10: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

ii. Add Book_ID to frmqryBook and set its Visible property to “No”.

iii. Add a Command Button to the form header & select Form Operations category and Open Form action.

iv. Select frmbook and click Next.

v. Select “Open the form and find specific data to display” and click Next.

vi. Select Book_ID in both forms, click the double-arrow button in the middle, and click Next.

vii. Select Text: Book Info and click Finish.

Page 11: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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. Select frmBook0 & click Next.

iii. Select Open the form and show all the records and click Next.

iv. Select Text: Add Book and click Next.

v. Name the button as btnAddBook and click Finish.

Page 12: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb
Page 13: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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 Expression

Forms![frmBook0]![Author_ID] [Author_ID]

Page 14: Database Design Lab: MS Access Querieswidit.knu.ac.kr/~kiyang/teaching/DB/s14/labs/lab7-kr.pdfDatabase Design Lab: MS Access Queries 1. Download “lab6.accdb” and rename it to lab7.accdb

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”.