




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第12章Access在進(jìn)銷存管理中的應(yīng)用 本章學(xué)習(xí)要點(diǎn) 了解進(jìn)銷存系統(tǒng)的概念 系統(tǒng)的功能設(shè)計(jì) 系統(tǒng)的模塊設(shè)計(jì) 表和表關(guān)系的設(shè)計(jì) 查詢的設(shè)計(jì) 窗體的創(chuàng)建 報(bào)表的創(chuàng)建 宏命令和VBA代碼的創(chuàng)建 系統(tǒng)的運(yùn)行與應(yīng)用 12.1 實(shí) 例 導(dǎo) 航 系統(tǒng)功能 開發(fā)要點(diǎn) 12.1.1 系統(tǒng)功能 我們所設(shè)計(jì)的進(jìn)銷存系統(tǒng)的主要功能包括如下。 商品基本信息的管理:用來(lái)處理進(jìn)出庫(kù)的商品信息,包括新建、修改、刪除和查詢等。 訂單信息的處理:是整個(gè)系統(tǒng)的工作流程的起點(diǎn),包括訂單的增減、查詢,以及訂單在處理過(guò)程中(如發(fā)貨確認(rèn)等)狀態(tài)的改變。 產(chǎn)品入庫(kù)出庫(kù)管理:完成記錄,修改商品入出庫(kù)信息,并有庫(kù)存報(bào)表功能。 查詢功能:允許管
2、理員可以按編號(hào)、日期對(duì)進(jìn)貨商的銷售信息進(jìn)行查詢;對(duì)入庫(kù)的產(chǎn)品信息進(jìn)行詳細(xì)的查詢,包括編號(hào)、名稱、入庫(kù)時(shí)間等。 12.1.2 開發(fā)要點(diǎn) 理解數(shù)據(jù)表的結(jié)構(gòu),掌握各表之間關(guān)系的建立原理,熟悉查詢和窗體的設(shè)計(jì),對(duì)進(jìn)銷存管理系統(tǒng)有比較清楚的了解,從而開發(fā)出完整的進(jìn)銷存管理系統(tǒng)。 12.2 系統(tǒng)需求分析設(shè)計(jì) 需求分析 模塊設(shè)計(jì) 12.2.1 需求分析 用戶的需求主要有以下內(nèi)容。 將訂單、商品、供應(yīng)商、客戶、商品、進(jìn)貨、銷售等信息錄入管理系統(tǒng),提供修改和查詢。 能夠?qū)Ω黝愋畔⑻峁┎樵儭?能夠統(tǒng)計(jì)進(jìn)出庫(kù)的各類信息,對(duì)進(jìn)庫(kù)、銷售、庫(kù)存進(jìn)行匯總,協(xié)調(diào)各部門的相互工作。 12.2.2 模塊設(shè)計(jì) 按照前面的需求分析,
3、我們?cè)O(shè)計(jì)的進(jìn)銷存系統(tǒng)分為以下幾個(gè)模塊。 系統(tǒng)的基本配置模塊:包括產(chǎn)品、供應(yīng)商、客戶的基本資料的錄入。 產(chǎn)品進(jìn)出庫(kù)處理模塊:主要包括對(duì)訂單信息的處理和采購(gòu)單的處理,一般產(chǎn)品入出庫(kù)的處理。 查詢模塊:對(duì)系統(tǒng)中的各類信息,如供應(yīng)商資料、出入庫(kù)詳細(xì)資料等進(jìn)行查詢,支持多個(gè)條件的復(fù)合查詢。 報(bào)表顯示模塊:根據(jù)用戶的需要和查詢結(jié)果來(lái)生成報(bào)表。 12.3 數(shù)據(jù)庫(kù)結(jié)構(gòu)的設(shè)計(jì) 數(shù)據(jù)表結(jié)構(gòu)需求分析 建立空數(shù)據(jù)庫(kù)系統(tǒng) 創(chuàng)建數(shù)據(jù)表 定義數(shù)據(jù)表之間的關(guān)系 12.3.1 數(shù)據(jù)表結(jié)構(gòu)需求分析 在本系統(tǒng)中,我們?cè)O(shè)計(jì)了10張數(shù)據(jù)表,各個(gè)表存儲(chǔ)的信息如下所示。 “管理員”表:存放系統(tǒng)管理人員信息,一般是企業(yè)管理人員的用戶名和密碼
4、。 “產(chǎn)品信息”表:存儲(chǔ)產(chǎn)品的基本信息,如產(chǎn)品編號(hào)、產(chǎn)品名稱、規(guī)格型號(hào)、計(jì)量單位、供應(yīng)商編號(hào)、產(chǎn)品類別等。 “供應(yīng)商”表:存放產(chǎn)品供應(yīng)商的相關(guān)信息,比如供應(yīng)商編號(hào)、供應(yīng) 商名稱、聯(lián)系人姓名、聯(lián)系人職務(wù)、業(yè)務(wù)電話、電子郵件等。 “客戶”表:記錄客戶的基本信息,比如客戶編號(hào)、客戶姓名、客戶地址、聯(lián)系電話、電子郵件、備注等。 “訂單”表:記錄訂單的基本信息,如訂單編號(hào)、客戶編號(hào)、產(chǎn)品編號(hào)、供應(yīng)商編號(hào)、銷售單價(jià)、訂購(gòu)數(shù)量、訂單金額、預(yù)定時(shí)間、訂單時(shí)間等基本預(yù)訂信息。 “訂單處理明細(xì)”表:除了訂單基本信息外,還要增加付款信息和發(fā)貨信息,如付款方式、付款時(shí)間、發(fā)貨地址、發(fā)貨時(shí)間、發(fā)貨人等。 “入庫(kù)記錄”表
5、:存放產(chǎn)品入庫(kù)的信息。 “出庫(kù)記錄”表:存放產(chǎn)品出庫(kù)的信息。 “業(yè)務(wù)類別”表:記錄進(jìn)出庫(kù)的業(yè)務(wù)類型。 “庫(kù)存”表:記錄產(chǎn)品的庫(kù)存信息。 12.3.2 建立空數(shù)據(jù)庫(kù)系統(tǒng) 建立一個(gè)“進(jìn)銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫(kù)。 第一步:打開Access 2007,單擊【開始使用Microsoft Office Access】頁(yè)中的【空白數(shù)據(jù)庫(kù)】按鈕,如下圖所示。 第二步:系統(tǒng)出現(xiàn)如下圖所示的窗口,選擇合適的路徑,輸入數(shù)據(jù)庫(kù)名稱為“進(jìn)銷存系統(tǒng).accdb”。 12.3.2 建立空數(shù)據(jù)庫(kù)系統(tǒng) 建立一個(gè)“進(jìn)銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫(kù)。 第三步:?jiǎn)螕簟緞?chuàng)建】按鈕,完成該數(shù)據(jù)庫(kù)的創(chuàng)建。系統(tǒng)自動(dòng)建立了一
6、個(gè)名為“表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ù)表 “訂單處理明細(xì)”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “入庫(kù)記錄”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “出庫(kù)記錄”表 12.3.3 創(chuàng)建數(shù)據(jù)表 “業(yè)務(wù)類別”表 “庫(kù)存”表 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 建立“產(chǎn)品信息”表和“出庫(kù)記錄”表之間的表關(guān)系。 第一步:?jiǎn)?dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”。 第二步:切換到【數(shù)據(jù)庫(kù)工具】選項(xiàng)卡,單擊【關(guān)系】按鈕,如下
7、圖所示。 第三步:?jiǎn)螕粲益I,在彈出的快捷菜單中選擇【顯示表】命令,按住Ctrl鍵,選擇所有的表,然后單擊【添加】按鈕,把所有的表都添加上去,如下圖所示。 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 建立“產(chǎn)品信息”表和“出庫(kù)記錄”表之間的表關(guān)系。 第四步:設(shè)置表的參照完整性。我們以“產(chǎn)品信息”表中的“產(chǎn)品編號(hào)”字段與“出庫(kù)記錄”表中的“產(chǎn)品編號(hào)”字段為例。按下鼠標(biāo)左鍵拖動(dòng)“產(chǎn)品信息”表中的“產(chǎn)品編號(hào)”字段到“出庫(kù)記錄”表中的“產(chǎn)品編號(hào)”字段上,釋放鼠標(biāo)左鍵,系統(tǒng)彈出【編輯關(guān)系】對(duì)話框,如下圖所示。 第五步:選中【實(shí)施參照完整性】復(fù)選框,這樣就建立了表之間的一對(duì)多關(guān)系,如下圖所示。 12.3.4 定義數(shù)
8、據(jù)表之間的關(guān)系 按照同樣的步驟,可以建立起其他表之間的關(guān)系。最終建立了下面的關(guān)系圖。 我們?cè)O(shè)計(jì)的數(shù)據(jù)庫(kù)表中,各種表關(guān)系如下表所示。 12.4 窗體的實(shí)現(xiàn) “登錄”窗體 “切換面板”窗體 “訂單處理”窗體 “發(fā)貨確認(rèn)”窗體 “產(chǎn)品進(jìn)庫(kù)”窗體 “供應(yīng)商查詢編輯”窗體 “進(jìn)貨資料查詢”窗體 “密碼管理”窗體 12.4.1 “登錄”窗體 運(yùn)用“模式對(duì)話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄”窗體。 第一步:?jiǎn)?dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)庫(kù)。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,選擇【窗體】組中【其他窗體】下拉菜單中的【模式對(duì)話框】選項(xiàng),如下圖所示。 第三步:出現(xiàn)一張空白窗體,已有兩
9、個(gè)按鈕:【確定】和【取消】,如下圖所示。 12.4.1 “登錄”窗體 運(yùn)用“模式對(duì)話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄”窗體。 第四步:調(diào)整窗體布局,在窗體上添加幾個(gè)控件,屬性值設(shè)置如下表所示。 第五步:設(shè)置主體背景顏色。在主體區(qū)域中右擊,在彈出的快捷菜單中選擇【填充/背景色】選項(xiàng),彈出如下圖所示的菜單。 12.4.1 “登錄”窗體 運(yùn)用“模式對(duì)話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄”窗體。 第六步:調(diào)整窗體布局,完成后的“登錄”窗體如下圖所示。 12.4.2 “切換面板”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“切換面板”窗體。 第一步:?jiǎn)?dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)
10、庫(kù)。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【窗體】組中的【窗體設(shè)計(jì)】按鈕,出現(xiàn)一張空白窗體。 第三步:調(diào)整窗體布局。添加一個(gè)“矩形”控件,“背景”屬性設(shè)為“#9DBB61”。添加標(biāo)題控件,并將標(biāo)題設(shè)為“進(jìn)銷存系統(tǒng)示例”。添加一個(gè)徽標(biāo)控件,圖片為“羅斯文.png”,創(chuàng)建后的效果如下圖所示。 12.4.2 “切換面板”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“切換面板”窗體。 第四步:利用命令按鈕控件和標(biāo)簽控件,為窗體添加幾個(gè)按鈕和標(biāo)簽,來(lái)處理管理員的操作。各個(gè)控件的屬性設(shè)置如下表所示。 第五步:這樣就完成了“切換面板”窗體的創(chuàng)建,完成后的結(jié)果如下圖所示。 12.4.3 “訂單處理”窗體 運(yùn)用窗體
11、向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第一步:?jiǎn)?dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)庫(kù)。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,選擇【窗體】組中【其他窗體】下拉菜單中的【窗體向?qū)А窟x項(xiàng)。 第三步:按照前面章節(jié)介紹的步驟,在【表/查詢】下拉列表框中選擇“表:訂單”,將【可選字段】列表框中的所有字段加入右面【選定字段】列表框中,然后依次確定即可。系統(tǒng)自動(dòng)生成的窗體如下圖所示。 12.4.3 “訂單處理”窗體 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第四步:若要加上按鈕控件,則切換到【窗體設(shè)計(jì)工具】選項(xiàng)卡,單擊【使用控件向?qū)А堪粹o,則所有添加控件都會(huì)在向?qū)J较逻M(jìn)行。 第五
12、步:?jiǎn)螕簟久羁丶堪粹o,出現(xiàn)如下圖所示的【命令按鈕向?qū)А繉?duì)話框,我們以“保存記錄”為例加以說(shuō)明。 12.4.3 “訂單處理”窗體 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第六步:?jiǎn)螕簟鞠乱徊健堪粹o,為按鈕添加上合適的圖標(biāo)或者文字,如下圖所示。 第七步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的指定按鈕名稱的對(duì)話框中輸入該按鈕的名稱,如下圖所示。 12.4.3 “訂單處理”窗體 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第八步:修改如下表所示主要控件的屬性,設(shè)置窗體的頁(yè)眉和頁(yè)腳。 第九步:這樣我們就完成了“訂單處理”窗體的創(chuàng)建過(guò)程,完成后的界面如下圖所示。 12.4.4 “發(fā)貨確認(rèn)”窗體 運(yùn)用窗體
13、的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“發(fā)貨確認(rèn)”窗體。第一步:?jiǎn)螕粲益I,在彈出的快捷菜單中選擇【窗體頁(yè)眉/頁(yè)腳】選項(xiàng),進(jìn)行窗體頁(yè)眉設(shè)置。步驟和前面一樣,這里不再贅述。 第二步:在窗體上添加控件,屬性見下表所示。 第三步:完成后的“發(fā)貨確認(rèn)”窗體如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫(kù)”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫(kù)”窗體。第一步:?jiǎn)螕簟緞?chuàng)建】選項(xiàng)卡中【窗體】組中的【窗體設(shè)計(jì)】按鈕,會(huì)出現(xiàn)一個(gè)空白窗體。 第二步:為窗體設(shè)計(jì)一個(gè)窗體頁(yè)眉,單擊右鍵,彈出如下快捷菜單。 12.4.5 “產(chǎn)品進(jìn)庫(kù)”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫(kù)”窗體。第三步:選擇【窗體頁(yè)眉/頁(yè)腳】選項(xiàng)
14、,窗體中出現(xiàn)【窗體頁(yè)眉】區(qū)域,如下圖所示。 第四步:為窗體添加一個(gè)標(biāo)簽,設(shè)置標(biāo)題為“產(chǎn)品進(jìn)庫(kù)管理”,再添加一個(gè)徽標(biāo)控件,圖片設(shè)置為“羅斯文.png”。 第五步:為窗體添加表中的字段。單擊【主體】區(qū)域,單擊【設(shè)計(jì)】選項(xiàng)卡下的【添加現(xiàn)有字段】按鈕,彈出【字段列表】窗格,如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫(kù)”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫(kù)”窗體。第六步:將“入庫(kù)記錄”表的所有字段添加到窗體上,并排列整齊。 第七步:為窗體增加4個(gè)導(dǎo)航按鈕,分別為“第一個(gè)”、“前一個(gè)”、“后一個(gè)”、“最后一個(gè)”。添加的方法利用【命令按鈕向?qū)А繉?duì)話框,如下圖所示。 第八步:用同樣的方法,為窗體加上
15、幾個(gè)功能按鈕,標(biāo)題分別為“添加記錄”、“保存記錄”、“刪除記錄”、“進(jìn)貨查詢”、“庫(kù)存查詢”和“返回”。 12.4.5 “產(chǎn)品進(jìn)庫(kù)”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫(kù)”窗體。 第九步:如果要查看數(shù)據(jù)表格式的入庫(kù)記錄,我們可以在窗體上添加一個(gè)子窗體。 第十步:?jiǎn)螕簟究丶拷M中的【子窗體/子報(bào)表】按鈕,并拖放到窗體中,出現(xiàn)【子窗體向?qū)А繉?duì)話框,如下圖所示。 第十一步:選中【使用現(xiàn)有的表和查詢】單選按鈕,單擊【下一步】按鈕,彈出選擇字段的對(duì)話框。在對(duì)話框的【表/查詢】下拉列表框中選擇“表:入庫(kù)記錄”,并把“入庫(kù)記錄”表的全部字段加入到【選定字段】列表框中,如下圖所示。 12.4.5
16、 “產(chǎn)品進(jìn)庫(kù)”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫(kù)”窗體。第十二步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中選擇主/次字段的鏈接方式。我們選中【從列表中選擇】單選按鈕,并在下面的列表框中選擇用“入庫(kù)編號(hào)”顯示,如下圖所示。 第十三步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中輸入子窗體的名稱,如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫(kù)”窗體 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫(kù)”窗體。第十四步:調(diào)整窗體的布局,這樣我們就完成了“產(chǎn)品進(jìn)庫(kù)”窗體的創(chuàng)建。最終的創(chuàng)建效果如下圖所示。 12.4.6 “供應(yīng)商查詢編輯”窗體 運(yùn)用窗體的窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第一步:切換
17、到【創(chuàng)建】選項(xiàng)卡,選擇【其他窗體】下拉菜單中的【窗體向?qū)А窟x項(xiàng),如下圖所示。 第二步:按照向?qū)У奶崾?,在【?查詢】下拉列表框中選擇“表:供應(yīng)商”,將【可選字段】列表框中的所有字段加入到右面【選定字段】列表框中。其他設(shè)置按照以前的介紹設(shè)置,最后生成的窗體如下圖所示。 12.4.6 “供應(yīng)商查詢編輯”窗體 運(yùn)用窗體的窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第三步:我們還要在這個(gè)窗體上加上“記錄導(dǎo)航”按鈕和“記錄操作”按鈕,注意在“使用控件向?qū)А毕绿砑印?第四步:還添加了另外幾個(gè)控件,屬性設(shè)置見下表所示。 第五步:調(diào)整窗體布局,完成后的窗體如下圖所示。 12.4.7 “進(jìn)貨資料查詢”窗體 設(shè)
18、計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來(lái)顯示查詢結(jié)果。第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【窗體】組中的【窗體設(shè)計(jì)】按鈕。 第二步:添加若干控件,并設(shè)置它們的屬性值,具體情況如下表所示。 12.4.7 “進(jìn)貨資料查詢”窗體 設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來(lái)顯示查詢結(jié)果。第五步:調(diào)整窗體布局,完成了“進(jìn)貨資料查詢”窗體的創(chuàng)建,最終效果如下圖所示。 12.4.8 “密碼管理”窗體 “密碼管理”窗體控件如下表所示。 完成后的“密碼管理”窗體如下圖所示。12.4.8 “密碼管理”窗體“新密碼”窗體控件如下表所示。 完成后的“新密碼”窗體如下圖所示。1
19、2.5 查詢的實(shí)現(xiàn) “訂單處理查詢”的設(shè)計(jì) “供應(yīng)商銷售查詢”的設(shè)計(jì) “進(jìn)貨資料查詢”的設(shè)計(jì) “庫(kù)存查詢”的設(shè)計(jì) 12.5.1 “訂單處理查詢”的設(shè)計(jì) 使用“查詢向?qū)А眮?lái)創(chuàng)建“訂單處理查詢” 第一步:切換到【創(chuàng)建】選項(xiàng)卡,然后單擊【其他】組中的【查詢?cè)O(shè)計(jì)】按鈕,如下圖所示。 第二步:系統(tǒng)彈出如下圖所示的【顯示表】對(duì)話框,提示我們加入所需要的表,如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計(jì) 使用“查詢向?qū)А眮?lái)創(chuàng)建“訂單處理查詢” 第三步:選擇“訂單表明細(xì)”表,單擊【添加】按鈕,將該表添加到查詢的【設(shè)計(jì)視圖】中。 第四步:依次選擇該表中的全部字段,將其添加到查詢的設(shè)計(jì)網(wǎng)格中,如下圖所示。 第
20、五步:為字段添加查詢條件。右擊“訂單編號(hào)”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項(xiàng),如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計(jì) 使用“查詢向?qū)А眮?lái)創(chuàng)建“訂單處理查詢” 第六步:系統(tǒng)彈出【表達(dá)式生成器】對(duì)話框。在【表達(dá)式生成器】對(duì)話框中,我們?yōu)椴樵兊淖侄卧O(shè)置條件,將它和窗體上的控件值聯(lián)系到一起,如下圖所示。 第七步:保存該查詢?yōu)椤坝唵翁幚聿樵儭?。這樣,我們就完成了“訂單處理查詢”的創(chuàng)建。 輸入的查詢條件如上圖所示,這樣把查詢中的“訂單編號(hào)”和窗體上的“訂單編號(hào)”關(guān)聯(lián)起來(lái)。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計(jì) 設(shè)計(jì)“供應(yīng)商銷售查詢”第一步:切換到【創(chuàng)建】選項(xiàng)卡,然
21、后單擊【其他】組中的【查詢?cè)O(shè)計(jì)】按鈕。 第二步:彈出的【顯示表】對(duì)話框中,依次把“供應(yīng)商”表、“訂單”表和“產(chǎn)品信息”表添加到查詢的【設(shè)計(jì)視圖】中,然后關(guān)閉該對(duì)話框,如下圖所示。 第三步:選擇要進(jìn)行查詢的字段。雙擊選擇的字段,即可將字段加入到下面的查詢?cè)O(shè)計(jì)網(wǎng)格中,最終結(jié)果如下圖所示。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計(jì) 設(shè)計(jì)“供應(yīng)商銷售查詢”第四步:為字段添加查詢條件。右擊“供應(yīng)商編號(hào)”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項(xiàng),如下圖所示。 第五步:在彈出的【表達(dá)式生成器】對(duì)話框中,我們?yōu)椤肮?yīng)商編號(hào)”字段設(shè)置查詢條件,如下圖所示。 12.5.2 “供應(yīng)商銷售查詢”的
22、設(shè)計(jì) 設(shè)計(jì)“供應(yīng)商銷售查詢”第六步:按照同樣的步驟,設(shè)置字段的查詢條件。整個(gè)查詢的條件設(shè)置如下表所示。 第七步:保存該查詢?yōu)椤肮?yīng)商銷售查詢”,這樣我們就完成了該查詢的創(chuàng)建。 12.5.3 “進(jìn)貨資料查詢”的設(shè)計(jì) 我們建立的字段的信息如下表所示。 12.5.3 “進(jìn)貨資料查詢”的設(shè)計(jì) “進(jìn)貨資料查詢”查詢的【設(shè)計(jì)視圖】如下圖所示。 12.5.4 “庫(kù)存查詢”的設(shè)計(jì) 設(shè)計(jì)“庫(kù)存查詢” 。第一步:切換到【創(chuàng)建】選項(xiàng)卡,然后單擊【其他】組中的【查詢?cè)O(shè)計(jì)】按鈕,如下圖所示。 第二步:在彈出的【顯示表】對(duì)話框中,將“庫(kù)存”表和“產(chǎn)品信息”表添加到查詢【設(shè)計(jì)視圖】中,將該表中的所有字段添加到查詢?cè)O(shè)計(jì)網(wǎng)格中
23、,如下圖所示。 12.5.4 “庫(kù)存查詢”的設(shè)計(jì) 設(shè)計(jì)“庫(kù)存查詢” 。第一步:為字段添加條件。右擊“產(chǎn)品編號(hào)”字段的【條件】行,在彈出的快捷菜單中選擇【生成器】選項(xiàng)。 第二步:系統(tǒng)彈出【表達(dá)式生成器】對(duì)話框,在該對(duì)話框中為查詢的字段設(shè)置條件,將它和窗體上的控件值聯(lián)系到一起。設(shè)置的查詢條件如下圖所示。 第三步:保存該查詢?yōu)椤皫?kù)存查詢”,這樣我們就完成了“庫(kù)存查詢”的創(chuàng)建。 12.6 報(bào)表的實(shí)現(xiàn) “訂單查詢”報(bào)表 “供應(yīng)商銷售”報(bào)表 “庫(kù)存”報(bào)表 12.6.1 “訂單查詢”報(bào)表 “訂單查詢”報(bào)表 用來(lái)顯示訂單查詢的結(jié)果。 第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【報(bào)表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示
24、。 第二步:系統(tǒng)彈出【報(bào)表向?qū)А繉?duì)話框,在【表/查詢】下拉列表框中選擇“查詢:訂單查詢”,然后把所有字段作為選定字段,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 “訂單查詢”報(bào)表 用來(lái)顯示訂單查詢的結(jié)果。 第三步:?jiǎn)螕簟鞠乱徊健堪粹o,彈出選擇數(shù)據(jù)查看方式的對(duì)話框。我們選擇“通過(guò)訂單”選項(xiàng),如下圖所示。 第四步:?jiǎn)螕簟鞠乱徊健堪粹o,彈出選擇分組級(jí)別的對(duì)話框。本報(bào)表中我們不添加分組級(jí)別,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 “訂單查詢”報(bào)表 用來(lái)顯示訂單查詢的結(jié)果。 第五步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中選擇“產(chǎn)品編號(hào)”為排序字段,按升序排序,如下圖所示。 第六步:?jiǎn)螕簟鞠乱徊健堪?/p>
25、鈕,在彈出的對(duì)話框中選擇布局方式為“表格”布局,布局方向?yàn)椤翱v向”,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 “訂單查詢”報(bào)表 用來(lái)顯示訂單查詢的結(jié)果。 第七步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中選擇報(bào)表樣式。我們選擇【辦公室】選項(xiàng),如下圖所示。 第八步:?jiǎn)螕簟鞠乱徊健堪粹o,輸入該報(bào)表的名稱為“訂單查詢報(bào)表”,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 “訂單查詢”報(bào)表 用來(lái)顯示訂單查詢的結(jié)果。 第九步:?jiǎn)螕簟就瓿伞堪粹o,完成“訂單查詢報(bào)表”的創(chuàng)建。此時(shí)該報(bào)表的【設(shè)計(jì)視圖】如下圖所示。 12.6.2 “供應(yīng)商銷售”報(bào)表 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第一步:切
26、換到【創(chuàng)建】選項(xiàng)卡,單擊【報(bào)表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示。 第二步:在彈出的【報(bào)表向?qū)А繉?duì)話框中,選擇報(bào)表的數(shù)據(jù)源為“查詢:供應(yīng)商查詢”,然后把查詢中的所有字段作為選定字段,如下圖所示。 12.6.2 “供應(yīng)商銷售”報(bào)表 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第三步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中選擇數(shù)據(jù)的查看方式。我們選擇“通過(guò)供應(yīng)商”選項(xiàng),如下圖所示。 第四步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中不選擇分組級(jí)別。 第五步:?jiǎn)螕簟鞠乱徊健堪粹o,在排序方式中選擇通過(guò)“預(yù)定時(shí)間”和“訂購(gòu)數(shù)量”進(jìn)行排序,排序方式分別為“升序”和“降序”,如下圖所示。 12.6.2
27、 “供應(yīng)商銷售”報(bào)表 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第六步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中選擇報(bào)表的樣式為“辦公室”。 第七步:?jiǎn)螕簟鞠乱徊健堪粹o,輸入報(bào)表標(biāo)題為“供應(yīng)商銷售報(bào)表”,選中【預(yù)覽報(bào)表】單選按鈕。 第八步:?jiǎn)螕簟就瓿伞堪粹o,完成“供應(yīng)商銷售報(bào)表”的創(chuàng)建。此時(shí)報(bào)表的【設(shè)計(jì)視圖】如下圖所示。 12.6.3 “庫(kù)存”報(bào)表 在建立“庫(kù)存”報(bào)表前,我們需要建立一個(gè)“庫(kù)存查詢” ,建立查詢的過(guò)程如下所示。 第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【報(bào)表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示。 第二步:在彈出的【報(bào)表向?qū)А繉?duì)話框中,選擇報(bào)表的數(shù)據(jù)源為“查詢:庫(kù)存查詢”,然
28、后把查詢中的所有字段作為選定字段,如下圖所示。 12.6.3 “庫(kù)存”報(bào)表 在建立“庫(kù)存”報(bào)表前,我們需要建立一個(gè)“庫(kù)存查詢” ,建立查詢的過(guò)程如下所示。 第三步:為報(bào)表添加分組級(jí)別“產(chǎn)品類別”,這樣就把不同類別產(chǎn)品的信息分開了,如下圖所示。 第四步:系統(tǒng)彈出提示排序次序的對(duì)話框,我們用“產(chǎn)品編號(hào)”作為排序的標(biāo)準(zhǔn),單擊【下一步】按鈕。 12.6.3 “庫(kù)存”報(bào)表 在建立“庫(kù)存”報(bào)表前,我們需要建立一個(gè)“庫(kù)存查詢” ,建立查詢的過(guò)程如下所示。 第五步:?jiǎn)螕簟鞠乱徊健堪粹o,在彈出的對(duì)話框中選擇報(bào)表的樣式為“辦公室”。 第六步:?jiǎn)螕簟鞠乱徊健堪粹o,輸入報(bào)表標(biāo)題為“庫(kù)存查詢”,選中【預(yù)覽報(bào)表】單選按鈕
29、。 第七步:?jiǎn)螕簟就瓿伞堪粹o,完成了報(bào)表的設(shè)計(jì)。此時(shí),報(bào)表的【設(shè)計(jì)視圖】如下圖所示。 12.7 編碼的實(shí)現(xiàn) 公用模塊 “登錄”窗體代碼 “切換面板”代碼 “產(chǎn)品進(jìn)庫(kù)”窗體代碼 “發(fā)貨確認(rèn)”窗體代碼 “供應(yīng)商”窗體代碼 “進(jìn)貨資料查詢”窗體代碼 “密碼管理”窗體代碼 12.7.1 公用模塊 建立公用模塊第一步:我們首先要新建一個(gè)“模塊”。單擊【數(shù)據(jù)庫(kù)工具】選項(xiàng)卡下的Visual Basic按鈕,進(jìn)入VBA編輯器,如下圖所示。 第二步:選擇【插入】菜單,選擇【模塊】命令,即可增加一個(gè)新模塊,如下圖所示。 12.7.1 公用模塊 建立公用模塊第三步:新建模塊以后,VBA編輯器界面如下圖所示。 第四步
30、:我們?cè)谛略黾拥哪K里,增加如下代碼。 Option Compare DatabaseOption ExplicittxtSQL為執(zhí)行查詢時(shí)所需要的SQL語(yǔ)句Public Function ExeSQL(ByVal txtSQL As String) As ADODB.RecordsetOn Error GoTo ExeSQL_Error 錯(cuò)誤處理Dim rs As New ADODB.Recordsetrs.Open txtSQL, CurrentProject.Connection, adOpenKeyset, adLockOptimistic返回記錄集對(duì)象Set ExeSQL = rs
31、返回值為ExeSQLExeSQL_Exit:Set rs = NothingExit FunctionExeSQL_Error: Dim msgstring As String msgstring = 查詢錯(cuò)誤 & Err.Description MsgBox msgstring, vbCritical Resume ExeSQL_ExitEnd Function12.7.1 公用模塊 為了正確地使用ADO方式來(lái)對(duì)數(shù)據(jù)庫(kù)查詢,我們要在VBA編輯器下加入兩個(gè)引用。選擇【工具】|【引用】命令,加入 創(chuàng)建表有多種不同的方法,用戶可以根據(jù)自己的習(xí)慣和工作的難易程度選擇合適的創(chuàng)建方法。直接輸入、
32、表模板、表的【設(shè)計(jì)視圖】是最常用的創(chuàng)建表的方法。Microsoft ActiveX Data Objects 2.8 Library和Microsoft ActiveX Data Objects Recordset 2.8 Library,如下圖所示。 12.7.2 “登錄”窗體代碼 已知我們?cè)O(shè)計(jì)的“登錄”窗體如下圖所示。 12.7.2 “登錄”窗體代碼 編寫“登錄”窗體代碼第一步:打開“登錄”窗體的【設(shè)計(jì)視圖】,右擊,在彈出的快捷菜單中選擇【屬性表】選項(xiàng),彈出【屬性表】窗格,如下圖所示。 第二步:在【屬性表】窗格的【所選內(nèi)容的類型:窗體】下拉列表框中選擇“窗體”選項(xiàng)。切換到【數(shù)據(jù)】選項(xiàng)卡,把
33、【記錄源】屬性設(shè)置為“管理員”表。 第三步:?jiǎn)螕簟敬_定】按鈕,并將【屬性表】切換到【事件】選項(xiàng)卡,在【單擊】屬性的下拉列表框中選擇【事件過(guò)程】選項(xiàng),如下圖所示。 12.7.2 “登錄”窗體代碼 編寫“登錄”窗體代碼第四步:?jiǎn)螕粲疫叺氖÷蕴?hào)按鈕,進(jìn)入VBA編輯器,添加“確定”按鈕的代碼,如下所示。 Option Compare DatabaseOption ExplicitDim mrc As ADODB.RecordsetDim txtSQL As StringDim i As Integer 記錄錯(cuò)誤次數(shù)確定按鈕的代嗎Private Sub btn_ok_Click()On Error Go
34、To Err_btn_ok_Click 錯(cuò)誤處理判斷用戶名是否為空If IsNull(txt_name) ThenMsgBox 請(qǐng)輸入用戶名!, vbCritical, 提示 txt_name.SetFocusElse txtSQL = SELECT * from 管理員 where 用戶名= & txt_name & Set mrc = ExeSQL(txtSQL) If mrc.EOF Then MsgBox 沒(méi)有此用戶名稱!, 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 刪除記錄出錯(cuò), vbCritical End IfEnd Ifrs.CloseSet rs = NothingEnd Sub刪除記錄后,要更新庫(kù)存數(shù)量Private Sub btn_del_Click()Dim rs As New ADODB.RecordsetDim str_temp As String str_temp = select * from 庫(kù)存 Where 產(chǎn)品編號(hào) = & 產(chǎn)品
36、編號(hào) & rs.Open str_temp, CurrentProject.Connection, adOpenDynamic, adLockOptimisticIf Not IsNull(rs) Thenrs(庫(kù)存量) = rs(庫(kù)存量) - 入庫(kù)數(shù)量rs.UpdateEnd Ifrs.CloseSet rs = NothingDoCmd.RunCommand acCmdDeleteRecordEnd SubPrivate Sub btn_query_Click()DoCmd.OpenForm 進(jìn)貨資料查詢Me.Visible = FalseEnd SubPrivate Sub bt
37、n_return_Click()Me.Visible = FalseEnd Sub12.7.4 “產(chǎn)品進(jìn)庫(kù)”窗體代碼添加完事件過(guò)程以后的【代碼】窗口如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 已知我們?cè)O(shè)計(jì)的“發(fā)貨確認(rèn)”窗體如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 為“發(fā)貨確認(rèn)”窗體添加事件過(guò)程。 第一步:打開“發(fā)貨確認(rèn)”窗體的【設(shè)計(jì)視圖】,右擊“確認(rèn)”按鈕,在彈出的快捷菜單中選擇【事件生成器】選項(xiàng),在彈出的【選擇生成器】對(duì)話框中選擇【代碼生成器】選項(xiàng),單擊【確定】按鈕,打開VBA程序編輯器,輸入“確認(rèn)”按鈕代碼。 第二步:重復(fù)步驟1,對(duì)“返回”按鈕關(guān)聯(lián)“單擊事件”過(guò)程。 相關(guān)代碼
38、如下。Option Compare Database確認(rèn)按鈕代碼Private Sub brn_ok_Click()On Error GoTo Err_btn_ok_Click用這個(gè)數(shù)組str(10)來(lái)保存訂單記錄中的數(shù)據(jù)Dim str(10) As String Dim mrc As New ADODB.RecordsetIf IsNull(txt_no) Then MsgBox 請(qǐng)輸入要確認(rèn)的訂單編號(hào)!, vbCritical, 提示 txt_no.SetFocusEnd IfIf IsNull(Combo1) Then MsgBox 請(qǐng)輸入支付方式!, vbCritical, 提示 Co
39、mbo1.SetFocus Combo1.DropdownEnd If12.7.5 “發(fā)貨確認(rèn)”窗體代碼If IsNull(txt_paydate) Then MsgBox 請(qǐng)輸入支付日期!, vbCritical, 提示 txt_paydate.SetFocusEnd If If IsNull(txt_address) Then MsgBox 請(qǐng)輸入送貨地址!, vbCritical, 提示 txt_address.SetFocusEnd IfIf IsNull(txt_name) Then MsgBox 請(qǐng)輸入送貨人!, vbCritical, 提示 txt_name.SetFocusEn
40、d IfIf IsNull(txt_date) Then MsgBox 請(qǐng)輸入送貨日期!, vbCritical, 提示 txt_date.SetFocusEnd IfDim str_temp As String訂單編號(hào)是整形,不需要單引號(hào)str_temp = select * from 訂單 where 訂單編號(hào)= & txt_no & Set mrc = ExeSQL(str_temp)If mrc.EOF Then MsgBox 沒(méi)有該訂單!, vbCritical, 提示Else記錄查找到的訂單信息 str(0) = mrc(訂單編號(hào)) str(1) = mrc(客戶編
41、號(hào)) str(2) = mrc(產(chǎn)品編號(hào)) str(3) = mrc(供應(yīng)商編號(hào)) str(4) = mrc(銷售單價(jià)) str(5) = mrc(訂購(gòu)數(shù)量) str(6) = mrc(訂單金額) str(7) = mrc(預(yù)定時(shí)間) str(8) = mrc(訂單時(shí)間) mrc.Close Set mrc = Nothing End IfDim rs As New ADODB.Recordset rs.Open 訂單處理明細(xì), CurrentProject.Connection, adOpenDynamic, adLockOptimistic rs.AddNew rs(訂單編號(hào)) = str
42、(0) rs(客戶編號(hào)) = str(1) rs(產(chǎn)品編號(hào)) = str(2) rs(供應(yīng)商編號(hào)) = str(3) rs(預(yù)定時(shí)間) = str(7) rs(發(fā)貨時(shí)間) = txt_date rs(銷售單價(jià)) = str(4) rs(訂購(gòu)數(shù)量) = str(5) rs(訂單金額) = str(6) rs(付款方式) = Combo1 rs(付款時(shí)間) = 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)”窗體代碼更新庫(kù)存表中的數(shù)量Dim rs2 As New ADODB.Recordset查找?guī)齑姹碇械挠涗泂tr_temp = select * from 庫(kù)存 Where 產(chǎn)品編號(hào) = & str(2) & rs2.Open str_temp, CurrentProject.Connection, adOpenDynamic, adLockOptimisticIf Not rs2.EOF Thenrs2(庫(kù)存量) = rs2(庫(kù)存量) - str(5)rs2.UpdateEnd Ifrs2.CloseSet rs2 = Nothing MsgBox 成功
44、更新了庫(kù)存! 錯(cuò)誤處理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)商”窗體代碼 已知我們?cè)O(shè)計(jì)的“供應(yīng)商”窗體如下圖所示。 12.7.6 “供應(yīng)商”窗體代碼窗體中各個(gè)按鈕的代碼如下。 “銷售查詢”按鈕代碼如下。Private Sub btn_query_Click()If IsNull(供應(yīng)商編號(hào)) Or IsNull(txt_date1) Or IsNull(txt_da
46、te2) ThenMsgBox 您必須輸入供應(yīng)商編號(hào)、開始時(shí)間和截止時(shí)間。 txt_date1.SetFocus Else If (txt_date1 txt_date2) Then MsgBox 結(jié)束時(shí)間必須大于開始時(shí)間。 焦點(diǎn)移到第一個(gè)時(shí)間上 txt_date1.SetFocus Else 打開供應(yīng)商銷售的報(bào)表 DoCmd.OpenReport 供應(yīng)商報(bào)表, acViewPreview, , , acWindowNormal End If End IfEnd Sub “返回”按鈕代碼如下。Private Sub btn_return_Click() DoCmd.Close docmd.Op
47、enForm 切換面板End Sub添加代碼以后的【代碼】窗體如下圖所示。 12.7.7 “進(jìn)貨資料查詢”窗體代碼 已知我們?cè)O(shè)計(jì)的“進(jìn)貨資料查詢”窗體如下圖所示。 12.7.7 “進(jìn)貨資料查詢”窗體代碼“清除”按鈕添加的代碼如下。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)計(jì)總數(shù)Me.進(jìn)貨資料查詢子窗體.Form.Filter = Me.進(jìn)貨資料查詢子窗體.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 & 入庫(kù)日期 = # & Format(Me.date1, yyyy-mm-dd) & #) AND End If If Not IsNull(Me.date2) Then str = str & 入庫(kù)日期 0 Then str = Left(str, Len(str) - 5) End If 子窗體查詢和統(tǒng)計(jì),設(shè)置過(guò)濾條件Me.進(jìn)貨資料查詢子窗體.Form
51、.Filter = strMe.進(jìn)貨資料查詢子窗體.Form.FilterOn = True錯(cuò)誤處理Exit_btn_query_Click: Exit SubErr_btn_query_Click: Exit Sub Resume Exit_btn_query_ClickEnd Sub12.7.7 “進(jìn)貨資料查詢”窗體代碼“返回”按鈕的代碼如下所示。Private Sub btn_return_Click()Me.Visible = FalseDoCmd.OpenForm 產(chǎn)品進(jìn)庫(kù)End Sub添加代碼完成以后,【代碼】窗體如下圖所示。 12.7.8 “密碼管理”窗體代碼 已知我們?cè)O(shè)計(jì)的“密
52、碼管理”窗體如下圖所示。 12.7.8 “密碼管理”窗體代碼 “密碼管理”窗體代碼如下所示。聲明變量Option Compare DatabaseDim rs As New ADODB.RecordsetDim flag As Boolean公用的判斷為空的函數(shù)Sub common()If IsNull(txt_name) ThenMsgBox 請(qǐng)輸入用戶名!, vbCritical, 提示 txt_name.SetFocus flag = FalseEnd IfIf IsNull(txt_pwd1) ThenMsgBox 請(qǐng)輸入密碼!, vbCritical, 提示 txt_pwd1.Set
53、Focus flag = FalseEnd If If IsNull(txt_pwd2) ThenMsgBox 請(qǐng)輸入確認(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 請(qǐng)輸入新密碼, vbCritical, 提示End IfIf IsNull(new_pwd2) ThenMsgBox 請(qǐng)?jiān)俅屋斎胄旅艽a, vbCritical, 提示End IfIf new_pwd1 new_pwd2 ThenMsgBox 兩次輸入不一致 , vbCritical, 錯(cuò)誤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. 本站所有資源如無(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 文明促進(jìn)條例試題及答案
- 2025年醫(yī)學(xué)影像學(xué)考試題及答案解析
- 公共類試題及答案
- 環(huán)境科學(xué)污染物治理技術(shù)試題集
- 2025年土地資源管理專業(yè)考試試題及答案
- 2025年公務(wù)員面試技巧考試題及答案
- 觀光經(jīng)營(yíng)面試題及答案
- 資產(chǎn)管理考試題及答案
- 按摩中級(jí)考試試題及答案
- 西方國(guó)家在國(guó)際事務(wù)中的政策互動(dòng)研究試題及答案
- 婚慶公司采購(gòu)合同范本
- ZYJ型壓風(fēng)供水自救裝置培訓(xùn)
- 員工下班喝酒意外免責(zé)協(xié)議書
- 重慶市開州區(qū)2022-2023學(xué)年七年級(jí)下學(xué)期語(yǔ)文期末試卷(含答案)
- 無(wú)責(zé)任人道主義賠償協(xié)議書
- 四川省德陽(yáng)市綿竹市2024年八年級(jí)二模生物、地理試題+-
- DB11∕T 1254-2022 再生水熱泵系統(tǒng)工程技術(shù)規(guī)范
- (高清版)DZT 0145-2017 土壤地球化學(xué)測(cè)量規(guī)程
- 高校物業(yè)學(xué)生宿舍管理服務(wù)方案
- 年產(chǎn)5萬(wàn)噸丙烯直接水合制備異丙醇工藝Aspen模擬
- 果醬控制方案
評(píng)論
0/150
提交評(píng)論