




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第12章Access在進銷存管理中的應(yīng)用 本章學(xué)習(xí)要點 了解進銷存系統(tǒng)的概念 系統(tǒng)的功能設(shè)計 系統(tǒng)的模塊設(shè)計 表和表關(guān)系的設(shè)計 查詢的設(shè)計 窗體的創(chuàng)建 報表的創(chuàng)建 宏命令和VBA代碼的創(chuàng)建 系統(tǒng)的運行與應(yīng)用 12.1 實 例 導(dǎo) 航 系統(tǒng)功能 開發(fā)要點 12.1.1 系統(tǒng)功能 我們所設(shè)計的進銷存系統(tǒng)的主要功能包括如下。 商品基本信息的管理:用來處理進出庫的商品信息,包括新建、修改、刪除和查詢等。 訂單信息的處理:是整個系統(tǒng)的工作流程的起點,包括訂單的增減、查詢,以及訂單在處理過程中(如發(fā)貨確認(rèn)等)狀態(tài)的改變。 產(chǎn)品入庫出庫管理:完成記錄,修改商品入出庫信息,并有庫存報表功能。 查詢功能:允許管
2、理員可以按編號、日期對進貨商的銷售信息進行查詢;對入庫的產(chǎn)品信息進行詳細的查詢,包括編號、名稱、入庫時間等。 12.1.2 開發(fā)要點 理解數(shù)據(jù)表的結(jié)構(gòu),掌握各表之間關(guān)系的建立原理,熟悉查詢和窗體的設(shè)計,對進銷存管理系統(tǒng)有比較清楚的了解,從而開發(fā)出完整的進銷存管理系統(tǒng)。 12.2 系統(tǒng)需求分析設(shè)計 需求分析 模塊設(shè)計 12.2.1 需求分析 用戶的需求主要有以下內(nèi)容。 將訂單、商品、供應(yīng)商、客戶、商品、進貨、銷售等信息錄入管理系統(tǒng),提供修改和查詢。 能夠?qū)Ω黝愋畔⑻峁┎樵儭?能夠統(tǒng)計進出庫的各類信息,對進庫、銷售、庫存進行匯總,協(xié)調(diào)各部門的相互工作。 12.2.2 模塊設(shè)計 按照前面的需求分析,
3、我們設(shè)計的進銷存系統(tǒng)分為以下幾個模塊。 系統(tǒng)的基本配置模塊:包括產(chǎn)品、供應(yīng)商、客戶的基本資料的錄入。 產(chǎn)品進出庫處理模塊:主要包括對訂單信息的處理和采購單的處理,一般產(chǎn)品入出庫的處理。 查詢模塊:對系統(tǒng)中的各類信息,如供應(yīng)商資料、出入庫詳細資料等進行查詢,支持多個條件的復(fù)合查詢。 報表顯示模塊:根據(jù)用戶的需要和查詢結(jié)果來生成報表。 12.3 數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計 數(shù)據(jù)表結(jié)構(gòu)需求分析 建立空數(shù)據(jù)庫系統(tǒng) 創(chuàng)建數(shù)據(jù)表 定義數(shù)據(jù)表之間的關(guān)系 12.3.1 數(shù)據(jù)表結(jié)構(gòu)需求分析 在本系統(tǒng)中,我們設(shè)計了10張數(shù)據(jù)表,各個表存儲的信息如下所示。 “管理員”表:存放系統(tǒng)管理人員信息,一般是企業(yè)管理人員的用戶名和密碼
4、。 “產(chǎn)品信息”表:存儲產(chǎn)品的基本信息,如產(chǎn)品編號、產(chǎn)品名稱、規(guī)格型號、計量單位、供應(yīng)商編號、產(chǎn)品類別等。 “供應(yīng)商”表:存放產(chǎn)品供應(yīng)商的相關(guān)信息,比如供應(yīng)商編號、供應(yīng) 商名稱、聯(lián)系人姓名、聯(lián)系人職務(wù)、業(yè)務(wù)電話、電子郵件等。 “客戶”表:記錄客戶的基本信息,比如客戶編號、客戶姓名、客戶地址、聯(lián)系電話、電子郵件、備注等。 “訂單”表:記錄訂單的基本信息,如訂單編號、客戶編號、產(chǎn)品編號、供應(yīng)商編號、銷售單價、訂購數(shù)量、訂單金額、預(yù)定時間、訂單時間等基本預(yù)訂信息。 “訂單處理明細”表:除了訂單基本信息外,還要增加付款信息和發(fā)貨信息,如付款方式、付款時間、發(fā)貨地址、發(fā)貨時間、發(fā)貨人等。 “入庫記錄”表
5、:存放產(chǎn)品入庫的信息。 “出庫記錄”表:存放產(chǎn)品出庫的信息。 “業(yè)務(wù)類別”表:記錄進出庫的業(yè)務(wù)類型。 “庫存”表:記錄產(chǎn)品的庫存信息。 12.3.2 建立空數(shù)據(jù)庫系統(tǒng) 建立一個“進銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫。 第一步:打開Access 2007,單擊【開始使用Microsoft Office Access】頁中的【空白數(shù)據(jù)庫】按鈕,如下圖所示。 第二步:系統(tǒng)出現(xiàn)如下圖所示的窗口,選擇合適的路徑,輸入數(shù)據(jù)庫名稱為“進銷存系統(tǒng).accdb”。 12.3.2 建立空數(shù)據(jù)庫系統(tǒng) 建立一個“進銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫。 第三步:單擊【創(chuàng)建】按鈕,完成該數(shù)據(jù)庫的創(chuàng)建。系統(tǒng)自動建立了一
6、個名為“表1”的數(shù)據(jù)表。 12.3.3 創(chuàng)建數(shù)據(jù)表 “管理員”表 “產(chǎn)品信息”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “供應(yīng)商”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “客戶”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “訂單”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “訂單處理明細”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “入庫記錄”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “出庫記錄”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “業(yè)務(wù)類別”表 “庫存”表 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 建立“產(chǎn)品信息”表和“出庫記錄”表之間的表關(guān)系。 第一步:啟動Access 2007,打開“進銷存管理系統(tǒng).accdb”。 第二步:切換到【數(shù)據(jù)庫工具】選項卡,單擊【關(guān)系】按鈕,如下
7、圖所示。 第三步:單擊右鍵,在彈出的快捷菜單中選擇【顯示表】命令,按住Ctrl鍵,選擇所有的表,然后單擊【添加】按鈕,把所有的表都添加上去,如下圖所示。 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 建立“產(chǎn)品信息”表和“出庫記錄”表之間的表關(guān)系。 第四步:設(shè)置表的參照完整性。我們以“產(chǎn)品信息”表中的“產(chǎn)品編號”字段與“出庫記錄”表中的“產(chǎn)品編號”字段為例。按下鼠標(biāo)左鍵拖動“產(chǎn)品信息”表中的“產(chǎn)品編號”字段到“出庫記錄”表中的“產(chǎn)品編號”字段上,釋放鼠標(biāo)左鍵,系統(tǒng)彈出【編輯關(guān)系】對話框,如下圖所示。 第五步:選中【實施參照完整性】復(fù)選框,這樣就建立了表之間的一對多關(guān)系,如下圖所示。 12.3.4 定義數(shù)
8、據(jù)表之間的關(guān)系 按照同樣的步驟,可以建立起其他表之間的關(guān)系。最終建立了下面的關(guān)系圖。 我們設(shè)計的數(shù)據(jù)庫表中,各種表關(guān)系如下表所示。 12.4 窗體的實現(xiàn) “登錄”窗體 “切換面板”窗體 “訂單處理”窗體 “發(fā)貨確認(rèn)”窗體 “產(chǎn)品進庫”窗體 “供應(yīng)商查詢編輯”窗體 “進貨資料查詢”窗體 “密碼管理”窗體 12.4.1 “登錄”窗體 運用“模式對話框”窗體,設(shè)計本系統(tǒng)的“登錄”窗體。 第一步:啟動Access 2007,打開“進銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。 第二步:切換到【創(chuàng)建】選項卡,選擇【窗體】組中【其他窗體】下拉菜單中的【模式對話框】選項,如下圖所示。 第三步:出現(xiàn)一張空白窗體,已有兩
9、個按鈕:【確定】和【取消】,如下圖所示。 12.4.1 “登錄”窗體 運用“模式對話框”窗體,設(shè)計本系統(tǒng)的“登錄”窗體。 第四步:調(diào)整窗體布局,在窗體上添加幾個控件,屬性值設(shè)置如下表所示。 第五步:設(shè)置主體背景顏色。在主體區(qū)域中右擊,在彈出的快捷菜單中選擇【填充/背景色】選項,彈出如下圖所示的菜單。 12.4.1 “登錄”窗體 運用“模式對話框”窗體,設(shè)計本系統(tǒng)的“登錄”窗體。 第六步:調(diào)整窗體布局,完成后的“登錄”窗體如下圖所示。 12.4.2 “切換面板”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“切換面板”窗體。 第一步:啟動Access 2007,打開“進銷存管理系統(tǒng).accdb”數(shù)據(jù)
10、庫。 第二步:切換到【創(chuàng)建】選項卡,單擊【窗體】組中的【窗體設(shè)計】按鈕,出現(xiàn)一張空白窗體。 第三步:調(diào)整窗體布局。添加一個“矩形”控件,“背景”屬性設(shè)為“#9DBB61”。添加標(biāo)題控件,并將標(biāo)題設(shè)為“進銷存系統(tǒng)示例”。添加一個徽標(biāo)控件,圖片為“羅斯文.png”,創(chuàng)建后的效果如下圖所示。 12.4.2 “切換面板”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“切換面板”窗體。 第四步:利用命令按鈕控件和標(biāo)簽控件,為窗體添加幾個按鈕和標(biāo)簽,來處理管理員的操作。各個控件的屬性設(shè)置如下表所示。 第五步:這樣就完成了“切換面板”窗體的創(chuàng)建,完成后的結(jié)果如下圖所示。 12.4.3 “訂單處理”窗體 運用窗體
11、向?qū)?,設(shè)計本系統(tǒng)的“訂單處理”窗體。 第一步:啟動Access 2007,打開“進銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。 第二步:切換到【創(chuàng)建】選項卡,選擇【窗體】組中【其他窗體】下拉菜單中的【窗體向?qū)А窟x項。 第三步:按照前面章節(jié)介紹的步驟,在【表/查詢】下拉列表框中選擇“表:訂單”,將【可選字段】列表框中的所有字段加入右面【選定字段】列表框中,然后依次確定即可。系統(tǒng)自動生成的窗體如下圖所示。 12.4.3 “訂單處理”窗體 運用窗體向?qū)?,設(shè)計本系統(tǒng)的“訂單處理”窗體。 第四步:若要加上按鈕控件,則切換到【窗體設(shè)計工具】選項卡,單擊【使用控件向?qū)А堪粹o,則所有添加控件都會在向?qū)J较逻M行。 第五
12、步:單擊【命令控件】按鈕,出現(xiàn)如下圖所示的【命令按鈕向?qū)А繉υ捒颍覀円浴氨4嬗涗洝睘槔右哉f明。 12.4.3 “訂單處理”窗體 運用窗體向?qū)?,設(shè)計本系統(tǒng)的“訂單處理”窗體。 第六步:單擊【下一步】按鈕,為按鈕添加上合適的圖標(biāo)或者文字,如下圖所示。 第七步:單擊【下一步】按鈕,在彈出的指定按鈕名稱的對話框中輸入該按鈕的名稱,如下圖所示。 12.4.3 “訂單處理”窗體 運用窗體向?qū)ВO(shè)計本系統(tǒng)的“訂單處理”窗體。 第八步:修改如下表所示主要控件的屬性,設(shè)置窗體的頁眉和頁腳。 第九步:這樣我們就完成了“訂單處理”窗體的創(chuàng)建過程,完成后的界面如下圖所示。 12.4.4 “發(fā)貨確認(rèn)”窗體 運用窗體
13、的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“發(fā)貨確認(rèn)”窗體。第一步:單擊右鍵,在彈出的快捷菜單中選擇【窗體頁眉/頁腳】選項,進行窗體頁眉設(shè)置。步驟和前面一樣,這里不再贅述。 第二步:在窗體上添加控件,屬性見下表所示。 第三步:完成后的“發(fā)貨確認(rèn)”窗體如下圖所示。 12.4.5 “產(chǎn)品進庫”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第一步:單擊【創(chuàng)建】選項卡中【窗體】組中的【窗體設(shè)計】按鈕,會出現(xiàn)一個空白窗體。 第二步:為窗體設(shè)計一個窗體頁眉,單擊右鍵,彈出如下快捷菜單。 12.4.5 “產(chǎn)品進庫”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第三步:選擇【窗體頁眉/頁腳】選項
14、,窗體中出現(xiàn)【窗體頁眉】區(qū)域,如下圖所示。 第四步:為窗體添加一個標(biāo)簽,設(shè)置標(biāo)題為“產(chǎn)品進庫管理”,再添加一個徽標(biāo)控件,圖片設(shè)置為“羅斯文.png”。 第五步:為窗體添加表中的字段。單擊【主體】區(qū)域,單擊【設(shè)計】選項卡下的【添加現(xiàn)有字段】按鈕,彈出【字段列表】窗格,如下圖所示。 12.4.5 “產(chǎn)品進庫”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第六步:將“入庫記錄”表的所有字段添加到窗體上,并排列整齊。 第七步:為窗體增加4個導(dǎo)航按鈕,分別為“第一個”、“前一個”、“后一個”、“最后一個”。添加的方法利用【命令按鈕向?qū)А繉υ捒?,如下圖所示。 第八步:用同樣的方法,為窗體加上
15、幾個功能按鈕,標(biāo)題分別為“添加記錄”、“保存記錄”、“刪除記錄”、“進貨查詢”、“庫存查詢”和“返回”。 12.4.5 “產(chǎn)品進庫”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。 第九步:如果要查看數(shù)據(jù)表格式的入庫記錄,我們可以在窗體上添加一個子窗體。 第十步:單擊【控件】組中的【子窗體/子報表】按鈕,并拖放到窗體中,出現(xiàn)【子窗體向?qū)А繉υ捒?,如下圖所示。 第十一步:選中【使用現(xiàn)有的表和查詢】單選按鈕,單擊【下一步】按鈕,彈出選擇字段的對話框。在對話框的【表/查詢】下拉列表框中選擇“表:入庫記錄”,并把“入庫記錄”表的全部字段加入到【選定字段】列表框中,如下圖所示。 12.4.5
16、 “產(chǎn)品進庫”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第十二步:單擊【下一步】按鈕,在彈出的對話框中選擇主/次字段的鏈接方式。我們選中【從列表中選擇】單選按鈕,并在下面的列表框中選擇用“入庫編號”顯示,如下圖所示。 第十三步:單擊【下一步】按鈕,在彈出的對話框中輸入子窗體的名稱,如下圖所示。 12.4.5 “產(chǎn)品進庫”窗體 運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第十四步:調(diào)整窗體的布局,這樣我們就完成了“產(chǎn)品進庫”窗體的創(chuàng)建。最終的創(chuàng)建效果如下圖所示。 12.4.6 “供應(yīng)商查詢編輯”窗體 運用窗體的窗體向?qū)?,設(shè)計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第一步:切換
17、到【創(chuàng)建】選項卡,選擇【其他窗體】下拉菜單中的【窗體向?qū)А窟x項,如下圖所示。 第二步:按照向?qū)У奶崾荆凇颈?查詢】下拉列表框中選擇“表:供應(yīng)商”,將【可選字段】列表框中的所有字段加入到右面【選定字段】列表框中。其他設(shè)置按照以前的介紹設(shè)置,最后生成的窗體如下圖所示。 12.4.6 “供應(yīng)商查詢編輯”窗體 運用窗體的窗體向?qū)?,設(shè)計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第三步:我們還要在這個窗體上加上“記錄導(dǎo)航”按鈕和“記錄操作”按鈕,注意在“使用控件向?qū)А毕绿砑印?第四步:還添加了另外幾個控件,屬性設(shè)置見下表所示。 第五步:調(diào)整窗體布局,完成后的窗體如下圖所示。 12.4.7 “進貨資料查詢”窗體 設(shè)
18、計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來顯示查詢結(jié)果。第一步:切換到【創(chuàng)建】選項卡,單擊【窗體】組中的【窗體設(shè)計】按鈕。 第二步:添加若干控件,并設(shè)置它們的屬性值,具體情況如下表所示。 12.4.7 “進貨資料查詢”窗體 設(shè)計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來顯示查詢結(jié)果。第五步:調(diào)整窗體布局,完成了“進貨資料查詢”窗體的創(chuàng)建,最終效果如下圖所示。 12.4.8 “密碼管理”窗體 “密碼管理”窗體控件如下表所示。 完成后的“密碼管理”窗體如下圖所示。12.4.8 “密碼管理”窗體“新密碼”窗體控件如下表所示。 完成后的“新密碼”窗體如下圖所示。1
19、2.5 查詢的實現(xiàn) “訂單處理查詢”的設(shè)計 “供應(yīng)商銷售查詢”的設(shè)計 “進貨資料查詢”的設(shè)計 “庫存查詢”的設(shè)計 12.5.1 “訂單處理查詢”的設(shè)計 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第一步:切換到【創(chuàng)建】選項卡,然后單擊【其他】組中的【查詢設(shè)計】按鈕,如下圖所示。 第二步:系統(tǒng)彈出如下圖所示的【顯示表】對話框,提示我們加入所需要的表,如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第三步:選擇“訂單表明細”表,單擊【添加】按鈕,將該表添加到查詢的【設(shè)計視圖】中。 第四步:依次選擇該表中的全部字段,將其添加到查詢的設(shè)計網(wǎng)格中,如下圖所示。 第
20、五步:為字段添加查詢條件。右擊“訂單編號”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項,如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第六步:系統(tǒng)彈出【表達式生成器】對話框。在【表達式生成器】對話框中,我們?yōu)椴樵兊淖侄卧O(shè)置條件,將它和窗體上的控件值聯(lián)系到一起,如下圖所示。 第七步:保存該查詢?yōu)椤坝唵翁幚聿樵儭薄_@樣,我們就完成了“訂單處理查詢”的創(chuàng)建。 輸入的查詢條件如上圖所示,這樣把查詢中的“訂單編號”和窗體上的“訂單編號”關(guān)聯(lián)起來。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計 設(shè)計“供應(yīng)商銷售查詢”第一步:切換到【創(chuàng)建】選項卡,然
21、后單擊【其他】組中的【查詢設(shè)計】按鈕。 第二步:彈出的【顯示表】對話框中,依次把“供應(yīng)商”表、“訂單”表和“產(chǎn)品信息”表添加到查詢的【設(shè)計視圖】中,然后關(guān)閉該對話框,如下圖所示。 第三步:選擇要進行查詢的字段。雙擊選擇的字段,即可將字段加入到下面的查詢設(shè)計網(wǎng)格中,最終結(jié)果如下圖所示。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計 設(shè)計“供應(yīng)商銷售查詢”第四步:為字段添加查詢條件。右擊“供應(yīng)商編號”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項,如下圖所示。 第五步:在彈出的【表達式生成器】對話框中,我們?yōu)椤肮?yīng)商編號”字段設(shè)置查詢條件,如下圖所示。 12.5.2 “供應(yīng)商銷售查詢”的
22、設(shè)計 設(shè)計“供應(yīng)商銷售查詢”第六步:按照同樣的步驟,設(shè)置字段的查詢條件。整個查詢的條件設(shè)置如下表所示。 第七步:保存該查詢?yōu)椤肮?yīng)商銷售查詢”,這樣我們就完成了該查詢的創(chuàng)建。 12.5.3 “進貨資料查詢”的設(shè)計 我們建立的字段的信息如下表所示。 12.5.3 “進貨資料查詢”的設(shè)計 “進貨資料查詢”查詢的【設(shè)計視圖】如下圖所示。 12.5.4 “庫存查詢”的設(shè)計 設(shè)計“庫存查詢” 。第一步:切換到【創(chuàng)建】選項卡,然后單擊【其他】組中的【查詢設(shè)計】按鈕,如下圖所示。 第二步:在彈出的【顯示表】對話框中,將“庫存”表和“產(chǎn)品信息”表添加到查詢【設(shè)計視圖】中,將該表中的所有字段添加到查詢設(shè)計網(wǎng)格中
23、,如下圖所示。 12.5.4 “庫存查詢”的設(shè)計 設(shè)計“庫存查詢” 。第一步:為字段添加條件。右擊“產(chǎn)品編號”字段的【條件】行,在彈出的快捷菜單中選擇【生成器】選項。 第二步:系統(tǒng)彈出【表達式生成器】對話框,在該對話框中為查詢的字段設(shè)置條件,將它和窗體上的控件值聯(lián)系到一起。設(shè)置的查詢條件如下圖所示。 第三步:保存該查詢?yōu)椤皫齑娌樵儭保@樣我們就完成了“庫存查詢”的創(chuàng)建。 12.6 報表的實現(xiàn) “訂單查詢”報表 “供應(yīng)商銷售”報表 “庫存”報表 12.6.1 “訂單查詢”報表 “訂單查詢”報表 用來顯示訂單查詢的結(jié)果。 第一步:切換到【創(chuàng)建】選項卡,單擊【報表】組中的【報表向?qū)А堪粹o,如下圖所示
24、。 第二步:系統(tǒng)彈出【報表向?qū)А繉υ捒?,在【?查詢】下拉列表框中選擇“查詢:訂單查詢”,然后把所有字段作為選定字段,如下圖所示。 12.6.1 “訂單查詢”報表 “訂單查詢”報表 用來顯示訂單查詢的結(jié)果。 第三步:單擊【下一步】按鈕,彈出選擇數(shù)據(jù)查看方式的對話框。我們選擇“通過訂單”選項,如下圖所示。 第四步:單擊【下一步】按鈕,彈出選擇分組級別的對話框。本報表中我們不添加分組級別,如下圖所示。 12.6.1 “訂單查詢”報表 “訂單查詢”報表 用來顯示訂單查詢的結(jié)果。 第五步:單擊【下一步】按鈕,在彈出的對話框中選擇“產(chǎn)品編號”為排序字段,按升序排序,如下圖所示。 第六步:單擊【下一步】按
25、鈕,在彈出的對話框中選擇布局方式為“表格”布局,布局方向為“縱向”,如下圖所示。 12.6.1 “訂單查詢”報表 “訂單查詢”報表 用來顯示訂單查詢的結(jié)果。 第七步:單擊【下一步】按鈕,在彈出的對話框中選擇報表樣式。我們選擇【辦公室】選項,如下圖所示。 第八步:單擊【下一步】按鈕,輸入該報表的名稱為“訂單查詢報表”,如下圖所示。 12.6.1 “訂單查詢”報表 “訂單查詢”報表 用來顯示訂單查詢的結(jié)果。 第九步:單擊【完成】按鈕,完成“訂單查詢報表”的創(chuàng)建。此時該報表的【設(shè)計視圖】如下圖所示。 12.6.2 “供應(yīng)商銷售”報表 建立“供應(yīng)商銷售”報表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第一步:切
26、換到【創(chuàng)建】選項卡,單擊【報表】組中的【報表向?qū)А堪粹o,如下圖所示。 第二步:在彈出的【報表向?qū)А繉υ捒蛑校x擇報表的數(shù)據(jù)源為“查詢:供應(yīng)商查詢”,然后把查詢中的所有字段作為選定字段,如下圖所示。 12.6.2 “供應(yīng)商銷售”報表 建立“供應(yīng)商銷售”報表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第三步:單擊【下一步】按鈕,在彈出的對話框中選擇數(shù)據(jù)的查看方式。我們選擇“通過供應(yīng)商”選項,如下圖所示。 第四步:單擊【下一步】按鈕,在彈出的對話框中不選擇分組級別。 第五步:單擊【下一步】按鈕,在排序方式中選擇通過“預(yù)定時間”和“訂購數(shù)量”進行排序,排序方式分別為“升序”和“降序”,如下圖所示。 12.6.2
27、 “供應(yīng)商銷售”報表 建立“供應(yīng)商銷售”報表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第六步:單擊【下一步】按鈕,在彈出的對話框中選擇報表的樣式為“辦公室”。 第七步:單擊【下一步】按鈕,輸入報表標(biāo)題為“供應(yīng)商銷售報表”,選中【預(yù)覽報表】單選按鈕。 第八步:單擊【完成】按鈕,完成“供應(yīng)商銷售報表”的創(chuàng)建。此時報表的【設(shè)計視圖】如下圖所示。 12.6.3 “庫存”報表 在建立“庫存”報表前,我們需要建立一個“庫存查詢” ,建立查詢的過程如下所示。 第一步:切換到【創(chuàng)建】選項卡,單擊【報表】組中的【報表向?qū)А堪粹o,如下圖所示。 第二步:在彈出的【報表向?qū)А繉υ捒蛑校x擇報表的數(shù)據(jù)源為“查詢:庫存查詢”,然
28、后把查詢中的所有字段作為選定字段,如下圖所示。 12.6.3 “庫存”報表 在建立“庫存”報表前,我們需要建立一個“庫存查詢” ,建立查詢的過程如下所示。 第三步:為報表添加分組級別“產(chǎn)品類別”,這樣就把不同類別產(chǎn)品的信息分開了,如下圖所示。 第四步:系統(tǒng)彈出提示排序次序的對話框,我們用“產(chǎn)品編號”作為排序的標(biāo)準(zhǔn),單擊【下一步】按鈕。 12.6.3 “庫存”報表 在建立“庫存”報表前,我們需要建立一個“庫存查詢” ,建立查詢的過程如下所示。 第五步:單擊【下一步】按鈕,在彈出的對話框中選擇報表的樣式為“辦公室”。 第六步:單擊【下一步】按鈕,輸入報表標(biāo)題為“庫存查詢”,選中【預(yù)覽報表】單選按鈕
29、。 第七步:單擊【完成】按鈕,完成了報表的設(shè)計。此時,報表的【設(shè)計視圖】如下圖所示。 12.7 編碼的實現(xiàn) 公用模塊 “登錄”窗體代碼 “切換面板”代碼 “產(chǎn)品進庫”窗體代碼 “發(fā)貨確認(rèn)”窗體代碼 “供應(yīng)商”窗體代碼 “進貨資料查詢”窗體代碼 “密碼管理”窗體代碼 12.7.1 公用模塊 建立公用模塊第一步:我們首先要新建一個“模塊”。單擊【數(shù)據(jù)庫工具】選項卡下的Visual Basic按鈕,進入VBA編輯器,如下圖所示。 第二步:選擇【插入】菜單,選擇【模塊】命令,即可增加一個新模塊,如下圖所示。 12.7.1 公用模塊 建立公用模塊第三步:新建模塊以后,VBA編輯器界面如下圖所示。 第四步
30、:我們在新增加的模塊里,增加如下代碼。 Option Compare DatabaseOption ExplicittxtSQL為執(zhí)行查詢時所需要的SQL語句Public Function ExeSQL(ByVal txtSQL As String) As ADODB.RecordsetOn Error GoTo ExeSQL_Error 錯誤處理Dim rs As New ADODB.Recordsetrs.Open txtSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic返回記錄集對象Set ExeSQL = rs
31、返回值為ExeSQLExeSQL_Exit:Set rs = NothingExit FunctionExeSQL_Error: Dim msgstring As String msgstring = 查詢錯誤 & Err.Description MsgBox msgstring, vbCritical Resume ExeSQL_ExitEnd Function12.7.1 公用模塊 為了正確地使用ADO方式來對數(shù)據(jù)庫查詢,我們要在VBA編輯器下加入兩個引用。選擇【工具】|【引用】命令,加入 創(chuàng)建表有多種不同的方法,用戶可以根據(jù)自己的習(xí)慣和工作的難易程度選擇合適的創(chuàng)建方法。直接輸入、
32、表模板、表的【設(shè)計視圖】是最常用的創(chuàng)建表的方法。Microsoft ActiveX Data Objects 2.8 Library和Microsoft ActiveX Data Objects Recordset 2.8 Library,如下圖所示。 12.7.2 “登錄”窗體代碼 已知我們設(shè)計的“登錄”窗體如下圖所示。 12.7.2 “登錄”窗體代碼 編寫“登錄”窗體代碼第一步:打開“登錄”窗體的【設(shè)計視圖】,右擊,在彈出的快捷菜單中選擇【屬性表】選項,彈出【屬性表】窗格,如下圖所示。 第二步:在【屬性表】窗格的【所選內(nèi)容的類型:窗體】下拉列表框中選擇“窗體”選項。切換到【數(shù)據(jù)】選項卡,把
33、【記錄源】屬性設(shè)置為“管理員”表。 第三步:單擊【確定】按鈕,并將【屬性表】切換到【事件】選項卡,在【單擊】屬性的下拉列表框中選擇【事件過程】選項,如下圖所示。 12.7.2 “登錄”窗體代碼 編寫“登錄”窗體代碼第四步:單擊右邊的省略號按鈕,進入VBA編輯器,添加“確定”按鈕的代碼,如下所示。 Option Compare DatabaseOption ExplicitDim mrc As ADODB.RecordsetDim txtSQL As StringDim i As Integer 記錄錯誤次數(shù)確定按鈕的代嗎Private Sub btn_ok_Click()On Error Go
34、To Err_btn_ok_Click 錯誤處理判斷用戶名是否為空If IsNull(txt_name) ThenMsgBox 請輸入用戶名!, vbCritical, 提示 txt_name.SetFocusElse txtSQL = SELECT * from 管理員 where 用戶名= & txt_name & Set mrc = ExeSQL(txtSQL) If mrc.EOF Then MsgBox 沒有此用戶名稱!, vbCritical, 提示 Else If (mrc(1) = Txtpwd) Then mrc.Close Set mrc = Nothing
35、 Me.Visible = False 打開切換面板 DoCmd.OpenForm 切換面板 Else i = i + 1 If (i 0 Then rs.Update Else MsgBox 刪除記錄出錯, vbCritical End IfEnd Ifrs.CloseSet rs = NothingEnd Sub刪除記錄后,要更新庫存數(shù)量Private Sub btn_del_Click()Dim rs As New ADODB.RecordsetDim str_temp As String str_temp = select * from 庫存 Where 產(chǎn)品編號 = & 產(chǎn)品
36、編號 & rs.Open str_temp, CurrentProject.Connection, adOpenDynamic, adLockOptimisticIf Not IsNull(rs) Thenrs(庫存量) = rs(庫存量) - 入庫數(shù)量rs.UpdateEnd Ifrs.CloseSet rs = NothingDoCmd.RunCommand acCmdDeleteRecordEnd SubPrivate Sub btn_query_Click()DoCmd.OpenForm 進貨資料查詢Me.Visible = FalseEnd SubPrivate Sub bt
37、n_return_Click()Me.Visible = FalseEnd Sub12.7.4 “產(chǎn)品進庫”窗體代碼添加完事件過程以后的【代碼】窗口如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 已知我們設(shè)計的“發(fā)貨確認(rèn)”窗體如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 為“發(fā)貨確認(rèn)”窗體添加事件過程。 第一步:打開“發(fā)貨確認(rèn)”窗體的【設(shè)計視圖】,右擊“確認(rèn)”按鈕,在彈出的快捷菜單中選擇【事件生成器】選項,在彈出的【選擇生成器】對話框中選擇【代碼生成器】選項,單擊【確定】按鈕,打開VBA程序編輯器,輸入“確認(rèn)”按鈕代碼。 第二步:重復(fù)步驟1,對“返回”按鈕關(guān)聯(lián)“單擊事件”過程。 相關(guān)代碼
38、如下。Option Compare Database確認(rèn)按鈕代碼Private Sub brn_ok_Click()On Error GoTo Err_btn_ok_Click用這個數(shù)組str(10)來保存訂單記錄中的數(shù)據(jù)Dim str(10) As String Dim mrc As New ADODB.RecordsetIf IsNull(txt_no) Then MsgBox 請輸入要確認(rèn)的訂單編號!, vbCritical, 提示 txt_no.SetFocusEnd IfIf IsNull(Combo1) Then MsgBox 請輸入支付方式!, vbCritical, 提示 Co
39、mbo1.SetFocus Combo1.DropdownEnd If12.7.5 “發(fā)貨確認(rèn)”窗體代碼If IsNull(txt_paydate) Then MsgBox 請輸入支付日期!, vbCritical, 提示 txt_paydate.SetFocusEnd If If IsNull(txt_address) Then MsgBox 請輸入送貨地址!, vbCritical, 提示 txt_address.SetFocusEnd IfIf IsNull(txt_name) Then MsgBox 請輸入送貨人!, vbCritical, 提示 txt_name.SetFocusEn
40、d IfIf IsNull(txt_date) Then MsgBox 請輸入送貨日期!, vbCritical, 提示 txt_date.SetFocusEnd IfDim str_temp As String訂單編號是整形,不需要單引號str_temp = select * from 訂單 where 訂單編號= & txt_no & Set mrc = ExeSQL(str_temp)If mrc.EOF Then MsgBox 沒有該訂單!, vbCritical, 提示Else記錄查找到的訂單信息 str(0) = mrc(訂單編號) str(1) = mrc(客戶編
41、號) str(2) = mrc(產(chǎn)品編號) str(3) = mrc(供應(yīng)商編號) str(4) = mrc(銷售單價) str(5) = mrc(訂購數(shù)量) str(6) = mrc(訂單金額) str(7) = mrc(預(yù)定時間) str(8) = mrc(訂單時間) mrc.Close Set mrc = Nothing End IfDim rs As New ADODB.Recordset rs.Open 訂單處理明細, CurrentProject.Connection, adOpenDynamic, adLockOptimistic rs.AddNew rs(訂單編號) = str
42、(0) rs(客戶編號) = str(1) rs(產(chǎn)品編號) = str(2) rs(供應(yīng)商編號) = str(3) rs(預(yù)定時間) = str(7) rs(發(fā)貨時間) = txt_date rs(銷售單價) = str(4) rs(訂購數(shù)量) = str(5) rs(訂單金額) = str(6) rs(付款方式) = Combo1 rs(付款時間) = txt_paydate rs(發(fā)貨地址) = txt_address rs(發(fā)貨人) = txt_name rs(狀態(tài)) = 已處理 rs.Update rs.Close Set rs = Nothing MsgBox 成功添加了該信息!1
43、2.7.5 “發(fā)貨確認(rèn)”窗體代碼更新庫存表中的數(shù)量Dim rs2 As New ADODB.Recordset查找?guī)齑姹碇械挠涗泂tr_temp = select * from 庫存 Where 產(chǎn)品編號 = & str(2) & rs2.Open str_temp, CurrentProject.Connection, adOpenDynamic, adLockOptimisticIf Not rs2.EOF Thenrs2(庫存量) = rs2(庫存量) - str(5)rs2.UpdateEnd Ifrs2.CloseSet rs2 = Nothing MsgBox 成功
44、更新了庫存! 錯誤處理Exit_btn_ok_Click: Exit SubErr_btn_ok_Click: Exit Sub Resume Exit_btn_ok_ClickEnd SubPrivate Sub btn_cancel_Click() Dim ctl As Control For Each ctl In Me.Controls Select Case ctl.ControlType Case acTextBox If ctl.Locked = False Then ctl.Value = Null Case acComboBox ctl.Value = Null End Se
45、lectNextMe.txt_no.SetFocusEnd SubPrivate Sub btn_return_Click()Me.Visible = FalseDoCmd.OpenForm 切換面板, acNormalEnd Sub添加完代碼后的【代碼】窗體如下所示。 12.7.6 “供應(yīng)商”窗體代碼 已知我們設(shè)計的“供應(yīng)商”窗體如下圖所示。 12.7.6 “供應(yīng)商”窗體代碼窗體中各個按鈕的代碼如下。 “銷售查詢”按鈕代碼如下。Private Sub btn_query_Click()If IsNull(供應(yīng)商編號) Or IsNull(txt_date1) Or IsNull(txt_da
46、te2) ThenMsgBox 您必須輸入供應(yīng)商編號、開始時間和截止時間。 txt_date1.SetFocus Else If (txt_date1 txt_date2) Then MsgBox 結(jié)束時間必須大于開始時間。 焦點移到第一個時間上 txt_date1.SetFocus Else 打開供應(yīng)商銷售的報表 DoCmd.OpenReport 供應(yīng)商報表, acViewPreview, , , acWindowNormal End If End IfEnd Sub “返回”按鈕代碼如下。Private Sub btn_return_Click() DoCmd.Close docmd.Op
47、enForm 切換面板End Sub添加代碼以后的【代碼】窗體如下圖所示。 12.7.7 “進貨資料查詢”窗體代碼 已知我們設(shè)計的“進貨資料查詢”窗體如下圖所示。 12.7.7 “進貨資料查詢”窗體代碼“清除”按鈕添加的代碼如下。Option Compare DatabasePrivate Sub btn_clear_Click() On Error GoTo Err_btn_clear_Click Dim ctl As Control For Each ctl In Me.Controls Select Case ctl.ControlType Case acTextBox If ctl.L
48、ocked = False Then ctl.Value = Null Case acComboBox ctl.Value = Null End Select Next 取消子窗體查詢和統(tǒng)計總數(shù)Me.進貨資料查詢子窗體.Form.Filter = Me.進貨資料查詢子窗體.Form.FilterOn = FalseExit_btn_clear_Click: Exit SubErr_btn_clear_Click: Exit Sub Resume Exit_btn_clear_ClickEnd Sub“查詢”按鈕的代碼如下所示。Private Sub btn_query_Click() On E
49、rror GoTo Err_btn_query_Click Dim str As String 判斷是否為空,建立查詢條件 If Not IsNull(Me.Combo1) Then str = str & (供應(yīng)商名稱 like * & Me.Combo1 & *) AND End If If Not IsNull(Me.txt_wuzi) Then str = str & (產(chǎn)品名稱 like * & Me.txt_wuzi & *) AND End If If Not IsNull(Me.txt_jinbanren) Then str =
50、str & (經(jīng)辦人 like * & Me.txt_jinbanren & *) AND End If If Not IsNull(Me.date1) Then str = str & 入庫日期 = # & Format(Me.date1, yyyy-mm-dd) & #) AND End If If Not IsNull(Me.date2) Then str = str & 入庫日期 0 Then str = Left(str, Len(str) - 5) End If 子窗體查詢和統(tǒng)計,設(shè)置過濾條件Me.進貨資料查詢子窗體.Form
51、.Filter = strMe.進貨資料查詢子窗體.Form.FilterOn = True錯誤處理Exit_btn_query_Click: Exit SubErr_btn_query_Click: Exit Sub Resume Exit_btn_query_ClickEnd Sub12.7.7 “進貨資料查詢”窗體代碼“返回”按鈕的代碼如下所示。Private Sub btn_return_Click()Me.Visible = FalseDoCmd.OpenForm 產(chǎn)品進庫End Sub添加代碼完成以后,【代碼】窗體如下圖所示。 12.7.8 “密碼管理”窗體代碼 已知我們設(shè)計的“密
52、碼管理”窗體如下圖所示。 12.7.8 “密碼管理”窗體代碼 “密碼管理”窗體代碼如下所示。聲明變量Option Compare DatabaseDim rs As New ADODB.RecordsetDim flag As Boolean公用的判斷為空的函數(shù)Sub common()If IsNull(txt_name) ThenMsgBox 請輸入用戶名!, vbCritical, 提示 txt_name.SetFocus flag = FalseEnd IfIf IsNull(txt_pwd1) ThenMsgBox 請輸入密碼!, vbCritical, 提示 txt_pwd1.Set
53、Focus flag = FalseEnd If If IsNull(txt_pwd2) ThenMsgBox 請輸入確認(rèn)密碼!, vbCritical, 提示 txt_pwd2.SetFocus flag = False End If If txt_pwd1 txt_pwd2 Then MsgBox 密碼確認(rèn)不正確!,vbCritical, 提示 txt_pwd1.SetFocus txt_pwd1 = txt_pwd2 = flag = False End IfEnd Sub“增加”按鈕的代碼如下所示。Private Sub btn_add_Click() flag = True comm
54、on 調(diào)用公用函數(shù)common If flag = True Then rs.Open 管理員, CurrentProject.Connection, adOpenDynamic, adLockOptimistic rs.AddNew rs(用戶名) = txt_name rs(密碼) = txt_pwd1 rs.Update rs.Close Set rs = Nothing MsgBox 您成功地添加了新用戶!End IfEnd Sub12.7.8 “密碼管理”窗體代碼“刪除”按鈕的代碼如下所示。Private Sub btn_del_Click() flag = True common
55、If flag = True Then Dim str As String Dim rs As New ADODB.Recordset str = delete from 管理員 where 用戶名= & txt_name & and 密碼= & txt_pwd1 & DoCmd.RunSQL str MsgBox 您成功地刪除了該用戶!End IfEnd Sub“返回”按鈕的代碼如下所示。Private Sub btn_return_Click()Me.Visible = FalseDoCmd.OpenForm 切換面板End Sub“修改”按鈕的代碼如下所示
56、。Private Sub btn_xiugai_Click() flag = True common If flag = True Then Dim str As String str = select * from 管理員 where 用戶名= & txt_name & and 密碼= & txt_pwd1 & Set rs = ExeSQL(str) If Not rs.EOF Then user = txt_name DoCmd.OpenForm 新密碼Else MsgBox 找不到該用戶!End IfEnd IfEnd Sub12.7.8 “密碼管理”窗
57、體代碼“新密碼”窗體的部分代碼如下所示。Private Sub Command1_Click()If IsNull(new_pwd1) ThenMsgBox 請輸入新密碼, vbCritical, 提示End IfIf IsNull(new_pwd2) ThenMsgBox 請再次輸入新密碼, vbCritical, 提示End IfIf new_pwd1 new_pwd2 ThenMsgBox 兩次輸入不一致 , vbCritical, 錯誤new_pwd1.SetFocusnew_pwd1 = new_pwd2 = End IfDim rs As New ADODB.RecordsetDim str As Stringstr = select * from 管理員 where 用戶名= & user & Set rs = ExeSQL(str)If Not rs.EOF Thenrs(用戶名) = userrs(密碼) = new_pwd1rs.Updaters.CloseSet rs = NothingMsgBox 您成功地
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度連鎖門店員工就業(yè)保障合同
- 2025年度電力行業(yè)用電合同協(xié)議
- 二零二五年度個人消費貸款合同模板
- 二零二五年度清潔設(shè)備租賃保潔臨時用工合同
- 2025年度跨境電商平臺服務(wù)合同解除協(xié)議書
- 2025年度退租協(xié)議書及租賃房屋清潔責(zé)任合同
- 二零二五年度高校輔導(dǎo)員勞動合同實施細則
- 2025年度深圳租賃合同范本(含租賃合同解除及賠償)
- 二零二五年度美甲店員工勞動合同及員工離職手續(xù)辦理合同
- 二零二五年度學(xué)??ㄍㄐ蜗笤O(shè)計制作與校園卡使用服務(wù)合同
- 醫(yī)院設(shè)施日常巡查管理制度
- 2025年太倉市文化旅游發(fā)展集團限公司及子公司公開招聘12名高頻重點提升(共500題)附帶答案詳解
- 機械制圖題庫及答案
- 安裝承包合同(2025年)
- 云上貴州大數(shù)據(jù)(集團)有限公司招聘筆試沖刺題2024
- 人教版四年級下冊數(shù)學(xué)第二單元觀察物體(二) 單元測試
- 建筑工程公司績效考核制度范本
- 保育員與教師協(xié)作配合的技巧與案例
- 2024-2030年中國實驗室家具行業(yè)發(fā)展規(guī)劃及投資前景預(yù)測報告版
- 綠色金融案例分析
- 【MOOC】運動安全與健康-浙江大學(xué) 中國大學(xué)慕課MOOC答案
評論
0/150
提交評論