版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
本章學習要點了解進銷存系統(tǒng)的概念系統(tǒng)的功能設(shè)計系統(tǒng)的模塊設(shè)計表和表關(guān)系的設(shè)計查詢的設(shè)計窗體的創(chuàng)建報表的創(chuàng)建宏命令和VBA代碼的創(chuàng)建系統(tǒng)的運行與應(yīng)用
本章學習要點了解進銷存系統(tǒng)的概念112.1實例導航系統(tǒng)功能開發(fā)要點12.1實例導航系統(tǒng)功能212.1.1系統(tǒng)功能我們所設(shè)計的進銷存系統(tǒng)的主要功能包括如下。商品基本信息的管理:用來處理進出庫的商品信息,包括新建、修改、刪除和查詢等。訂單信息的處理:是整個系統(tǒng)的工作流程的起點,包括訂單的增減、查詢,以及訂單在處理過程中(如發(fā)貨確認等)狀態(tài)的改變。產(chǎn)品入庫出庫管理:完成記錄,修改商品入出庫信息,并有庫存報表功能。查詢功能:允許管理員可以按編號、日期對進貨商的銷售信息進行查詢;對入庫的產(chǎn)品信息進行詳細的查詢,包括編號、名稱、入庫時間等。12.1.1系統(tǒng)功能我們所設(shè)計的進銷存系統(tǒng)的主要功能包312.1.2開發(fā)要點理解數(shù)據(jù)表的結(jié)構(gòu),掌握各表之間關(guān)系的建立原理,熟悉查詢和窗體的設(shè)計,對進銷存管理系統(tǒng)有比較清楚的了解,從而開發(fā)出完整的進銷存管理系統(tǒng)。12.1.2開發(fā)要點理解數(shù)據(jù)表的結(jié)構(gòu),掌握各表之間關(guān)系412.2系統(tǒng)需求分析設(shè)計需求分析模塊設(shè)計12.2系統(tǒng)需求分析設(shè)計需求分析512.2.1需求分析用戶的需求主要有以下內(nèi)容。將訂單、商品、供應(yīng)商、客戶、商品、進貨、銷售等信息錄入管理系統(tǒng),提供修改和查詢。能夠?qū)Ω黝愋畔⑻峁┎樵?。能夠統(tǒng)計進出庫的各類信息,對進庫、銷售、庫存進行匯總,協(xié)調(diào)各部門的相互工作。12.2.1需求分析用戶的需求主要有以下內(nèi)容。612.2.2模塊設(shè)計按照前面的需求分析,我們設(shè)計的進銷存系統(tǒng)分為以下幾個模塊。系統(tǒng)的基本配置模塊:包括產(chǎn)品、供應(yīng)商、客戶的基本資料的錄入。產(chǎn)品進出庫處理模塊:主要包括對訂單信息的處理和采購單的處理,一般產(chǎn)品入出庫的處理。查詢模塊:對系統(tǒng)中的各類信息,如供應(yīng)商資料、出入庫詳細資料等進行查詢,支持多個條件的復合查詢。報表顯示模塊:根據(jù)用戶的需要和查詢結(jié)果來生成報表。12.2.2模塊設(shè)計按照前面的需求分析,我們設(shè)計的進銷712.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數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計數(shù)據(jù)表結(jié)構(gòu)需求分析812.3.1數(shù)據(jù)表結(jié)構(gòu)需求分析在本系統(tǒng)中,我們設(shè)計了10張數(shù)據(jù)表,各個表存儲的信息如下所示。“管理員”表:存放系統(tǒng)管理人員信息,一般是企業(yè)管理人員的用戶名和密碼?!爱a(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ā)貨人等?!叭霂煊涗洝北恚捍娣女a(chǎn)品入庫的信息?!俺鰩煊涗洝北恚捍娣女a(chǎn)品出庫的信息?!皹I(yè)務(wù)類別”表:記錄進出庫的業(yè)務(wù)類型?!皫齑妗北恚河涗洰a(chǎn)品的庫存信息。12.3.1數(shù)據(jù)表結(jié)構(gòu)需求分析在本系統(tǒng)中,我們設(shè)計了1912.3.2建立空數(shù)據(jù)庫系統(tǒng)建立一個“進銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫。第一步:打開Access2007,單擊【開始使用MicrosoftOfficeAccess】頁中的【空白數(shù)據(jù)庫】按鈕,如下圖所示。第二步:系統(tǒng)出現(xiàn)如下圖所示的窗口,選擇合適的路徑,輸入數(shù)據(jù)庫名稱為“進銷存系統(tǒng).accdb”。12.3.2建立空數(shù)據(jù)庫系統(tǒng)建立一個“進銷存管理系統(tǒng).1012.3.2建立空數(shù)據(jù)庫系統(tǒng)建立一個“進銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫。第三步:單擊【創(chuàng)建】按鈕,完成該數(shù)據(jù)庫的創(chuàng)建。系統(tǒng)自動建立了一個名為“表1”的數(shù)據(jù)表。12.3.2建立空數(shù)據(jù)庫系統(tǒng)建立一個“進銷存管理系統(tǒng).1112.3.3創(chuàng)建數(shù)據(jù)表“管理員”表“產(chǎn)品信息”表12.3.3創(chuàng)建數(shù)據(jù)表“管理員”表1212.3.3創(chuàng)建數(shù)據(jù)表“供應(yīng)商”表12.3.3創(chuàng)建數(shù)據(jù)表“供應(yīng)商”表1312.3.3創(chuàng)建數(shù)據(jù)表“客戶”表12.3.3創(chuàng)建數(shù)據(jù)表“客戶”表1412.3.3創(chuàng)建數(shù)據(jù)表“訂單”表12.3.3創(chuàng)建數(shù)據(jù)表“訂單”表1512.3.3創(chuàng)建數(shù)據(jù)表“訂單處理明細”表12.3.3創(chuàng)建數(shù)據(jù)表“訂單處理明細”表1612.3.3創(chuàng)建數(shù)據(jù)表“入庫記錄”表12.3.3創(chuàng)建數(shù)據(jù)表“入庫記錄”表1712.3.3創(chuàng)建數(shù)據(jù)表“出庫記錄”表12.3.3創(chuàng)建數(shù)據(jù)表“出庫記錄”表1812.3.3創(chuàng)建數(shù)據(jù)表“業(yè)務(wù)類別”表“庫存”表12.3.3創(chuàng)建數(shù)據(jù)表“業(yè)務(wù)類別”表“庫存”表1912.3.4定義數(shù)據(jù)表之間的關(guān)系建立“產(chǎn)品信息”表和“出庫記錄”表之間的表關(guān)系。第一步:啟動Access2007,打開“進銷存管理系統(tǒng).accdb”。第二步:切換到【數(shù)據(jù)庫工具】選項卡,單擊【關(guān)系】按鈕,如下圖所示。第三步:單擊右鍵,在彈出的快捷菜單中選擇【顯示表】命令,按住Ctrl鍵,選擇所有的表,然后單擊【添加】按鈕,把所有的表都添加上去,如下圖所示。12.3.4定義數(shù)據(jù)表之間的關(guān)系建立“產(chǎn)品信息”表和“2012.3.4定義數(shù)據(jù)表之間的關(guān)系建立“產(chǎn)品信息”表和“出庫記錄”表之間的表關(guān)系。第四步:設(shè)置表的參照完整性。我們以“產(chǎn)品信息”表中的“產(chǎn)品編號”字段與“出庫記錄”表中的“產(chǎn)品編號”字段為例。按下鼠標左鍵拖動“產(chǎn)品信息”表中的“產(chǎn)品編號”字段到“出庫記錄”表中的“產(chǎn)品編號”字段上,釋放鼠標左鍵,系統(tǒng)彈出【編輯關(guān)系】對話框,如下圖所示。第五步:選中【實施參照完整性】復選框,這樣就建立了表之間的一對多關(guān)系,如下圖所示。12.3.4定義數(shù)據(jù)表之間的關(guān)系建立“產(chǎn)品信息”表和“2112.3.4定義數(shù)據(jù)表之間的關(guān)系按照同樣的步驟,可以建立起其他表之間的關(guān)系。最終建立了下面的關(guān)系圖。我們設(shè)計的數(shù)據(jù)庫表中,各種表關(guān)系如下表所示。12.3.4定義數(shù)據(jù)表之間的關(guān)系按照同樣的步驟,可2212.4窗體的實現(xiàn)“登錄”窗體“切換面板”窗體“訂單處理”窗體“發(fā)貨確認”窗體“產(chǎn)品進庫”窗體“供應(yīng)商查詢編輯”窗體“進貨資料查詢”窗體“密碼管理”窗體12.4窗體的實現(xiàn)“登錄”窗體2312.4.1“登錄”窗體運用“模式對話框”窗體,設(shè)計本系統(tǒng)的“登錄”窗體。第一步:啟動Access2007,打開“進銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。第二步:切換到【創(chuàng)建】選項卡,選擇【窗體】組中【其他窗體】下拉菜單中的【模式對話框】選項,如下圖所示。第三步:出現(xiàn)一張空白窗體,已有兩個按鈕:【確定】和【取消】,如下圖所示。12.4.1“登錄”窗體運用“模式對話框”窗體,設(shè)計本2412.4.1“登錄”窗體運用“模式對話框”窗體,設(shè)計本系統(tǒng)的“登錄”窗體。第四步:調(diào)整窗體布局,在窗體上添加幾個控件,屬性值設(shè)置如下表所示。第五步:設(shè)置主體背景顏色。在主體區(qū)域中右擊,在彈出的快捷菜單中選擇【填充/背景色】選項,彈出如下圖所示的菜單。12.4.1“登錄”窗體運用“模式對話框”窗體,設(shè)計本系2512.4.1“登錄”窗體運用“模式對話框”窗體,設(shè)計本系統(tǒng)的“登錄”窗體。第六步:調(diào)整窗體布局,完成后的“登錄”窗體如下圖所示。12.4.1“登錄”窗體運用“模式對話框”窗體,設(shè)計本系2612.4.2“切換面板”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“切換面板”窗體。第一步:啟動Access2007,打開“進銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。第二步:切換到【創(chuàng)建】選項卡,單擊【窗體】組中的【窗體設(shè)計】按鈕,出現(xiàn)一張空白窗體。第三步:調(diào)整窗體布局。添加一個“矩形”控件,“背景”屬性設(shè)為“#9DBB61”。添加標題控件,并將標題設(shè)為“進銷存系統(tǒng)示例”。添加一個徽標控件,圖片為“羅斯文.png”,創(chuàng)建后的效果如下圖所示。12.4.2“切換面板”窗體運用窗體的【設(shè)計視圖】,設(shè)2712.4.2“切換面板”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“切換面板”窗體。第四步:利用命令按鈕控件和標簽控件,為窗體添加幾個按鈕和標簽,來處理管理員的操作。各個控件的屬性設(shè)置如下表所示。第五步:這樣就完成了“切換面板”窗體的創(chuàng)建,完成后的結(jié)果如下圖所示。12.4.2“切換面板”窗體運用窗體的【設(shè)計視圖】,設(shè)2812.4.3“訂單處理”窗體運用窗體向?qū)?,設(shè)計本系統(tǒng)的“訂單處理”窗體。第一步:啟動Access2007,打開“進銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。第二步:切換到【創(chuàng)建】選項卡,選擇【窗體】組中【其他窗體】下拉菜單中的【窗體向?qū)А窟x項。第三步:按照前面章節(jié)介紹的步驟,在【表/查詢】下拉列表框中選擇“表:訂單”,將【可選字段】列表框中的所有字段加入右面【選定字段】列表框中,然后依次確定即可。系統(tǒng)自動生成的窗體如下圖所示。12.4.3“訂單處理”窗體運用窗體向?qū)?,設(shè)計本系統(tǒng)的2912.4.3“訂單處理”窗體運用窗體向?qū)?,設(shè)計本系統(tǒng)的“訂單處理”窗體。第四步:若要加上按鈕控件,則切換到【窗體設(shè)計工具】選項卡,單擊【使用控件向?qū)А堪粹o,則所有添加控件都會在向?qū)J较逻M行。第五步:單擊【命令控件】按鈕,出現(xiàn)如下圖所示的【命令按鈕向?qū)А繉υ捒?,我們以“保存記錄”為例加以說明。12.4.3“訂單處理”窗體運用窗體向?qū)?,設(shè)計本系統(tǒng)的3012.4.3“訂單處理”窗體運用窗體向?qū)?,設(shè)計本系統(tǒng)的“訂單處理”窗體。第六步:單擊【下一步】按鈕,為按鈕添加上合適的圖標或者文字,如下圖所示。第七步:單擊【下一步】按鈕,在彈出的指定按鈕名稱的對話框中輸入該按鈕的名稱,如下圖所示。12.4.3“訂單處理”窗體運用窗體向?qū)?,設(shè)計本系統(tǒng)的3112.4.3“訂單處理”窗體運用窗體向?qū)?,設(shè)計本系統(tǒng)的“訂單處理”窗體。第八步:修改如下表所示主要控件的屬性,設(shè)置窗體的頁眉和頁腳。第九步:這樣我們就完成了“訂單處理”窗體的創(chuàng)建過程,完成后的界面如下圖所示。12.4.3“訂單處理”窗體運用窗體向?qū)ВO(shè)計本系統(tǒng)的3212.4.4“發(fā)貨確認”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“發(fā)貨確認”窗體。第一步:單擊右鍵,在彈出的快捷菜單中選擇【窗體頁眉/頁腳】選項,進行窗體頁眉設(shè)置。步驟和前面一樣,這里不再贅述。第二步:在窗體上添加控件,屬性見下表所示。第三步:完成后的“發(fā)貨確認”窗體如下圖所示。12.4.4“發(fā)貨確認”窗體運用窗體的【設(shè)計視圖】,設(shè)3312.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第一步:單擊【創(chuàng)建】選項卡中【窗體】組中的【窗體設(shè)計】按鈕,會出現(xiàn)一個空白窗體。第二步:為窗體設(shè)計一個窗體頁眉,單擊右鍵,彈出如下快捷菜單。12.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)3412.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第三步:選擇【窗體頁眉/頁腳】選項,窗體中出現(xiàn)【窗體頁眉】區(qū)域,如下圖所示。第四步:為窗體添加一個標簽,設(shè)置標題為“產(chǎn)品進庫管理”,再添加一個徽標控件,圖片設(shè)置為“羅斯文.png”。第五步:為窗體添加表中的字段。單擊【主體】區(qū)域,單擊【設(shè)計】選項卡下的【添加現(xiàn)有字段】按鈕,彈出【字段列表】窗格,如下圖所示。12.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)3512.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第六步:將“入庫記錄”表的所有字段添加到窗體上,并排列整齊。第七步:為窗體增加4個導航按鈕,分別為“第一個”、“前一個”、“后一個”、“最后一個”。添加的方法利用【命令按鈕向?qū)А繉υ捒?,如下圖所示。第八步:用同樣的方法,為窗體加上幾個功能按鈕,標題分別為“添加記錄”、“保存記錄”、“刪除記錄”、“進貨查詢”、“庫存查詢”和“返回”。12.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)3612.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第九步:如果要查看數(shù)據(jù)表格式的入庫記錄,我們可以在窗體上添加一個子窗體。第十步:單擊【控件】組中的【子窗體/子報表】按鈕,并拖放到窗體中,出現(xiàn)【子窗體向?qū)А繉υ捒?,如下圖所示。第十一步:選中【使用現(xiàn)有的表和查詢】單選按鈕,單擊【下一步】按鈕,彈出選擇字段的對話框。在對話框的【表/查詢】下拉列表框中選擇“表:入庫記錄”,并把“入庫記錄”表的全部字段加入到【選定字段】列表框中,如下圖所示。12.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)3712.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第十二步:單擊【下一步】按鈕,在彈出的對話框中選擇主/次字段的鏈接方式。我們選中【從列表中選擇】單選按鈕,并在下面的列表框中選擇用“入庫編號”顯示,如下圖所示。第十三步:單擊【下一步】按鈕,在彈出的對話框中輸入子窗體的名稱,如下圖所示。12.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)3812.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)計本系統(tǒng)的“產(chǎn)品進庫”窗體。第十四步:調(diào)整窗體的布局,這樣我們就完成了“產(chǎn)品進庫”窗體的創(chuàng)建。最終的創(chuàng)建效果如下圖所示。12.4.5“產(chǎn)品進庫”窗體運用窗體的【設(shè)計視圖】,設(shè)3912.4.6“供應(yīng)商查詢編輯”窗體運用窗體的窗體向?qū)ВO(shè)計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第一步:切換到【創(chuàng)建】選項卡,選擇【其他窗體】下拉菜單中的【窗體向?qū)А窟x項,如下圖所示。第二步:按照向?qū)У奶崾?,在【?查詢】下拉列表框中選擇“表:供應(yīng)商”,將【可選字段】列表框中的所有字段加入到右面【選定字段】列表框中。其他設(shè)置按照以前的介紹設(shè)置,最后生成的窗體如下圖所示。12.4.6“供應(yīng)商查詢編輯”窗體運用窗體的窗體向?qū)В?012.4.6“供應(yīng)商查詢編輯”窗體運用窗體的窗體向?qū)ВO(shè)計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第三步:我們還要在這個窗體上加上“記錄導航”按鈕和“記錄操作”按鈕,注意在“使用控件向?qū)А毕绿砑印5谒牟剑哼€添加了另外幾個控件,屬性設(shè)置見下表所示。第五步:調(diào)整窗體布局,完成后的窗體如下圖所示。12.4.6“供應(yīng)商查詢編輯”窗體運用窗體的窗體向?qū)В?112.4.7“進貨資料查詢”窗體設(shè)計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來顯示查詢結(jié)果。第一步:切換到【創(chuàng)建】選項卡,單擊【窗體】組中的【窗體設(shè)計】按鈕。第二步:添加若干控件,并設(shè)置它們的屬性值,具體情況如下表所示。12.4.7“進貨資料查詢”窗體設(shè)計本系統(tǒng)的“供應(yīng)商查4212.4.7“進貨資料查詢”窗體設(shè)計本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來顯示查詢結(jié)果。第五步:調(diào)整窗體布局,完成了“進貨資料查詢”窗體的創(chuàng)建,最終效果如下圖所示。12.4.7“進貨資料查詢”窗體設(shè)計本系統(tǒng)的“供應(yīng)商查4312.4.8“密碼管理”窗體“密碼管理”窗體控件如下表所示。完成后的“密碼管理”窗體如下圖所示。12.4.8“密碼管理”窗體“密碼管理”窗體控件如下表4412.4.8“密碼管理”窗體“新密碼”窗體控件如下表所示。完成后的“新密碼”窗體如下圖所示。12.4.8“密碼管理”窗體“新密碼”窗體控件如下表所示4512.5查詢的實現(xiàn)“訂單處理查詢”的設(shè)計“供應(yīng)商銷售查詢”的設(shè)計“進貨資料查詢”的設(shè)計“庫存查詢”的設(shè)計12.5查詢的實現(xiàn)“訂單處理查詢”的設(shè)計4612.5.1“訂單處理查詢”的設(shè)計使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢”第一步:切換到【創(chuàng)建】選項卡,然后單擊【其他】組中的【查詢設(shè)計】按鈕,如下圖所示。第二步:系統(tǒng)彈出如下圖所示的【顯示表】對話框,提示我們加入所需要的表,如下圖所示。12.5.1“訂單處理查詢”的設(shè)計使用“查詢向?qū)А眮韯?chuàng)4712.5.1“訂單處理查詢”的設(shè)計使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢”第三步:選擇“訂單表明細”表,單擊【添加】按鈕,將該表添加到查詢的【設(shè)計視圖】中。第四步:依次選擇該表中的全部字段,將其添加到查詢的設(shè)計網(wǎng)格中,如下圖所示。第五步:為字段添加查詢條件。右擊“訂單編號”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項,如下圖所示。12.5.1“訂單處理查詢”的設(shè)計使用“查詢向?qū)А眮韯?chuàng)4812.5.1“訂單處理查詢”的設(shè)計使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢”第六步:系統(tǒng)彈出【表達式生成器】對話框。在【表達式生成器】對話框中,我們?yōu)椴樵兊淖侄卧O(shè)置條件,將它和窗體上的控件值聯(lián)系到一起,如下圖所示。第七步:保存該查詢?yōu)椤坝唵翁幚聿樵儭薄_@樣,我們就完成了“訂單處理查詢”的創(chuàng)建。輸入的查詢條件如上圖所示,這樣把查詢中的“訂單編號”和窗體上的“訂單編號”關(guān)聯(lián)起來。12.5.1“訂單處理查詢”的設(shè)計使用“查詢向?qū)А眮韯?chuàng)4912.5.2“供應(yīng)商銷售查詢”的設(shè)計設(shè)計“供應(yīng)商銷售查詢”第一步:切換到【創(chuàng)建】選項卡,然后單擊【其他】組中的【查詢設(shè)計】按鈕。第二步:彈出的【顯示表】對話框中,依次把“供應(yīng)商”表、“訂單”表和“產(chǎn)品信息”表添加到查詢的【設(shè)計視圖】中,然后關(guān)閉該對話框,如下圖所示。第三步:選擇要進行查詢的字段。雙擊選擇的字段,即可將字段加入到下面的查詢設(shè)計網(wǎng)格中,最終結(jié)果如下圖所示。12.5.2“供應(yīng)商銷售查詢”的設(shè)計設(shè)計“供應(yīng)商銷售查5012.5.2“供應(yīng)商銷售查詢”的設(shè)計設(shè)計“供應(yīng)商銷售查詢”第四步:為字段添加查詢條件。右擊“供應(yīng)商編號”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項,如下圖所示。第五步:在彈出的【表達式生成器】對話框中,我們?yōu)椤肮?yīng)商編號”字段設(shè)置查詢條件,如下圖所示。12.5.2“供應(yīng)商銷售查詢”的設(shè)計設(shè)計“供應(yīng)商銷售查5112.5.2“供應(yīng)商銷售查詢”的設(shè)計設(shè)計“供應(yīng)商銷售查詢”第六步:按照同樣的步驟,設(shè)置字段的查詢條件。整個查詢的條件設(shè)置如下表所示。第七步:保存該查詢?yōu)椤肮?yīng)商銷售查詢”,這樣我們就完成了該查詢的創(chuàng)建。12.5.2“供應(yīng)商銷售查詢”的設(shè)計設(shè)計“供應(yīng)商銷售查5212.5.3“進貨資料查詢”的設(shè)計我們建立的字段的信息如下表所示。12.5.3“進貨資料查詢”的設(shè)計我們建立的字段的信息5312.5.3“進貨資料查詢”的設(shè)計“進貨資料查詢”查詢的【設(shè)計視圖】如下圖所示。12.5.3“進貨資料查詢”的設(shè)計“進貨資料查詢”查詢的5412.5.4“庫存查詢”的設(shè)計設(shè)計“庫存查詢”。第一步:切換到【創(chuàng)建】選項卡,然后單擊【其他】組中的【查詢設(shè)計】按鈕,如下圖所示。第二步:在彈出的【顯示表】對話框中,將“庫存”表和“產(chǎn)品信息”表添加到查詢【設(shè)計視圖】中,將該表中的所有字段添加到查詢設(shè)計網(wǎng)格中,如下圖所示。12.5.4“庫存查詢”的設(shè)計設(shè)計“庫存查詢”。第一5512.5.4“庫存查詢”的設(shè)計設(shè)計“庫存查詢”。第一步:為字段添加條件。右擊“產(chǎn)品編號”字段的【條件】行,在彈出的快捷菜單中選擇【生成器】選項。第二步:系統(tǒng)彈出【表達式生成器】對話框,在該對話框中為查詢的字段設(shè)置條件,將它和窗體上的控件值聯(lián)系到一起。設(shè)置的查詢條件如下圖所示。第三步:保存該查詢?yōu)椤皫齑娌樵儭保@樣我們就完成了“庫存查詢”的創(chuàng)建。12.5.4“庫存查詢”的設(shè)計設(shè)計“庫存查詢”。第一5612.6報表的實現(xiàn)“訂單查詢”報表“供應(yīng)商銷售”報表“庫存”報表12.6報表的實現(xiàn)“訂單查詢”報表5712.6.1“訂單查詢”報表“訂單查詢”報表用來顯示訂單查詢的結(jié)果。第一步:切換到【創(chuàng)建】選項卡,單擊【報表】組中的【報表向?qū)А堪粹o,如下圖所示。第二步:系統(tǒng)彈出【報表向?qū)А繉υ捒?,在【?查詢】下拉列表框中選擇“查詢:訂單查詢”,然后把所有字段作為選定字段,如下圖所示。12.6.1“訂單查詢”報表“訂單查詢”報表用來顯示5812.6.1“訂單查詢”報表“訂單查詢”報表用來顯示訂單查詢的結(jié)果。第三步:單擊【下一步】按鈕,彈出選擇數(shù)據(jù)查看方式的對話框。我們選擇“通過訂單”選項,如下圖所示。第四步:單擊【下一步】按鈕,彈出選擇分組級別的對話框。本報表中我們不添加分組級別,如下圖所示。12.6.1“訂單查詢”報表“訂單查詢”報表用來顯示5912.6.1“訂單查詢”報表“訂單查詢”報表用來顯示訂單查詢的結(jié)果。第五步:單擊【下一步】按鈕,在彈出的對話框中選擇“產(chǎn)品編號”為排序字段,按升序排序,如下圖所示。第六步:單擊【下一步】按鈕,在彈出的對話框中選擇布局方式為“表格”布局,布局方向為“縱向”,如下圖所示。12.6.1“訂單查詢”報表“訂單查詢”報表用來顯示6012.6.1“訂單查詢”報表“訂單查詢”報表用來顯示訂單查詢的結(jié)果。第七步:單擊【下一步】按鈕,在彈出的對話框中選擇報表樣式。我們選擇【辦公室】選項,如下圖所示。第八步:單擊【下一步】按鈕,輸入該報表的名稱為“訂單查詢報表”,如下圖所示。12.6.1“訂單查詢”報表“訂單查詢”報表用來顯示6112.6.1“訂單查詢”報表“訂單查詢”報表用來顯示訂單查詢的結(jié)果。第九步:單擊【完成】按鈕,完成“訂單查詢報表”的創(chuàng)建。此時該報表的【設(shè)計視圖】如下圖所示。12.6.1“訂單查詢”報表“訂單查詢”報表用來顯示6212.6.2“供應(yīng)商銷售”報表建立“供應(yīng)商銷售”報表,作為供應(yīng)商銷售查詢的輸出結(jié)果。第一步:切換到【創(chuàng)建】選項卡,單擊【報表】組中的【報表向?qū)А堪粹o,如下圖所示。第二步:在彈出的【報表向?qū)А繉υ捒蛑?,選擇報表的數(shù)據(jù)源為“查詢:供應(yīng)商查詢”,然后把查詢中的所有字段作為選定字段,如下圖所示。12.6.2“供應(yīng)商銷售”報表建立“供應(yīng)商銷售”報表,6312.6.2“供應(yīng)商銷售”報表建立“供應(yīng)商銷售”報表,作為供應(yīng)商銷售查詢的輸出結(jié)果。第三步:單擊【下一步】按鈕,在彈出的對話框中選擇數(shù)據(jù)的查看方式。我們選擇“通過供應(yīng)商”選項,如下圖所示。第四步:單擊【下一步】按鈕,在彈出的對話框中不選擇分組級別。第五步:單擊【下一步】按鈕,在排序方式中選擇通過“預(yù)定時間”和“訂購數(shù)量”進行排序,排序方式分別為“升序”和“降序”,如下圖所示。12.6.2“供應(yīng)商銷售”報表建立“供應(yīng)商銷售”報表,6412.6.2“供應(yīng)商銷售”報表建立“供應(yīng)商銷售”報表,作為供應(yīng)商銷售查詢的輸出結(jié)果。第六步:單擊【下一步】按鈕,在彈出的對話框中選擇報表的樣式為“辦公室”。第七步:單擊【下一步】按鈕,輸入報表標題為“供應(yīng)商銷售報表”,選中【預(yù)覽報表】單選按鈕。第八步:單擊【完成】按鈕,完成“供應(yīng)商銷售報表”的創(chuàng)建。此時報表的【設(shè)計視圖】如下圖所示。12.6.2“供應(yīng)商銷售”報表建立“供應(yīng)商銷售”報表,6512.6.3“庫存”報表在建立“庫存”報表前,我們需要建立一個“庫存查詢”,建立查詢的過程如下所示。第一步:切換到【創(chuàng)建】選項卡,單擊【報表】組中的【報表向?qū)А堪粹o,如下圖所示。第二步:在彈出的【報表向?qū)А繉υ捒蛑?,選擇報表的數(shù)據(jù)源為“查詢:庫存查詢”,然后把查詢中的所有字段作為選定字段,如下圖所示。12.6.3“庫存”報表在建立“庫存”報表前,我們需要6612.6.3“庫存”報表在建立“庫存”報表前,我們需要建立一個“庫存查詢”,建立查詢的過程如下所示。第三步:為報表添加分組級別“產(chǎn)品類別”,這樣就把不同類別產(chǎn)品的信息分開了,如下圖所示。第四步:系統(tǒng)彈出提示排序次序的對話框,我們用“產(chǎn)品編號”作為排序的標準,單擊【下一步】按鈕。12.6.3“庫存”報表在建立“庫存”報表前,我們需要6712.6.3“庫存”報表在建立“庫存”報表前,我們需要建立一個“庫存查詢”,建立查詢的過程如下所示。第五步:單擊【下一步】按鈕,在彈出的對話框中選擇報表的樣式為“辦公室”。第六步:單擊【下一步】按鈕,輸入報表標題為“庫存查詢”,選中【預(yù)覽報表】單選按鈕。第七步:單擊【完成】按鈕,完成了報表的設(shè)計。此時,報表的【設(shè)計視圖】如下圖所示。12.6.3“庫存”報表在建立“庫存”報表前,我們需要6812.7編碼的實現(xiàn)公用模塊“登錄”窗體代碼“切換面板”代碼“產(chǎn)品進庫”窗體代碼“發(fā)貨確認”窗體代碼“供應(yīng)商”窗體代碼“進貨資料查詢”窗體代碼“密碼管理”窗體代碼12.7編碼的實現(xiàn)公用模塊6912.7.1公用模塊建立公用模塊第一步:我們首先要新建一個“模塊”。單擊【數(shù)據(jù)庫工具】選項卡下的VisualBasic按鈕,進入VBA編輯器,如下圖所示。第二步:選擇【插入】菜單,選擇【模塊】命令,即可增加一個新模塊,如下圖所示。12.7.1公用模塊建立公用模塊第一步:我們首先要新建7012.7.1公用模塊建立公用模塊第三步:新建模塊以后,VBA編輯器界面如下圖所示。第四步:我們在新增加的模塊里,增加如下代碼。OptionCompareDatabaseOptionExplicit'txtSQL為執(zhí)行查詢時所需要的SQL語句PublicFunctionExeSQL(ByValtxtSQLAsString)AsADODB.RecordsetOnErrorGoToExeSQL_Error'錯誤處理DimrsAsNewADODB.Recordsetrs.OpentxtSQL,CurrentProject.Connection,adOpenKeyset,adLockOptimistic'返回記錄集對象SetExeSQL=rs'返回值為ExeSQLExeSQL_Exit:Setrs=NothingExitFunctionExeSQL_Error:DimmsgstringAsStringmsgstring="查詢錯誤"&Err.DescriptionMsgBoxmsgstring,vbCriticalResumeExeSQL_ExitEndFunction12.7.1公用模塊建立公用模塊第三步:新建模塊以后,7112.7.1公用模塊為了正確地使用ADO方式來對數(shù)據(jù)庫查詢,我們要在VBA編輯器下加入兩個引用。選擇【工具】|【引用】命令,加入創(chuàng)建表有多種不同的方法,用戶可以根據(jù)自己的習慣和工作的難易程度選擇合適的創(chuàng)建方法。直接輸入、表模板、表的【設(shè)計視圖】是最常用的創(chuàng)建表的方法。MicrosoftActiveXDataObjects2.8Library和MicrosoftActiveXDataObjectsRecordset2.8Library,如下圖所示。12.7.1公用模塊為了正確地使用ADO方式來對7212.7.2“登錄”窗體代碼已知我們設(shè)計的“登錄”窗體如下圖所示。12.7.2“登錄”窗體代碼已知我們設(shè)計的“登錄”窗體7312.7.2“登錄”窗體代碼編寫“登錄”窗體代碼第一步:打開“登錄”窗體的【設(shè)計視圖】,右擊,在彈出的快捷菜單中選擇【屬性表】選項,彈出【屬性表】窗格,如下圖所示。第二步:在【屬性表】窗格的【所選內(nèi)容的類型:窗體】下拉列表框中選擇“窗體”選項。切換到【數(shù)據(jù)】選項卡,把【記錄源】屬性設(shè)置為“管理員”表。第三步:單擊【確定】按鈕,并將【屬性表】切換到【事件】選項卡,在【單擊】屬性的下拉列表框中選擇【事件過程】選項,如下圖所示。12.7.2“登錄”窗體代碼編寫“登錄”窗體代碼第一步7412.7.2“登錄”窗體代碼編寫“登錄”窗體代碼第四步:單擊右邊的省略號按鈕,進入VBA編輯器,添加“確定”按鈕的代碼,如下所示。OptionCompareDatabaseOptionExplicitDimmrcAsADODB.RecordsetDimtxtSQLAsStringDimiAsInteger'記錄錯誤次數(shù)'確定按鈕的代嗎PrivateSubbtn_ok_Click()OnErrorGoToErr_btn_ok_Click'錯誤處理'判斷用戶名是否為空IfIsNull(txt_name)ThenMsgBox"請輸入用戶名!",vbCritical,"提示"txt_name.SetFocusElsetxtSQL="SELECT*from管理員where用戶名='"&txt_name&"'"Setmrc=ExeSQL(txtSQL)Ifmrc.EOFThenMsgBox"沒有此用戶名稱!",vbCritical,"提示"ElseIf(mrc(1)=Txtpwd)Thenmrc.CloseSetmrc=NothingMe.Visible=False'打開切換面板DoCmd.OpenForm"切換面板"Elsei=i+1If(i<3)ThenMsgBox"您輸入的密碼不正確",vbOKOnly+vbExclamation,"提示"ElseMsgBox"你已經(jīng)連續(xù)3次錯誤輸入密碼,系統(tǒng)馬上關(guān)閉!",vbOKOnly+vbExclamation,"警告"ExitSubDoCmd.CloseacForm,Me.NameDoCmd.QuitEndIfTxtpwd.SetFocusTxtpwd.Text=""EndIfEndIfEndIfExit_btn_ok_Click:'錯誤處理ExitSubErr_btn_ok_Click:MsgBox(Err.Description)ResumeExit_btn_ok_ClickEndSub12.7.2“登錄”窗體代碼編寫“登錄”窗體代碼第四步7512.7.2“登錄”窗體代碼編寫“登錄”窗體代碼此時的【代碼】窗口如下圖所示。用同樣的方法,為“取消”按鈕添加如下所示的VBA代碼。'取消按鈕的代碼PrivateSubbtn_cancel_Click()If(MsgBox("確實要退出嗎?",vbQuestion+vbYesNo,"確認")=vbYes)ThenDoCmd.QuitacQuitSaveNoneEndIfEndSub此時的【代碼】窗口如下圖所示。12.7.2“登錄”窗體代碼編寫“登錄”窗體代碼此時的7612.7.3“切換面板”代碼已知我們設(shè)計的“切換面板”窗體如下圖所示。12.7.3“切換面板”代碼已知我們設(shè)計的“切換面板”7712.7.3“切換面板”代碼為“切換面板”窗體添加VBA代碼。第一步:打開“切換面板”窗體的【設(shè)計視圖】,單擊【工具】組中的【屬性表】按鈕,彈出該窗體的【屬性表】窗格,如下圖所示。第二步:單擊Option1按鈕,并在【事件】選項卡下的【單擊】事件中選擇【事件過程】選項,如下圖所示。12.7.3“切換面板”代碼為“切換面板”窗體添加VBA7812.7.3“切換面板”代碼為“切換面板”窗體添加VBA代碼。第三步:單擊右邊的省略號按鈕,進入VBA編輯器,添加Option1按鈕的代碼,如下所示。PrivateSuboption1_Click()Me.Visible=FalseDoCmd.OpenForm"訂單"EndSub此時的【代碼】窗口如左圖所示。12.7.3“切換面板”代碼為“切換面板”窗體添加VBA7912.7.3“切換面板”代碼為“切換面板”窗體添加VBA代碼。用同樣的方法,分別為剩余的按鈕添加代碼,各個按鈕的代碼如下所示。PrivateSuboption2_Click()Me.Visible=FalseDoCmd.OpenForm"產(chǎn)品進庫"EndSubPrivateSuboption3_Click()Me.Visible=FalseDoCmd.OpenForm"發(fā)貨確認"EndSubPrivateSuboption4_Click()Me.Visible=FalseDoCmd.OpenForm"供應(yīng)商"EndSubPrivateSuboption5_Click()Me.Visible=FalseDoCmd.OpenForm"進貨資料查詢"EndSubPrivateSuboption6_Click()Me.Visible=FalseDoCmd.OpenForm"密碼管理"EndSub添加代碼完成以后的最終視圖如下圖所示。12.7.3“切換面板”代碼為“切換面板”窗體添加VBA8012.7.4“產(chǎn)品進庫”窗體代碼已知設(shè)計的“產(chǎn)品進庫”窗體如下圖所示。12.7.4“產(chǎn)品進庫”窗體代碼已知設(shè)計的“產(chǎn)品進庫”8112.7.4“產(chǎn)品進庫”窗體代碼編寫“產(chǎn)品進庫”窗體代碼第一步:進入“產(chǎn)品進庫”窗體的【設(shè)計視圖】,右擊“庫存”按鈕,在彈出的快捷菜單中選擇【事件生成器】選項,如下圖所示。第二步:在彈出的【選擇生成器】對話框中選擇【代碼生成器】選項,如下圖所示。12.7.4“產(chǎn)品進庫”窗體代碼編寫“產(chǎn)品進庫”窗體代碼8212.7.4“產(chǎn)品進庫”窗體代碼編寫“產(chǎn)品進庫”窗體代碼第三步:單擊【確定】按鈕,進入VBA編輯器,在編輯器中為按鈕添加事件過程。該過程的代碼如下所示。'打開庫存查詢報表PrivateSubbtn_house_Click()IfIsNull(產(chǎn)品編號)ThenMsgBox"您必須輸入產(chǎn)品編號",vbCritical,"提示"EndIfDoCmd.OpenReport"庫存報表",acViewPreview,,,acWindowNormalEndSub12.7.4“產(chǎn)品進庫”窗體代碼編寫“產(chǎn)品進庫”窗體代碼8312.7.4“產(chǎn)品進庫”窗體代碼編寫“產(chǎn)品進庫”窗體代碼用同樣的方法,為其他按鈕添加事件過程。各個按鈕的事件過程代碼如下所示。'保存記錄后,要更新庫存數(shù)量PrivateSubbtn_save_Click()DoCmd.RunCommandacCmdSaveRecordDimrsAsNewADODB.RecordsetDimstr_tempAsStringstr_temp="select*from庫存Where產(chǎn)品編號="&產(chǎn)品編號&""rs.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimisticIfNotIsNull(rs)Thenrs("庫存量")=rs("庫存量")-入庫數(shù)量Ifrs("庫存量")>0Thenrs.UpdateElseMsgBox"刪除記錄出錯",vbCriticalEndIfEndIfrs.CloseSetrs=NothingEndSub'刪除記錄后,要更新庫存數(shù)量PrivateSubbtn_del_Click()DimrsAsNewADODB.RecordsetDimstr_tempAsStringstr_temp="select*from庫存Where產(chǎn)品編號='"&產(chǎn)品編號&"'"rs.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimisticIfNotIsNull(rs)Thenrs("庫存量")=rs("庫存量")-入庫數(shù)量rs.UpdateEndIfrs.CloseSetrs=NothingDoCmd.RunCommandacCmdDeleteRecordEndSubPrivateSubbtn_query_Click()DoCmd.OpenForm"進貨資料查詢"Me.Visible=FalseEndSubPrivateSubbtn_return_Click()Me.Visible=FalseEndSub12.7.4“產(chǎn)品進庫”窗體代碼編寫“產(chǎn)品進庫”窗體代碼8412.7.4“產(chǎn)品進庫”窗體代碼添加完事件過程以后的【代碼】窗口如下圖所示。12.7.4“產(chǎn)品進庫”窗體代碼添加完事件過程以后的【代8512.7.5“發(fā)貨確認”窗體代碼已知我們設(shè)計的“發(fā)貨確認”窗體如下圖所示。12.7.5“發(fā)貨確認”窗體代碼已知我們設(shè)計的“發(fā)貨確8612.7.5“發(fā)貨確認”窗體代碼為“發(fā)貨確認”窗體添加事件過程。第一步:打開“發(fā)貨確認”窗體的【設(shè)計視圖】,右擊“確認”按鈕,在彈出的快捷菜單中選擇【事件生成器】選項,在彈出的【選擇生成器】對話框中選擇【代碼生成器】選項,單擊【確定】按鈕,打開VBA程序編輯器,輸入“確認”按鈕代碼。第二步:重復步驟1,對“返回”按鈕關(guān)聯(lián)“單擊事件”過程。相關(guān)代碼如下。OptionCompareDatabase'確認按鈕代碼PrivateSubbrn_ok_Click()OnErrorGoToErr_btn_ok_Click'用這個數(shù)組str(10)來保存訂單記錄中的數(shù)據(jù)Dimstr(10)AsStringDimmrcAsNewADODB.RecordsetIfIsNull(txt_no)ThenMsgBox"請輸入要確認的訂單編號!",vbCritical,"提示"txt_no.SetFocusEndIfIfIsNull(Combo1)ThenMsgBox"請輸入支付方式!",vbCritical,"提示"Combo1.SetFocusCombo1.DropdownEndIf12.7.5“發(fā)貨確認”窗體代碼為“發(fā)貨確認”窗體添加事8712.7.5“發(fā)貨確認”窗體代碼IfIsNull(txt_paydate)ThenMsgBox"請輸入支付日期!",vbCritical,"提示"txt_paydate.SetFocusEndIfIfIsNull(txt_address)ThenMsgBox"請輸入送貨地址!",vbCritical,"提示"txt_address.SetFocusEndIfIfIsNull(txt_name)ThenMsgBox"請輸入送貨人!",vbCritical,"提示"txt_name.SetFocusEndIfIfIsNull(txt_date)ThenMsgBox"請輸入送貨日期!",vbCritical,"提示"txt_date.SetFocusEndIfDimstr_tempAsString'訂單編號是整形,不需要單引號str_temp="select*from訂單where訂單編號="&txt_no&""Setmrc=ExeSQL(str_temp)Ifmrc.EOFThenMsgBox"沒有該訂單!",vbCritical,"提示"Else'記錄查找到的訂單信息str(0)=mrc("訂單編號")str(1)=mrc("客戶編號")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.CloseSetmrc=NothingEndIfDimrsAsNewADODB.Recordsetrs.Open"訂單處理明細",CurrentProject.Connection,adOpenDynamic,adLockOptimisticrs.AddNewrs("訂單編號")=str(0)rs("客戶編號")=str(1)rs("產(chǎn)品編號")=str(2)rs("供應(yīng)商編號")=str(3)rs("預(yù)定時間")=str(7)rs("發(fā)貨時間")=txt_daters("銷售單價")=str(4)rs("訂購數(shù)量")=str(5)rs("訂單金額")=str(6)rs("付款方式")=Combo1rs("付款時間")=txt_paydaters("發(fā)貨地址")=txt_addressrs("發(fā)貨人")=txt_namers("狀態(tài)")="已處理"rs.Updaters.CloseSetrs=NothingMsgBox"成功添加了該信息!"12.7.5“發(fā)貨確認”窗體代碼IfIsNull(tx8812.7.5“發(fā)貨確認”窗體代碼'更新庫存表中的數(shù)量Dimrs2AsNewADODB.Recordset'查找?guī)齑姹碇械挠涗泂tr_temp="select*from庫存Where產(chǎn)品編號="&str(2)&""rs2.Openstr_temp,CurrentProject.Connection,adOpenDynamic,adLockOptimisticIfNotrs2.EOFThenrs2("庫存量")=rs2("庫存量")-str(5)rs2.UpdateEndIfrs2.CloseSetrs2=NothingMsgBox"成功更新了庫存!"
'錯誤處理Exit_btn_ok_Click:ExitSubErr_btn_ok_Click:ExitSubResumeExit_btn_ok_ClickEndSubPrivateSubbtn_cancel_Click()DimctlAsControlForEachctlInMe.ControlsSelectCasectl.ControlTypeCaseacTextBoxIfctl.Locked=FalseThenctl.Value=NullCaseacComboBoxctl.Value=NullEndSelectNextMe.txt_no.SetFocusEndSubPrivateSubbtn_return_Click()Me.Visible=FalseDoCmd.OpenForm"切換面板",acNormalEndSub添加完代碼后的【代碼】窗體如下所示。12.7.5“發(fā)貨確認”窗體代碼'更新庫存表中的數(shù)量Ne8912.7.6“供應(yīng)商”窗體代碼已知我們設(shè)計的“供應(yīng)商”窗體如下圖所示。12.7.6“供應(yīng)商”窗體代碼已知我們設(shè)計的“供應(yīng)商”9012.7.6“供應(yīng)商”窗體代碼窗體中各個按鈕的代碼如下。“銷售查詢”按鈕代碼如下。PrivateSubbtn_query_Click()IfIsNull(供應(yīng)商編號)OrIsNull(txt_date1)OrIsNull(txt_date2)ThenMsgBox"您必須輸入供應(yīng)商編號、開始時間和截止時間。"txt_date1.SetFocusElseIf(txt_date1>txt_date2)ThenMsgBox"結(jié)束時間必須大于開始時間。"'焦點移到第一個時間上txt_date1.SetFocusElse'打開供應(yīng)商銷售的報表DoCmd.OpenReport"供應(yīng)商報表",acViewPreview,,,acWindowNormalEndIfEndIfEndSub“返回”按鈕代碼如下。PrivateSubbtn_return_Click()DoCmd.Closedocmd.OpenForm"切換面板"EndSub添加代碼以后的【代碼】窗體如下圖所示。12.7.6“供應(yīng)商”窗體代碼窗體中各個按鈕的代碼如下。9112.7.7“進貨資料查詢”窗體代碼已知我們設(shè)計的“進貨資料查詢”窗體如下圖所示。12.7.7“進貨資料查詢”窗體代碼已知我們設(shè)計的“進9212.7.7“進貨資料查詢”窗體代碼“清除”按鈕添加的代碼如下。OptionCompareDatabasePrivateSubbtn_clear_Click()OnErrorGoToErr_btn_clear_Click
DimctlAsControlForEachctlInMe.Controls
SelectCasectl.ControlTypeCaseacTextBoxIfctl.Locked=FalseThenctl.Value=NullCaseacComboBoxctl.Value=NullEndSelectNext
'取消子窗體查詢和統(tǒng)計總數(shù)Me.進貨資料查詢子窗體.Form.Filter=""Me.進貨資料查詢子窗體.Form.FilterOn=FalseExit_btn_clear_Click:ExitSubErr_btn_clear_Click:ExitSubResumeExit_btn_clear_ClickEndSub“查詢”按鈕的代碼如下所示。PrivateSubbtn_query_Click()OnErrorGoToErr_btn_query_ClickDimstrAsString'判斷是否為空,建立查詢條件IfNotIsNull(Me.Combo1)Thenstr=str&"([供應(yīng)商名稱]like'*"&Me.Combo1&"*')AND"EndIfIfNotIsNull(Me.txt_wuzi)Thenstr=str&"([產(chǎn)品名稱]like'*"&Me.txt_wuzi&"*')AND"EndIfIfNotIsNull(Me.txt_jinbanren)Thenstr=str&"([經(jīng)辦人]like'*"&Me.txt_jinbanren&"*')AND"EndIfIfNotIsNull(Me.date1)Thenstr=str&"[入庫日期]>=#"&Format(Me.date1,"yyyy-mm-dd")&"#)AND"EndIfIfNotIsNull(Me.date2)Thenstr=str&"[入庫日期]<=#"&Format(Me.date2,"yyyy-mm-dd")&"#)AND"EndIf
IfLen(str)>0Thenstr=Left(str,Len(str)-5)EndIf'子窗體查詢和統(tǒng)計,設(shè)置過濾條件Me.進貨資料查詢子窗體.Form.Filter=strMe.進貨資料查詢子窗體.Form.FilterOn=True‘錯誤處理Exit_btn_query_Click:ExitSubErr_btn_query_Click:ExitSubResumeExit_btn_query_ClickEndSub12.7.7“進貨資料查詢”窗體代碼“清除”按鈕添加的代9312.7.7“進貨資料查詢”窗體代碼“返回”按鈕的代碼如下所示。PrivateSubbtn_return_Click()Me.Visible=FalseDoCmd.OpenForm"產(chǎn)品進庫"EndSub添加代碼完成以后,【代碼】窗體如下圖所示。12.7.7“進貨資料查詢”窗體代碼“返回”按鈕的代碼如9412.7.8“密碼管理”窗體代碼已知我們設(shè)計的“密碼管理”窗體如下圖所示。12.7.8“密碼管理”窗體代碼已知我們設(shè)計的“密碼管9512.7.8“密碼管理”窗體代碼“密碼管理”窗體代碼如下所示。'聲明變量OptionCompareDatabaseDimrsAsNewADODB.RecordsetDimflagAsBoolean'公用的判斷為空的函數(shù)Subcommon()IfIsNull(txt_name)ThenMsgBox"請輸入用戶名!",vbCritical,"提示"txt_name.SetFocusflag=FalseEndIfIfIsNull(txt_pwd1)ThenMsgBox"請輸入密碼!",vbCritical,"提示"txt_pwd1.SetFocusflag=FalseEndIfIfIsNull(txt_pwd2)ThenMsgBox"請輸入確認密碼!",vbCritical,"提示"txt_pwd2.SetFocusflag=FalseEndIf
Iftxt_pwd1<>txt_pwd2ThenMsgBox"密碼確認不正確!",vbCritical,"提示"txt_pwd1.SetFocustxt_pwd1=""txt_pwd2=""flag=FalseEndIfEndSub“增加”按鈕的代碼如下所示。PrivateSubbtn_add_Click()flag=Truecommon'調(diào)用公用函數(shù)commonIfflag=TrueThenrs.Open"管理員",CurrentProject.Connection,adOpenDynamic,adLockOptimisticrs.AddNewrs("用戶名")=txt_namers("密碼")=txt_pwd1rs.Updaters.CloseSetrs=NothingMsgBox"您成功地添加了新用戶!"EndIfEndSub12.7.8“密碼管理”窗體代碼“密碼管理”窗體代碼如9612.7.8“密碼管理”窗體代碼“刪除”按鈕的代碼如下所示。PrivateSubbtn_del_Click()flag=TruecommonIfflag=TrueThenDimstrAsStringDimrsAsNewADODB.Recordsetstr="deletefrom管理員where用戶名='"&txt_name&"'and密碼='"&txt_pwd1&"'"DoCmd.RunSQLstrMsgBox"您成功地刪除了該用戶!"EndIfEndSub“返回”按鈕的代碼如下所示。PrivateSubbtn_return_Click()Me.Visible=FalseDoCmd.OpenForm"切換面板"EndSub“修改”按鈕的代碼如下所示。PrivateSubbtn_xiugai_Click()flag=TruecommonIfflag=TrueThenDimstrAsStringstr="select*from管理員where用戶名='"&txt_name&"'and密碼='"&txt_pwd1&"'"Setrs=ExeSQL(str)IfNotrs.EOFThenuser=txt_nameDoCmd.OpenForm"新密碼"ElseMsgBox"找不到該用戶!"EndIfEndIfEndSub12.7.8“密碼管理”窗體代碼“刪除”按鈕的代碼如下所9712.7.8“密碼管理”窗體代碼“新密碼”窗體的部分代碼如下所示。PrivateSubCommand1_Click()IfIsNull(new_pwd1)ThenMsgBox"請輸入新密碼",vbCritical,"提示"EndIfIfIsNull(new_pwd2)ThenMsgBox"請再次輸入新密碼",vbCritical,"提示"EndIfIfnew_pwd1<>new_pwd2ThenMsgBox"兩次輸入不一致",vbCritical,"錯誤"new_pwd1.SetFocusnew_pwd1=""new_pwd2=""EndIfDimrsAsNewADODB.RecordsetDimstrAsStringstr=
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版知識產(chǎn)權(quán)反擔保保證合同書2篇
- 2025版土地抵押權(quán)抵押資產(chǎn)證券化合同模板3篇
- 設(shè)備監(jiān)理合同-《設(shè)備監(jiān)理合同管理》押題密卷2
- 土壤污染治理與農(nóng)業(yè)生態(tài)環(huán)境保護考核試卷
- 唇部護理產(chǎn)品的選擇與涂抹技巧考核試卷
- 2025年銷售部勞動合同加班時間規(guī)定范本2篇
- 2025年家政服務(wù)服務(wù)調(diào)整協(xié)議
- 2025年度木材行業(yè)綠色認證及產(chǎn)品檢測服務(wù)合同范本4篇
- 2025年婚禮廣告合作協(xié)議
- 二零二五年度房地產(chǎn)項目納稅擔保及貸款擔保合同2篇
- 2024年安全教育培訓試題附完整答案(奪冠系列)
- 神農(nóng)架研學課程設(shè)計
- 文化資本與民族認同建構(gòu)-洞察分析
- 2025新譯林版英語七年級下單詞默寫表
- 小學語文閱讀教學落實學生核心素養(yǎng)方法的研究-中期報告
- 眼內(nèi)炎患者護理查房課件
- 唯物史觀課件
- 2021-2022學年四川省成都市武侯區(qū)部編版四年級上冊期末考試語文試卷(解析版)
- 中國傳統(tǒng)文化服飾文化
- 大氣污染控制工程 第四版
- 淺析商務(wù)英語中模糊語言的語用功能
評論
0/150
提交評論