ACCESS 實作範例

[ 2000年大丙程設比賽題目 ]

[ 2001年大丙程設比賽題目 ]

[ 2002年大丙程設比賽題目 ]

[ 2000實作範例 ]

[ 2001實作範例 ]

[ 2002實作範例 ]

 

 

 

 

 

 

[ 2000年大專丙組程式設計比賽題目 ]

[ 2000實作範例 ]

請設計一資料庫來儲存一會員制商店的銷貨資料。此資料庫包括四個資料表(tables),分別名為CUSTOMER (客戶)PRODUCT(產品),INVOICE(銷貨單)DETAILS(銷貨明細)。一張銷貨單含有數筆明細,每一筆明細代表所購買的每一樣產品。比如,一張典型的銷貨單如下:

銷貨單編號

發票編號

日期,客戶資料

產品編號

數量

單價

 

 

 

 

 

 

 

為了記載銷貨的資料,各資料表的欄位定義以下:

CUSTOMER

Cno:長度為4個文數字              /* 客戶編號 */

Cname: 長度為最多10個中文字          /* 客戶姓名 */

Sex: 值為’F’或’M                      /* 性別 */

Address: 長度為最多30個中文字        /* 住址 */

Tel: 格式為(0n)nnn-nnnnn0-9的數字  /* 電話 */

其中主鍵為Cno

PRODUCT

Pno: 長度為4個文數字               /* 產品編號 */

Pname:長度為最多20個中文字         /* 產品名稱 */

Brand:長度為最多20個中文字          /* 品牌 */

其中主鍵為Pno

INVOICE

Ino:長度為4個文數字               /* 銷貨單編號 */

Idate: 欄位型態為簡單日期(yyyy/mm/dd)   /* 銷貨日期 */

ICno: 長度為4個文數字                /* 銷貨客戶編號 */

Uno:長度為10個文數字                 /* 發票編號 */

格式AANNNNNNNNA為英文字母,N0-9數字  

其中主鍵為Ino,但Uno亦是唯一,此外ICno為外來鍵(foreign key),其相對應的主鍵為CUSTOMER(Cno),也就是說,ICno的值必須存在於CUSTOMER(Cno)裡。

DETAIL

DIno:長度為4個文數字              /* 銷貨單編號 */

DPno:長度為4個文數字             /* 產品編號 */

Price:型態為數值                     /* 產品的單價 */

Number:型態為數值                   /* 產品的數量 */

其中DInoDPno合起來為主鍵。DIno為外來鍵(foreign key),其相對應的主鍵為INVOICE(Ino)DPno亦為外來鍵(foreign key),其相對應的主鍵為PRODUCT(Pno)

 

1.            請依以上的敘述,定義一名為SALES的資料庫綱目(schema),然後將其資料由磁片中的CUSTOMER.txt, PRODUCT.txt, INVOICE.txt, DETAIL.txt載入。(5%,其中每一資料表綱目佔1%,資料載入佔1%)

2.            請設計表單一來維護CUSTOMER的資料,表單二來維護PRODUCT資料,表單三來維護INVOICEDETAIL資料。其中表單三要包含子表單,此表單上面有銷貨單編號、銷貨日期、銷貨客戶編號、和發票編號,子表單就列出該銷貨單的所有銷貨明細資料,包括產品編號、產品的單價、和產品的數量。(4%,其中表單一和二各佔1%,表單三和子表單佔2%)

3.            請設計查詢一來查詢某一產品的某日銷售記錄,使用者可以輸入一產品部份名稱和一日期,該查詢即顯示該產品在該日的銷售狀況,包括產品名稱,銷售單編號,客戶姓名,購買單價,購買數量。(2%)

4.            請設計表單四來查詢客戶的銷售記錄,使用者可以輸入一客戶部份姓名(用鍵入方式)或選擇客戶編號(用下拉式選單),然後顯示符合條件之客戶編號,姓名,和按日期先後次序列出其所買的所有產品編號,產品名稱,銷貨單編號和產品購買日期。(5%,客戶部份姓名和客戶編號的輸入必須在同一畫面,全對才給分)

5.            請設計報表一來統計銷售的狀況,使用者可以選擇起迄日期,按下確定鈕後即列出按日期先後次序列出銷貨單編號,客戶姓名,總銷貨金額(即銷貨單上各明細的單價乘以數量之加總),並列出每天的總銷貨金額和該日期區間的總銷貨金額。(3%,其中按日期先後列出銷貨單資料佔2%,每日和區間統計佔1%)

6.            設計一主表單(ACCESS啟動此資料庫時即自動執行此表單),上有六個按鈕,分別是維護客戶資料(執行表單一),維護產品資料(執行表單二),維護銷售記錄(執行表單三),查詢產品銷售記錄(執行查詢一),查詢客戶銷售記錄(執行表單四),銷售統計(執行報表一),和離開。(1%)

 

主表單,表單一到四,和報表一的參考畫面如附件。

附件

主畫面:

表單一:

 

表單二:

 

表單三:

 

表單四:

查詢結果畫面:


報表一:

 

[ 2000 ]  [ 2001 ]  [ 2002 ]

 

[ 2001年大專丙組程式設計比賽題目 ]

[ 2001實作範例 ]

問卷的設計和使用是了解顧客滿意度的一個很普遍的方式。請設計一資料庫來儲存問卷的題目和調查結果。此資料庫包括四個資料表(tables),分別名為QUESTIONAIRE (問卷題目)CHOICE(選擇題選項),SELECTION(選擇題結果), EXPRESSION(問答題結果)

各資料表的欄位定義以下:

QUESTIONAIRE

Qid:長度為4個文數字(字串)              /* 題目id */

Seq: 長度為2個數字 (字串)              /* 題目序號 */

Description: 長度為最多255個文字 (字串) /* 題目描述 */

Type: S, M, or A        /* S:單選題, M:多選題, A:問答題 */

Visible: Y or N           /* Y: 顯示題目, N:隱藏題目 */

其中主鍵為Qid

CHOICE

Qid: 長度為4個文數字 (字串)              /*題目id */

No:長度為1個文數字 (字串)            /* 選項編號 */

Item:長度為最多100個文字 (字串)         /* 選項描述 */

其中QidNo合起來為主鍵,此外Qid為外來鍵(foreign key),其相對應的主鍵為QUESTIONAIRE(Qid),也就是說,Qid的值必須存在於QUESTIONAIRE(Qid)裡。

SELECTION

Pid:長度為10個文數字 (字串)                /* 填問卷者之id */

格式ANNNNNNNNNA為英文字母,N0-9數字

Qid:長度為4個文數字 (字串)             /* 題目id */

No:長度為1個文數字 (字串)            /* 選項編號 */

Date: 欄位型態為簡單日期(yyyy/mm/dd)   /* 填寫日期 */

其中Pid, Qid, No合起來為主鍵,此外Qid, No合起來為外來鍵(foreign key),其相對應的主鍵為QUESTIONAIRE(Qid, No)

EXPRESSION

Pid:長度為10個文數字 (字串)                /* 填問卷者之id */

格式ANNNNNNNNNA為英文字母,N0-9數字

Qid:長度為4個文數字 (字串)             /* 題目id */

Date: 欄位型態為簡單日期(yyyy/mm/dd)   /* 填寫日期 */

Content: 長度為255個文數字 (字串)        /* 填寫內容 */

其中主Pid, Qid合起來為主鍵,此外Qid為外來鍵,其相對應的主鍵為QUESTIONAIRE(Qid)

 

1.            請依以上的敘述,定義一名為SALES的資料庫綱目(schema),然後將其資料由磁片中的QUESTIONAIRE.txt, CHOICE.txt, SELECTION.txt, EXPRESSION.txt載入。(3%,其中每一資料表綱目佔0.5%,資料載入佔1%)

2.            請設計表單1來維護QUESTIONAIRECHOICE的資料。此表單要包含子表單,此表單上面有題目id、題目序號、題目描述、題目型態和是否隱藏,子表單就列出該題目的所有選項資料,包括選項編號、和選項描述。(4%,全對才給分)

3.            請設計表單來讓使用者填寫問卷並記錄結果,表單2.1可讓使用者輸入其id,接著叫出表單2.2列出所有Visible=Y’的單選題目和其選項, 若使用者選擇多選題的話則叫出表單2.3列出所有Visible=Y’的多選題目和其選項,若使用者選擇問答題的話則叫出表單2.4列出所有Visible=Y’的問答題, 請注意如是單選題用樞紐(Radio Button),多選題用勾選(CheckBox), 如是問答題則顯示文字盒(TextBox)(10%,其中表單2.11%,表單2.2, 2.3, 2.4各佔3%,各表單需全對才給分)

4.            請設計表單3來查詢問答題結果,使用者可以輸入日期(用鍵入方式)和題目id(用下拉式選單),然後按日期先後顯示符合條件之使用者id,題目內容,和使用者所填的意見。(4%,全對才給分)

5.            請設計報表1來統計選擇題的結果,使用者可以選擇起迄日期,按下確定鈕後即列出按日期先後次序列出題目,選項,並列出每月的選擇次數和該日期區間的總選擇次數。(3%,全對才給分)

6.            設計一主表單(ACCESS啟動此資料庫時即自動執行此表單),上有五個按鈕,分別是維護問卷資料(執行表單1),填寫問卷(執行表單2.1),查看客戶意見(執行表單3),統計客戶滿意度(執行報表1),和離開。(1%)

 

主表單,表單13,和報表1的參考畫面如附件。


附件:

 

主畫面:

表單1

 


表單2-1

表單2-2

表單2-3

表單2-4

表單3

 

報表1-參數1

 

報表1-參數2


報表1

 

[ 2000 ]  [ 2001 ]  [ 2002 ]

[ 2002年大專丙組程式設計比賽題目 ]

[ 2002實作範例 ]

假設你要為網路書店設計一縮小版的購書系統,讓顧客可以透過該系統來購買書籍。該資料庫包括五個資料表(tables),分別名為BOOK (書籍)CUSTOMER(顧客),SHOPPING_CART(購物車), TRANSACTION(交易), DETAIL(交易明細)

各資料表的欄位定義以下:

BOOK

ISBN:長度為10個數字(字串)              /* id */

Title:長度為最多255個文字 (字串)         /* 書名 */

Authors:長度為最多255個文字 (字串)       /* 作者姓名 */

Publisher:長度為最多255個文字 (字串)      /* 出版社名稱 */

Price:數字                                /* 價錢 */

Classes:長度為最多255個文字 (字串)        /*書類別 */

其中主鍵為ISBN

CUSTOMER

Cid:長度為10                             /*身分證字號*/

     格式ANNNNNNNNNA為英文字母,N0-9數字

Name:長度為最多100個文字 (字串)          /* 姓名 */

Birthday:欄位型態為簡單日期(yyyy/mm/dd)     /* 生日 */

其中Cid為主鍵

SHOPPING_CART

Cid:長度為10 (字串)                        /*身分證字號*/

ISBN:長度為10個數字(字串)                /* id */

Number:數字                              /* 購買數量 */

其中CidISBN合起來為主鍵,此外Cid, ISBN為外來鍵(foreign key),其相對應的主鍵分別為CUSTOMER(Cid)BOOK(ISBN)

TRANSACTION

Tid:自動編號                                                          /* 交易id*/

Cid:長度為10                             /*交易顧客身分證字號*/

     格式ANNNNNNNNNA為英文字母,N0-9數字

Date: 欄位型態為簡單日期(yyyy/mm/dd)       /* 交易日期 */

其中Tid為主鍵,Cid為外來鍵,其相對應的主鍵為CUSTOMER(Cid)

DETAIL

Tid:長整數                                                     /* 交易id*/

ISBN:長度為10個數字(字串)               /* id */

Number:數字                              /* 購買數量 */

其中主Tid, ISBN合起來為主鍵,此外TidISBN為外來鍵,其相對應的主鍵分別為TRANSACTION(Tid)BOOK(ISBN)

 

 

1.            請依以上的敘述,定義一名為BOOKSTORE的資料庫綱目(schema),然後將其資料由磁片中的BOOK.txt, CUSTOMER.txt, SHOPPING_CART.txt, TRANSACTION.txt, DETAIL.txt載入。(2%)

2.            請設計表單1來維護BOOK的資料。此表單上面有ISBN、書名、作者、出版社和價錢,此外,共有(小說、散文、詩集、兒童)等四類可供勾選,一本書可以同時屬於好幾類。(5%,全對才給分)

3.            請設計表單2來維護CUSTOMER的資料。此表單上面有身分證字號、姓名、出生年月日。(2%,全對才給分)

4.            請設計表單3來讓顧客填入身分證字號和姓名,按下確定鈕後作身份辨識﹝即確認該資料存於CUSTOMER表裡﹞,確認無誤則畫面切換至表單4,否則印出錯誤訊息。(2%)

5.            請設計表單4來讓顧客查詢書籍,表單4會顯示顧客姓名並讓顧客輸入部分書名(用鍵入方式)、部分作者姓名(用鍵入方式)、或書類型(有小說、散文、詩集、兒童四類,用下拉式選單),然後按下查詢鈕即在子表單上顯示符合條件之書名、作者、購買書量(預設為1,可讓顧客修改),每一本書並有一勾選盒(Checkbox),讓顧客勾選放入購物車。表單4 並有兩個按鈕”檢視購物車”和”結帳”, 分別切換至表單56(8%,全對才給分)

6.            請設計表單5來讓顧客管理購物車,表單5列出該顧客所有置入購物車之書名、作者、和數量,其中數量可以修改,每一本書並有一勾選盒(Checkbox),讓顧客表示要刪除。顧客最後按下確定鈕或取消鈕表示確定或取消此動作,並切換畫面至表單4(4%)

7.            請設計表單6來讓顧客結帳,表單6列出交易總金額,並要求顧客輸入信用卡號、信用卡到期日、和寄送住址,目前購物車裡的書名、作者、購買書量和單價則列在子表單。當顧客按下確定鈕時即產生一交易並將購物車資料清空,最後顯示一謝謝交易的畫面後,切換畫面至主表單。若顧客按下取消鈕則切換畫面至表單4(3%)

8.            請設計報表1來統計交易的結果,使用者可以選擇起迄日期,按下確定鈕後即列出顧客身分證號,顧客姓名,並列出每月的交易次數和總金額,以及該日期區間的總交易次數和金額。(3%,全對才給分)

9.            設計一主表單(ACCESS啟動此資料庫時即自動執行此表單),上有五個按鈕,分別是維護書籍資料(執行表單1),維護顧客資料(執行表單2),購書(執行表單3),顧客交易統計(執行報表1),和離開。(1%)

 

主表單,表單16,和報表1的參考畫面如附件。


附件:

表單一:

 

表單二:

 

表單三:

 


表單四:

 

表單五:

 


表單六:

 

主表單:

 


報表一:

[ 2000 ]  [ 2001 ]  [ 2002 ]