數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)ACCESS_第1頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)ACCESS_第2頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)ACCESS_第3頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)ACCESS_第4頁(yè)
數(shù)據(jù)庫(kù)原理與應(yīng)用課程設(shè)計(jì)指導(dǎo)書(shū)ACCESS_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)原理與應(yīng)用實(shí)訓(xùn)指導(dǎo)書(shū)交通信息學(xué)院2011.09 庫(kù)存管理系統(tǒng)傳統(tǒng)的庫(kù)存管理,一批產(chǎn)品從入庫(kù)到出庫(kù),要經(jīng)過(guò)多個(gè)環(huán)節(jié),而且具有如下幾個(gè)弊端:手工處理入庫(kù)、出庫(kù)造成產(chǎn)品供應(yīng)效率低,影響企業(yè)發(fā)展;手工完成大量的入庫(kù)、出庫(kù)和庫(kù)存統(tǒng)計(jì),造成庫(kù)存產(chǎn)品匯總困難,使庫(kù)存結(jié)構(gòu)難以掌握;倉(cāng)庫(kù)與管理部門(mén)之間信息交流少,造成庫(kù)存積壓,使資金周轉(zhuǎn)緩慢。建立計(jì)算機(jī)化的庫(kù)存管理系統(tǒng)可以對(duì)解決這些問(wèn)題提供有效地幫助。一、數(shù)據(jù)庫(kù)設(shè)計(jì)根據(jù)庫(kù)存管理系統(tǒng)分析,庫(kù)存管理系統(tǒng)處理的數(shù)據(jù)涉及的表有入庫(kù)表、出庫(kù)表、庫(kù)存表以及商品信息等。要使所有表既無(wú)數(shù)據(jù)冗余,又無(wú)傳遞依賴,可將庫(kù)存管理系統(tǒng)數(shù)據(jù)庫(kù)定義為5張表,分別為商品入庫(kù)表、商品出庫(kù)表

2、、庫(kù)存表、商品信息表和倉(cāng)庫(kù)表。各表結(jié)構(gòu)如下:表1 商品入庫(kù)表字段名稱(chēng)字段類(lèi)型長(zhǎng)度允許空值備注入庫(kù)ID數(shù)字長(zhǎng)整型必填主鍵入庫(kù)日期日期/時(shí)間長(zhǎng)日期商品代碼文本20必填入庫(kù)數(shù)量數(shù)字長(zhǎng)整型必填單位文本4組合框倉(cāng)庫(kù)文本10組合框標(biāo)志文本1入庫(kù)數(shù)量修改差數(shù)字長(zhǎng)整型表2 商品出庫(kù)表字 段 名 稱(chēng)字 段 類(lèi) 型長(zhǎng) 度允 許 空 值備 注出庫(kù)ID數(shù)字長(zhǎng)整型必填主鍵出庫(kù)日期日期/時(shí)間長(zhǎng)日期商品代碼文本20必填出庫(kù)數(shù)量數(shù)字長(zhǎng)整型必填單位文本4組合框倉(cāng)庫(kù)文本10組合框標(biāo)志文本1出庫(kù)數(shù)量修改差數(shù)字長(zhǎng)整型表3 庫(kù)存表字 段 名 稱(chēng)字 段 類(lèi) 型長(zhǎng) 度必填備 注商品代碼數(shù)字長(zhǎng)整型主鍵商品名稱(chēng)文本50倉(cāng)庫(kù)文本10組合框單位文

3、本4必填組合框庫(kù)存數(shù)量數(shù)字長(zhǎng)整型必填默認(rèn)值:0最高儲(chǔ)備數(shù)字長(zhǎng)整型必填最低儲(chǔ)備數(shù)字長(zhǎng)整型表4 商品信息表字 段 名 稱(chēng)字 段 類(lèi) 型長(zhǎng) 度允 許 空 值備 注商品代碼文本20必填主鍵商品名稱(chēng)文本50必填條形碼文本20必填商品拼音編碼文本10必填單位文本4必填規(guī)格文本10必填產(chǎn)地文本20必填類(lèi)別文本10必填進(jìn)貨價(jià)數(shù)字單精度必填倉(cāng)庫(kù)文本10必填表5 倉(cāng)庫(kù)表字 段 名 稱(chēng)字 段 類(lèi) 型長(zhǎng) 度允 許 空 值備 注倉(cāng)庫(kù)ID數(shù)字長(zhǎng)整型必填主鍵倉(cāng)庫(kù)名稱(chēng)文本10倉(cāng)庫(kù)位置文本50倉(cāng)庫(kù)類(lèi)型文本50安全等級(jí)文本50倉(cāng)庫(kù)用途文本50倉(cāng)庫(kù)容量數(shù)字長(zhǎng)整型默認(rèn)值:0二、模塊設(shè)計(jì)根據(jù)前面的分析,并依據(jù)系統(tǒng)設(shè)計(jì),對(duì)整個(gè)系統(tǒng)進(jìn)行模

4、塊設(shè)計(jì),得到如圖1所示功能模塊。庫(kù)存管理系統(tǒng)入庫(kù)處理出庫(kù)處理報(bào)表統(tǒng)計(jì)庫(kù)存控制填寫(xiě)入庫(kù)單維護(hù)入庫(kù)單入庫(kù)信息查詢?nèi)霂?kù)信息顯示維護(hù)出庫(kù)單填寫(xiě)出庫(kù)單出庫(kù)信息顯示設(shè)置庫(kù)存限量庫(kù)存查詢報(bào)警處理催貨處理月入庫(kù)統(tǒng)計(jì)月出庫(kù)統(tǒng)計(jì)庫(kù)存統(tǒng)計(jì)出庫(kù)信息查詢圖1 庫(kù)存管理系統(tǒng)功能模塊三、 庫(kù)存管理系統(tǒng)設(shè)計(jì)過(guò)程1創(chuàng)建新數(shù)據(jù)庫(kù)啟動(dòng)Access 2003 創(chuàng)建“庫(kù)存管理系統(tǒng).mdb”空數(shù)據(jù)庫(kù)。 2.創(chuàng)建表根據(jù)表1-表5的結(jié)構(gòu)在“庫(kù)存管理系統(tǒng).mdb”中創(chuàng)建表。3設(shè)置各表間的關(guān)系按圖2所示的關(guān)系創(chuàng)建表間關(guān)系。4填寫(xiě)入庫(kù)/出庫(kù)單入庫(kù)/出庫(kù)處理最基本的工作內(nèi)容是填寫(xiě)入庫(kù)/出庫(kù)單,修改庫(kù)存。根據(jù)倉(cāng)庫(kù)管理的要求,應(yīng)在填寫(xiě)完入庫(kù)/出庫(kù)單后立

5、即修改庫(kù)存,將入庫(kù)數(shù)量加到庫(kù)存量中,將出庫(kù)數(shù)量從庫(kù)存量中減去。要完成這樣的計(jì)算操作可以使用更新查詢。因此,在實(shí)現(xiàn)這個(gè)功能模塊時(shí),首先建立更新查詢,然后創(chuàng)建填寫(xiě)入庫(kù)/出庫(kù)單窗體,并將更新查詢與窗體連接起來(lái),在關(guān)閉窗體時(shí)運(yùn)行該查詢,完成“庫(kù)存表”的修改操作。(1)創(chuàng)建更新庫(kù)存查詢查詢的功能是使用入庫(kù)信息更新庫(kù)存量和使用出庫(kù)信息更新庫(kù)存量。查詢名稱(chēng)分別為“更新庫(kù)存量(入庫(kù))”和“更新庫(kù)存量(出庫(kù))”。創(chuàng)建“更新庫(kù)存量(入庫(kù))”的步驟如下。 圖2 表間關(guān)系在數(shù)據(jù)庫(kù)窗口中單擊“查詢”容器,然后雙擊“在設(shè)計(jì)視圖中創(chuàng)建查詢”,調(diào)出“查詢?cè)O(shè)計(jì)視圖”窗口,并顯示一個(gè)“顯示表”對(duì)話框,在“顯示表”對(duì)話框中,單擊“

6、表”選項(xiàng)卡,然后分別雙擊“商品入庫(kù)表”和 “庫(kù)存表”,單擊【關(guān)閉】按鈕,關(guān)閉“顯示表”對(duì)話框。如圖3所示。圖3 顯示表對(duì)話框選擇“查詢”“更新查詢”菜單命令,在查詢“設(shè)計(jì)網(wǎng)格”中顯示一個(gè)“更新到”行。將“庫(kù)存表”中的“庫(kù)存數(shù)量”字段拖動(dòng)到“設(shè)計(jì)網(wǎng)格”的“字段”行的第1列中,將“商品入庫(kù)表”中的“標(biāo)志”字段拖動(dòng)到“設(shè)計(jì)網(wǎng)格”的“字段”行的第2列中,再在“庫(kù)存數(shù)量”字段的“更新到”單元格中輸入更新表達(dá)式“庫(kù)存表!庫(kù)存數(shù)量+商品入庫(kù)表!入庫(kù)數(shù)量”。在“標(biāo)志”字段的“更新到”單元格中輸入“1”,在“條件”單元格中輸入條件“0”,如圖4所示。圖4入庫(kù)更新查詢窗口為了能夠區(qū)分已經(jīng)處理的入庫(kù)單,在“商品入庫(kù)

7、表”中設(shè)置了一個(gè)“標(biāo)志”字段,當(dāng)該字段值為“0”時(shí),表示該入庫(kù)單的“入庫(kù)數(shù)量”還未加到“庫(kù)存表”中。所以,在建立更新查詢時(shí),應(yīng)只對(duì)“標(biāo)志”字段值為“0”的“庫(kù)存量”字段值進(jìn)行更新。更新后,應(yīng)將“標(biāo)志”字段值改為“1”,表示已經(jīng)處理完畢。 單擊工具欄的【保存】按鈕或選擇“文件”“保存”菜單命令保存該查詢,并命名為“更新庫(kù)存量(入庫(kù))”。“更新庫(kù)存量(出庫(kù))”查詢的創(chuàng)建步驟與上述步驟相同,結(jié)果如圖5所示。圖5 出庫(kù)更新查詢窗口(2)創(chuàng)建填寫(xiě)入庫(kù)/出庫(kù)單窗體 建立如圖6所示的入庫(kù)單窗體。方便輸入操作,設(shè)置“日期”字段的“輸入掩碼”為“0000-99-99;0;_;”,“默認(rèn)值”設(shè)置為“=date()

8、”。圖6入庫(kù)單窗體設(shè)置窗體的“格式”屬性和“數(shù)據(jù)”屬性,如圖7所示。圖7 設(shè)置窗體屬性(3)入庫(kù)單號(hào)查重:在“商品入庫(kù)表”中,每個(gè)入庫(kù)記錄對(duì)應(yīng)一個(gè)入庫(kù)單號(hào),即“入庫(kù)ID”值。為了避免輸入重復(fù)的入庫(kù)單號(hào),系統(tǒng)提供入庫(kù)單號(hào)查重功能。將輸入的入庫(kù)單號(hào)與表中的“入庫(kù)ID”進(jìn)行比較,如果兩值相同,則顯示提示信息。在“入庫(kù)單輸入”窗體的設(shè)計(jì)視圖中,單擊選中“入庫(kù)單號(hào)”文本框,右擊調(diào)出快捷菜單,選擇“屬性”命令,在調(diào)出的“入庫(kù)單號(hào)”文本框?qū)傩詫?duì)話框中,選擇“事件”選項(xiàng)卡,在“更新后”文本框中選中“事件過(guò)程”,如圖8所示。 圖8 創(chuàng)建“更新后”事件然后再單擊其后的“”按鈕,調(diào)出“Microsoft Visua

9、l編輯器”窗口,在光標(biāo)處插入下列代碼。 Private sub 入庫(kù)單號(hào)_afterupdate() With CodeContextObject rrr="商品入庫(kù)表!入庫(kù)ID="&Me!入庫(kù)單號(hào) DoCmd.ApplyFilter "uuu",rrr If(.RecordestClone.RecordCount>0) Then MsgBox"入庫(kù)單號(hào)已存在,請(qǐng)重新輸入!",vbOKOnly,"提示框“ 入庫(kù)單號(hào).SetFocus End If End With End sub(4)入庫(kù)單保存:輸入入庫(kù)單信息

10、后,單擊【保存】按鈕即可將輸入的數(shù)據(jù)添加到“商品入庫(kù)表”中?!氨4妗泵畎粹o的“單擊”事件的代碼如下。Private sub 保存r_click()DoCmd.GoToRecord , , acNewRecMe!入庫(kù)ID=Me!入庫(kù)單號(hào)Me!日期=Me!日期rMe!商品代碼=Me!商品代碼rMe!入庫(kù)數(shù)量=Me!入庫(kù)數(shù)量rMe!標(biāo)志="0"DoCmd.DoMenuItem acFromBar,acRecordsMenu,acSaveRecord, ,acMenuVer70Me!入庫(kù)單號(hào)=" "Me!日期r=DateMe!商品代碼r=" &quo

11、t;Me!入庫(kù)數(shù)量r=0Me.RefreshExit_保存r_click()(5)入庫(kù)單重填:如果數(shù)據(jù)輸入有誤或希望放棄此次輸入,可單擊【重填】按鈕。該命令按鈕的“單擊”事件代碼如下。 Private sub重填r_click() Me!入庫(kù)單號(hào) = " " Me!日期r = Date Me!商品代碼r = " " Me!入庫(kù)數(shù)量r = 0 End sub(6)入庫(kù)單取消:這里的取消操作實(shí)質(zhì)上是退出輸入操作,即關(guān)閉輸入窗口。該命令按鈕上的“單擊”事件代碼為: Private sub取消r_click()DoCmd.Close End sub(7)庫(kù)存量修

12、改:本系統(tǒng)在輸入完成所有入庫(kù)單后,對(duì)“庫(kù)存表”中的“庫(kù)存數(shù)量”進(jìn)行修改,即在關(guān)閉輸入窗口時(shí)完成修改操作。因此,可設(shè)置窗口的“關(guān)閉”事件,當(dāng)發(fā)生該事件時(shí)運(yùn)行已建立的“更新庫(kù)存量(入庫(kù))”更新查詢。更新庫(kù)存量代碼如下:Private sub form_close() DoCmd.OpenQuery "更新庫(kù)存量(入庫(kù))",acViewNormal,acEdit End sub 出庫(kù)單輸入窗體的建立內(nèi)容和方法與入庫(kù)單輸入相似。 5維護(hù)入庫(kù)/出庫(kù)單信息有時(shí),輸入的入庫(kù)單或出庫(kù)單數(shù)據(jù)在存盤(pán)后才發(fā)現(xiàn)錯(cuò)誤,就需要對(duì)其進(jìn)行修改。修改數(shù)據(jù)與輸入數(shù)據(jù)相似,修改完成后,應(yīng)對(duì)“庫(kù)存表”中“庫(kù)存數(shù)量

13、”作相應(yīng)更新。為了方便更新,在“商品入庫(kù)表”和“商品出庫(kù)表”中增加了一個(gè)記憶修改前和修改后差值的字段,分別是“入庫(kù)數(shù)量修改差”和“出庫(kù)數(shù)量修改差”,應(yīng)用該字段來(lái)更新“庫(kù)存數(shù)量”。要完成這樣的操作,需要建立更新查詢。(1)創(chuàng)建更新庫(kù)存查詢建立更新庫(kù)存查詢的方法與上述相同。當(dāng)“商品入庫(kù)表”或“商品出庫(kù)表”中的“標(biāo)志”字段值為“0”時(shí),表示還未對(duì)“庫(kù)存數(shù)量”進(jìn)行修改,因此要用這些數(shù)量值更新“庫(kù)存數(shù)量”值。但應(yīng)注意,更新完成后應(yīng)將相應(yīng)的“標(biāo)志”字段值由“0”改為“1”。“更新修改后的庫(kù)存數(shù)量(入庫(kù))”的設(shè)計(jì)視圖如圖9所示。圖9 更新修改后的庫(kù)存數(shù)量(入庫(kù))”的設(shè)計(jì)視圖(2)創(chuàng)建維護(hù)入庫(kù)/出庫(kù)窗體 商品

14、入庫(kù)單維護(hù)窗體如圖10所示。該窗體分為3個(gè)部分:上半部分為入庫(kù)單信息顯示區(qū);中間部分為修改區(qū),該區(qū)放置了3個(gè)文本框控件,用來(lái)修改制定的入庫(kù)單;下半部分為查詢區(qū),該區(qū)有3個(gè)文本框和一個(gè)組合框,用來(lái)查找需要修改的入庫(kù)單。窗體最下方有3個(gè)命令按鈕,實(shí)現(xiàn)查詢、保存和退出等功能。圖10 商品入庫(kù)單維護(hù)窗體 入庫(kù)單保存:修改數(shù)據(jù)時(shí),即可以在修改區(qū)直接輸入要修改的數(shù)據(jù),也可以先查找要修改的入庫(kù)單,然后在顯示區(qū)修改。當(dāng)修改區(qū)輸入了要修改的內(nèi)容后,直接單擊“保存”命令按鈕,即可保存已輸入的修改信息?!氨4妗泵畎粹o的“單擊”事件代碼如下。 Private sub命令1_click()Me!入庫(kù)ID.SetFoc

15、us DoCmd.FindRecord Me!文本1, , True, , True Me!入庫(kù)ID=Me!文本1 Me!入庫(kù)日期=Me!文本2 Me!入庫(kù)數(shù)量修改差=Me!文本3-Me!入庫(kù)數(shù)量 Me!入庫(kù)數(shù)量=Me!文本3 Me!標(biāo)志="0" Me!文本1=" " Me!文本2=Date Me!文本3=0 Me.Refresh End sub入庫(kù)單查詢:在查詢區(qū)輸入查詢內(nèi)容,然后單擊【查詢】按鈕查找相應(yīng)的內(nèi)容,如果找到,信息顯示區(qū)指針定位到該記錄,此時(shí)可對(duì)該記錄進(jìn)行修改。為了實(shí)現(xiàn)這樣的查詢,需要對(duì)每一輸入框的“失去焦點(diǎn)”事件進(jìn)行記錄定位設(shè)置,然后通過(guò)

16、“查詢”命令按鈕的“單擊”事件完成實(shí)際定位。4個(gè)輸入控件的“失去焦點(diǎn)”事件的代碼如下。入庫(kù)單號(hào)“失去焦點(diǎn)”事件代碼:Me!入庫(kù)ID.SetFocusDoCmd.FindRecord Me!文本4, , True, , TrueMe!命令5.Visible=True入庫(kù)日期“失去焦點(diǎn)”事件代碼:Me!入庫(kù)日期.SetFocusDoCmd.FindRecord Me!文本5, , True, , TrueMe!命令5.Visible=True入庫(kù)數(shù)量“失去焦點(diǎn)”事件代碼:Me!入庫(kù)數(shù)量.SetFocusDoCmd.FindRecord Me!文本6, , True, , TrueMe!命令5.Vi

17、sible=True商品代碼“失去焦點(diǎn)”事件代碼:Me!商品代碼.SetFocusDoCmd.FindRecord Me!組合1, , True, , TrueMe!命令5.Visible=True【查詢】按鈕的“單擊”事件VBA代碼:DoCmd.FindNext【退出】按鈕的功能是關(guān)閉窗體(3)修改庫(kù)存量:與入庫(kù)輸入設(shè)計(jì)一樣,修改入庫(kù)單后對(duì)“庫(kù)存數(shù)量”的修改也是在關(guān)閉輸入窗口時(shí)完成,即設(shè)置窗口的“關(guān)閉”事件,當(dāng)發(fā)生該事件時(shí)運(yùn)行已建立的“更新修改后的庫(kù)存數(shù)量(入庫(kù))”更新查詢。所設(shè)代碼如下:DoCmd.OpenQuery "更新修改后的庫(kù)存數(shù)量(入庫(kù))", acViewNo

18、rmal, acEdit6.查詢?nèi)霂?kù)/出庫(kù)單信息對(duì)入庫(kù)/出庫(kù)信息的查詢可按入庫(kù)/出庫(kù)單中的任意內(nèi)容查詢。無(wú)論是查詢?nèi)霂?kù)信息,還是查詢出庫(kù)信息,其設(shè)計(jì)方法相同,只是窗體所用數(shù)據(jù)源不同。因此,只介紹入庫(kù)信息查詢。入庫(kù)信息查詢控制窗體如圖11所示。圖11 入庫(kù)信息查詢窗體(1)高級(jí)查詢單擊【高級(jí)查詢】按鈕,調(diào)出“入庫(kù)信息高級(jí)查詢”窗體,如圖12所示。在窗體中相應(yīng)的文本框內(nèi)輸入要查詢的內(nèi)容,然后單擊【查找記錄】按鈕,這時(shí)系統(tǒng)將在“商品入庫(kù)表”中查找記錄并顯示在窗體中。使用向?qū)?chuàng)建以“商品入庫(kù)表”為數(shù)據(jù)源的“表格”式窗體。調(diào)整窗體頁(yè)眉區(qū)大小,并在頁(yè)眉區(qū)上方放置1個(gè)標(biāo)簽、1個(gè)組合框和3個(gè)文本框。3個(gè)文本框

19、用來(lái)輸入“入庫(kù)單號(hào)”、“入庫(kù)日期”、“入庫(kù)數(shù)量”等內(nèi)容,組合框用來(lái)選擇“商品代碼”。在窗體頁(yè)腳區(qū)放置2個(gè)命令按鈕,“查找記錄”和“退出”。保存查詢窗體,并命名為“入庫(kù)信息高級(jí)查詢”。圖12 高級(jí)查詢窗口編寫(xiě)查詢代碼,對(duì)每個(gè)文本框的“失去焦點(diǎn)”事件進(jìn)行記錄定位設(shè)置,然后通過(guò)“查找記錄”命令按鈕的“單擊”事件完成實(shí)際定位。4個(gè)輸入控件的“失去焦點(diǎn)”事件的代碼如下。入庫(kù)單號(hào)“失去焦點(diǎn)”事件代碼: Private Sub 文本21_LostFocus() On Error GoTo Err_文本21_LostFocus Me!入庫(kù)ID.SetFocusDoCmd.FindRecord Me!文本21,

20、 , True, , True Me!命令5.Visible = TrueExit_文本21_LostFocus: Exit SubErr_文本21_LostFocus: MsgBox Err.Description Resume Exit_文本21_LostFocusEnd Sub入庫(kù)日期“失去焦點(diǎn)”事件代碼: Private Sub 文本2_LostFocus() On Error GoTo Err_文本2_LostFocus Me!入庫(kù)日期.SetFocusDoCmd.FindRecord Me!文本2, , True, , True Me!命令5.Visible = TrueExit_

21、文本2_LostFocus: Exit SubErr_文本2_LostFocus: MsgBox Err.Description Resume Exit_文本2_LostFocusEnd Sub商品代碼“失去焦點(diǎn)”事件代碼: Private Sub 組合25_LostFocus()On Error GoTo Err_組合25_LostFocus Me!商品代碼.SetFocusDoCmd.FindRecord Me!組合25, , True, , True Me!命令5.Visible = TrueExit_組合25_LostFocus: Exit SubErr_組合25_LostFocus:

22、 MsgBox Err.Description Resume Exit_組合25_LostFocusEnd Sub入庫(kù)數(shù)量“失去焦點(diǎn)”事件代碼:Private Sub 文本27_LostFocus()On Error GoTo Err_文本27_LostFocus Me!入庫(kù)數(shù)量.SetFocusDoCmd.FindRecord Me!文本27, , True, , True Me!命令5.Visible = TrueExit_文本27_LostFocus: Exit SubErr_文本27_LostFocus: MsgBox Err.Description Resume Exit_文本27_

23、LostFocusEnd Sub“查找記錄”命令按鈕的“單擊”事件代碼:Private Sub 命令5_Click() DoCmd.FindNextEnd Sub(2)按條件查詢“按入庫(kù)數(shù)量查詢”和“按入庫(kù)日期查詢”,通過(guò)創(chuàng)建參數(shù)查詢來(lái)實(shí)現(xiàn)查詢。在建立這兩個(gè)查詢之前先建立“所有入庫(kù)信息查詢”。創(chuàng)建“所有入庫(kù)信息查詢”??赏ㄟ^(guò)創(chuàng)建選擇查詢來(lái)完成該查詢的創(chuàng)建。創(chuàng)建結(jié)果如圖13所示。圖13 按所有入庫(kù)信息查詢創(chuàng)建“按入庫(kù)數(shù)量查詢”。以“所有入庫(kù)信息查詢”為數(shù)據(jù)源,在設(shè)計(jì)視圖中創(chuàng)建該查詢,如圖14所示。圖14 按入庫(kù)數(shù)量查詢?cè)凇叭霂?kù)數(shù)量”字段的“條件”行中輸入: >=請(qǐng)輸入入庫(kù)數(shù)量下限值 And

24、 <=請(qǐng)輸入入庫(kù)數(shù)量上限值 創(chuàng)建“按入庫(kù)日期查詢”。與上一個(gè)查詢一樣,通過(guò)創(chuàng)建參數(shù)查詢來(lái)創(chuàng)建“按入庫(kù)日期查詢”,如圖15所示。在設(shè)計(jì)視圖中設(shè)置相應(yīng)的“條件”行: >=請(qǐng)輸入日期上限值(*-*-*) And <=請(qǐng)輸入日期下限值(*-*-*)建立查詢后,以所建查詢?yōu)閿?shù)據(jù)源,創(chuàng)建“按入庫(kù)數(shù)量查詢”和“按入庫(kù)日期查詢”窗體,以便更好顯示查詢結(jié)果 。圖15 按日期查詢窗口(3)創(chuàng)建查詢控制窗體 創(chuàng)建如圖16所示的“入庫(kù)查詢控制窗體”。該窗體主要有入庫(kù)信息顯示區(qū)和查詢控制區(qū)。查詢控制區(qū)共有3個(gè)命令按鈕。圖16 入庫(kù)信息查詢窗口創(chuàng)建入庫(kù)查詢宏組,創(chuàng)建后的宏組如圖17所示。設(shè)置宏組中4個(gè)宏

25、打開(kāi)相對(duì)應(yīng)的4個(gè)窗體“入庫(kù)單查詢主窗體”、“入庫(kù)單信息高級(jí)查詢”、“按入庫(kù)數(shù)量查詢”和“按入庫(kù)日期查詢”。最后保存宏組為“查入庫(kù)單”。圖17 入庫(kù)單查詢宏窗口設(shè)置“入庫(kù)單查詢主窗體”窗體中命令按鈕的“單擊”事件,在設(shè)計(jì)視圖中打開(kāi)窗體“入庫(kù)單查詢主窗體”,如圖17所示。單擊選中“高級(jí)查詢”命令按鈕,調(diào)出“屬性”對(duì)話框,單擊“事件”選項(xiàng)卡,從“單擊”下拉列表中選中“查入庫(kù)單.打開(kāi)入庫(kù)信息高級(jí)查詢窗體”,如圖18所示。 用同樣的方法,將“按入庫(kù)數(shù)量查詢”和“按入庫(kù)日期查詢”命令按鈕的“單擊”事件分別設(shè)置為“查入庫(kù)單.打開(kāi)入庫(kù)數(shù)量查詢”和“查入庫(kù)單.打開(kāi)入庫(kù)日期查詢”。圖18 設(shè)置按鈕單擊事件 7報(bào)警

26、處理報(bào)警處理主要將“庫(kù)存表”中的“庫(kù)存數(shù)量”與“最高儲(chǔ)備”進(jìn)行比較,當(dāng)“庫(kù)存數(shù)量”高于“最高儲(chǔ)備”時(shí),顯示這些需要報(bào)警商品的相關(guān)信息。(1)建立報(bào)警查詢由于報(bào)警查詢中需要計(jì)算“庫(kù)存數(shù)量”與“最高儲(chǔ)備”的差。因此,可通過(guò)創(chuàng)建計(jì)算查詢來(lái)建立報(bào)警查詢。在數(shù)據(jù)庫(kù)窗口的“對(duì)象”列表框中選中“查詢”選項(xiàng),雙擊“使用向?qū)?chuàng)建查詢”。在“表/查詢”下拉列表框中選擇“表:庫(kù)存表”,選取除“最低儲(chǔ)備”以外的全部字段,如圖20所示。圖20 建立報(bào)警查詢單擊【下一步】按鈕兩次,保存查詢?yōu)椤皥?bào)警查詢”,并選中“修改查詢?cè)O(shè)計(jì)”單選按鈕。 單擊【完成】按鈕,在調(diào)出的“報(bào)警查詢”設(shè)計(jì)視圖中,添加一個(gè)計(jì)算字段“表達(dá)式1: 庫(kù)存

27、表!庫(kù)存數(shù)量-庫(kù)存表!最高儲(chǔ)量”,在所加計(jì)算字段的“條件”行上輸入條件“>0”,如圖21 所示保存查詢。圖21 報(bào)警查詢?cè)O(shè)計(jì)視圖(2)創(chuàng)建報(bào)警報(bào)表創(chuàng)建了報(bào)警查詢后,以此查詢?yōu)閿?shù)據(jù)源創(chuàng)建一個(gè)報(bào)警報(bào)表,使其顯示需要報(bào)警的消息。使用向?qū)?chuàng)建報(bào)表,調(diào)出“報(bào)表向?qū)А贝翱?。在“?查詢”下拉列表框中選擇“報(bào)警查詢”,選取全部字段。單擊【下一步】按鈕,確認(rèn)是否添加分組級(jí)別,該報(bào)表不分組。單擊【下一步】按鈕,以“庫(kù)存數(shù)量”降序排序。單擊【下一步】按鈕,確定布局及方向?yàn)椤氨砀瘛薄ⅰ翱v向”。單擊【下一步】按鈕,確定報(bào)表采用的樣式為“組織”。單擊【下一步】按鈕,指定報(bào)表的名稱(chēng),并選中“修改報(bào)表設(shè)計(jì)”單選按鈕,

28、單擊【完成】按鈕。 在“報(bào)警表”設(shè)計(jì)視圖中,修改報(bào)表設(shè)計(jì),如圖22所示。圖22 報(bào)警表設(shè)計(jì)視圖(3)創(chuàng)建報(bào)警窗體報(bào)警處理只要打開(kāi)報(bào)警表,顯示相應(yīng)的報(bào)警信息就可以了。在報(bào)警之前應(yīng)判斷查詢結(jié)果是否有需要報(bào)警的商品。實(shí)現(xiàn)這一功能的代碼如下:Private Sub Form_Open(Cancel As Integer)With CodeContextObject rrr = "報(bào)警查詢!商品代碼 <> Null" DoCmd.ApplyFilter "uuu", rrr If (.RecordsetClone.RecordCount > 0)

29、 Then MsgBox "有需要報(bào)警的產(chǎn)品!", vbOKOnly, "提示框" DoCmd.Close DoCmd.OpenReport "報(bào)警表", acViewPreview Else MsgBox "沒(méi)有需要報(bào)警的產(chǎn)品!", vbOKOnly, "提示框" DoCmd.Close End IfEnd WithEnd Sub為了能夠在打開(kāi)報(bào)警表之前運(yùn)行這一代碼,建立一個(gè)報(bào)警臨時(shí)窗體,將上述代碼放到該窗體的“打開(kāi)”事件中,如圖23所示。這樣當(dāng)打開(kāi)該窗體時(shí),就可以運(yùn)行這段代碼。這里,報(bào)警臨時(shí)

30、窗體的作用就是運(yùn)行該代碼,窗體中無(wú)任何設(shè)置。(4)催貨處理與報(bào)警處理相似,催貨處理是將“庫(kù)存表”中的“庫(kù)存數(shù)量”與“最低儲(chǔ)備”進(jìn)行比較,當(dāng)“庫(kù)存數(shù)量”低于“最低儲(chǔ)備”時(shí),顯示這些需要催貨商品的相關(guān)信息。實(shí)現(xiàn)催貨處理功能的步驟如下。建立一個(gè)催貨查詢,設(shè)計(jì)結(jié)果如圖24所示。 圖23 報(bào)警臨時(shí)窗體圖24 崔貨查詢使用向?qū)?chuàng)建一個(gè)催貨報(bào)表,報(bào)表數(shù)據(jù)源為“催貨查詢”,如圖25所示。 圖25 崔貨表(3)建立一個(gè)催貨臨時(shí)窗體,設(shè)置窗體“打開(kāi)”事件,事件代碼為:Private Sub Form_Open(Cancel As Integer)With CodeContextObject rrr="催

31、貨查詢!商品代碼 <> Null" DoCmd.ApplyFilter "uuu", rrr If(.RecordsetClone.RecordCount>0) Then MsgBox "有需要催貨的產(chǎn)品!", vbOKOnly, "提示框" DoCmd.Close DoCmd.OpenReport "催貨表", acViewPreview Else MsgBox "沒(méi)有需要催貨的產(chǎn)品!", vbOKOnly, "提示框" DoCmd.Close

32、End IfEnd WithEnd Sub8報(bào)表設(shè)計(jì)用戶需要系統(tǒng)為其提供統(tǒng)計(jì)功能,使管理者隨時(shí)了解和掌握某一時(shí)期入庫(kù)、出庫(kù)和庫(kù)存信息。本文系統(tǒng)提供了統(tǒng)計(jì)功能,并以報(bào)表形式顯示所有統(tǒng)計(jì)信息。(1)設(shè)計(jì)思路報(bào)表統(tǒng)計(jì)功能主要包括:庫(kù)存統(tǒng)計(jì)、按月入庫(kù)統(tǒng)計(jì)和按月出庫(kù)統(tǒng)計(jì)。通過(guò)它們統(tǒng)計(jì)某年某月入庫(kù)、出庫(kù)和庫(kù)存的匯總信息。由于需要對(duì)每種商品的入庫(kù)數(shù)量和出庫(kù)數(shù)量進(jìn)行匯總,在報(bào)表輸出之前應(yīng)當(dāng)進(jìn)行計(jì)算。報(bào)表統(tǒng)計(jì)包括如下功能: 創(chuàng)建統(tǒng)計(jì)查詢,計(jì)算出指定日期每種商品的入庫(kù)總量和出庫(kù)總量。以所建統(tǒng)計(jì)查詢?yōu)閿?shù)據(jù)源,使用向?qū)?chuàng)建相應(yīng)的報(bào)表。設(shè)置報(bào)表的調(diào)用方式。(2)創(chuàng)建統(tǒng)計(jì)查詢由于系統(tǒng)要求統(tǒng)計(jì)出指定日期的入庫(kù)數(shù)量,因此,需

33、要?jiǎng)?chuàng)建具有統(tǒng)計(jì)功能的參數(shù)查詢。 以“商品入庫(kù)表”和“商品信息”為數(shù)據(jù)源創(chuàng)建查詢“按月統(tǒng)計(jì)入庫(kù)信息”。包含字段有“商品代碼”、“商品名稱(chēng)”、“單位”、“規(guī)格”、“入庫(kù)數(shù)量”和“入庫(kù)日期”等。在查詢的設(shè)計(jì)視圖中,添加一個(gè)新字段,統(tǒng)計(jì)月份“Month(商品入庫(kù)表.入庫(kù)日期)”。在所加字段的“條件”行上輸入條件“Month(請(qǐng)輸入年月(××××-××)”。單擊工具欄上的【合計(jì)】按鈕,顯示“總計(jì)”行,并把所有字段設(shè)置成“分組”。單擊“入庫(kù)數(shù)量”字段的“總計(jì)”行,從下拉列表中選中“總計(jì)”,單擊“入庫(kù)日期”字段列顯示行上的復(fù)選框。設(shè)計(jì)結(jié)果如圖26所

34、示。圖26 統(tǒng)計(jì)入庫(kù)查詢保存該查詢,并命名為“按月統(tǒng)計(jì)入庫(kù)信息”。(3)創(chuàng)建顯示報(bào)表完成統(tǒng)計(jì)查詢的創(chuàng)建后,可以開(kāi)始創(chuàng)建按月入庫(kù)統(tǒng)計(jì)報(bào)表。先使用報(bào)表向?qū)?chuàng)建一個(gè)報(bào)表,然后再使用設(shè)計(jì)視圖修改。單擊數(shù)據(jù)庫(kù)窗口對(duì)象列表框中的“報(bào)表”,雙擊“使用向?qū)?chuàng)建報(bào)表”,調(diào)出“報(bào)表向?qū)А睂?duì)話框。在“報(bào)表向?qū)А睂?duì)話框中,在“表/查詢”下拉列表框中選擇“按月統(tǒng)計(jì)入庫(kù)信息”,選取全部字段。單擊【下一步】按鈕,在調(diào)出的對(duì)話框中確定是否添加分組級(jí)別,選擇不分組。單擊【下一步】按鈕,在調(diào)出的對(duì)話框中確定排序次序,選擇“入庫(kù)數(shù)量之總計(jì)”作為排序字段。單擊【下一步】按鈕,在調(diào)出的對(duì)話框中確定布局方式,選擇“表格”的布局方式。單擊

35、【下一步】按鈕,在調(diào)出的對(duì)話框中確定使用的樣式,選擇樣式為“組織”。單擊【下一步】按鈕,在對(duì)話框的“請(qǐng)輸入報(bào)表的標(biāo)題:”文本框中輸入報(bào)表的名字“月入庫(kù)統(tǒng)計(jì)表”,并在窗口的下方選中“修改報(bào)表設(shè)計(jì)”單選按鈕。單擊【完成】按鈕,進(jìn)入設(shè)計(jì)窗口,調(diào)整各個(gè)部件的位置,使布局更加合理美觀,如圖27所示。圖27 月入庫(kù)統(tǒng)計(jì)表設(shè)計(jì)(4)編寫(xiě)調(diào)用模塊為了方便報(bào)表使用,此處編寫(xiě)了調(diào)用模塊,并通過(guò)系統(tǒng)主菜單上的3個(gè)命令按鈕來(lái)調(diào)用該模塊,打開(kāi)不同報(bào)表。建立模塊的方法如下。單擊數(shù)據(jù)庫(kù)窗口“對(duì)象”列表框中的“模塊”,單擊【新建】按鈕,調(diào)出“模塊編輯窗口”,如圖28所示。圖28 調(diào)用模塊設(shè)計(jì)在“模塊編輯窗口”輸入下列代碼。P

36、ublic Function onecheck(Strname) Select Case StrnameCase “月入庫(kù)統(tǒng)計(jì)” stDocName=”月入庫(kù)統(tǒng)計(jì)表”Case “月出庫(kù)統(tǒng)計(jì)” stDocName=”月出庫(kù)統(tǒng)計(jì)表”Case Else stDocName=”庫(kù)存表” End SelectDoCmd.OpenReport stDocName, acPreviewEnd Function保存該模塊,模塊名為“模塊1”。可通過(guò)主菜單中的“月入庫(kù)統(tǒng)計(jì)”、“月初庫(kù)統(tǒng)計(jì)”和“庫(kù)存統(tǒng)計(jì)”等3個(gè)命令按鈕的“單擊”事件來(lái)調(diào)用該模塊。四、庫(kù)存管理系統(tǒng)的集成當(dāng)用戶需要的全部窗體、報(bào)表和查詢都建好以后,就

37、應(yīng)將它們集成在一起,形成完整的系統(tǒng),才能方便用戶使用。在“庫(kù)存管理系統(tǒng)”實(shí)例中使用多頁(yè)窗體來(lái)集成系統(tǒng),實(shí)現(xiàn)功能選擇。1.系統(tǒng)主控界面設(shè)計(jì)庫(kù)存管理系統(tǒng)由4大功能模塊組成,它們由主控窗體中的選項(xiàng)卡來(lái)實(shí)現(xiàn)。通過(guò)選擇不同的選項(xiàng)卡進(jìn)入不同的功能模塊,再通過(guò)選項(xiàng)卡中的不同命令按鈕進(jìn)入下一級(jí)子模塊。單擊主控窗體的“入庫(kù)處理”選項(xiàng)卡,進(jìn)入“入庫(kù)處理”子模塊,包括“填寫(xiě)入庫(kù)單”、“維護(hù)入庫(kù)單”、“入庫(kù)信息查詢”和“入庫(kù)信息顯示”4個(gè)按鈕,如圖29所示。圖29 入庫(kù)處理選項(xiàng)卡單擊主控窗體的“出庫(kù)處理”選項(xiàng)卡,進(jìn)入“出庫(kù)處理”子模塊,包括“填寫(xiě)出庫(kù)單”、“維護(hù)出庫(kù)單”、“出庫(kù)信息查詢”和“出庫(kù)信息顯示”4個(gè)按鈕,如

38、圖30所示。圖30 “出庫(kù)處理”選項(xiàng)卡單擊主控窗體的“庫(kù)存處理”選項(xiàng)卡,進(jìn)入“庫(kù)存處理”子模塊,包括“設(shè)置庫(kù)存限量”、“庫(kù)存查詢”、“報(bào)警處理”和“催貨處理”4個(gè)按鈕,如圖31所示。單擊主控窗體的“報(bào)表統(tǒng)計(jì)”選項(xiàng)卡,進(jìn)入“報(bào)表統(tǒng)計(jì)”子模塊,包括“月入庫(kù)統(tǒng)計(jì)”、“月出庫(kù)統(tǒng)計(jì)”、和“庫(kù)存統(tǒng)計(jì)”3個(gè)按鈕,如圖32所示。圖31 “庫(kù)存處理”選項(xiàng)卡圖32 “報(bào)表統(tǒng)計(jì)”選項(xiàng)卡(1)選項(xiàng)卡設(shè)置“選項(xiàng)卡”控件可以將不同集合的信息放在不同頁(yè)面上,它是創(chuàng)建多頁(yè)窗體最容易和最有效的方法。在主控窗體中設(shè)置選項(xiàng)卡的方法如下。打開(kāi)窗體設(shè)計(jì)視圖,單擊“工具箱”中的【選項(xiàng)卡控件】按鈕,在窗體上要放置選項(xiàng)卡的位置單擊,Acce

39、ss將在窗體中自動(dòng)添加有2頁(yè)的選項(xiàng)卡。在選項(xiàng)卡上單擊鼠標(biāo)右鍵,在調(diào)出的快捷菜單中單擊“插入頁(yè)”命令,這時(shí)在選項(xiàng)卡上插入了一頁(yè),重復(fù)以上步驟再插入一頁(yè)。 選中選項(xiàng)卡的“頁(yè)1”,調(diào)出屬性對(duì)話框,單擊“格式”選項(xiàng)卡,并在“標(biāo)題行”中輸入“入庫(kù)處理”,并使用同樣的方法在“頁(yè)2”、“頁(yè)3”和“頁(yè)4”的“標(biāo)題行”輸入“出庫(kù)處理”、“庫(kù)存控制”和“報(bào)表處理”。如圖33所示。圖33 選項(xiàng)卡設(shè)置 圖34 選項(xiàng)卡屬性設(shè)置選中選項(xiàng)卡控件,設(shè)置選項(xiàng)卡的屬性值,如圖34所示。單擊第一頁(yè),在適當(dāng)?shù)奈恢梅胖谩疤顚?xiě)入庫(kù)單”、“維護(hù)入庫(kù)單”、“入庫(kù)信息查詢”和“入庫(kù)信息顯示”4個(gè)命令按鈕,并設(shè)置它們相應(yīng)的屬性,如圖35所示。用

40、同樣的方法在第二頁(yè)、第三頁(yè)和第四頁(yè)上放置相應(yīng)的命令按鈕。圖35 添加命令按鈕在選項(xiàng)卡控件的上方,添加標(biāo)題“庫(kù)存管理系統(tǒng)”,在選項(xiàng)卡控件的下方添加一個(gè)“返回”命令按鈕,并設(shè)置它們的屬性。(2)命令按鈕事件設(shè)置在使用該系統(tǒng)時(shí),主要是通過(guò)單擊主控窗體上的命令按鈕來(lái)選擇相應(yīng)的功能。因此,對(duì)每一個(gè)命令按鈕的“單擊”事件進(jìn)行設(shè)置。在使用該系統(tǒng)時(shí),主要是通過(guò)單擊主控窗體上的命令按鈕來(lái)選擇相應(yīng)的功能。因此,對(duì)每一個(gè)命令按鈕的“單擊”事件進(jìn)行設(shè)置。本系統(tǒng)中有些命令按鈕的“單擊”事件是打開(kāi)相應(yīng)的窗體,如入庫(kù)處理中的“填寫(xiě)入庫(kù)單”、“維護(hù)入庫(kù)單”,出庫(kù)處理中的“填寫(xiě)出庫(kù)單”、“維護(hù)出庫(kù)單”,庫(kù)存控制中的“催貨處理”、“報(bào)警處理”等命令按鈕;有些命令按鈕則打開(kāi)相應(yīng)的宏,如入庫(kù)處理的“入庫(kù)信息查詢”,出庫(kù)處理中的“出庫(kù)信息查詢”,庫(kù)存控制中的“庫(kù)存信息查詢”等命令按鈕;有些命令按鈕則是調(diào)用相應(yīng)的模塊,如庫(kù)存控制中的“月入庫(kù)統(tǒng)計(jì)”、“月出庫(kù)統(tǒng)計(jì)”和“庫(kù)存統(tǒng)計(jì)”等命令按鈕。下面選擇有代表性的命令按鈕進(jìn)行介紹,其余請(qǐng)參照自行設(shè)置。 “填寫(xiě)入庫(kù)單”命令按鈕上的“單擊”事件:選中“填寫(xiě)入庫(kù)單”命令按鈕,調(diào)出屬性設(shè)置對(duì)話框,在“事件”選項(xiàng)卡中選擇“單擊”下拉列表中的“事件過(guò)程”。調(diào)出代碼編輯器,在光標(biāo)處輸入如下代碼。 Dim stDocName As StringDim stLinkCriteria A

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論