版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第12章Access在進(jìn)銷存管理中的應(yīng)用 本章學(xué)習(xí)要點(diǎn)l 了解進(jìn)銷存系統(tǒng)的概念l 系統(tǒng)的功能設(shè)計(jì)l 系統(tǒng)的模塊設(shè)計(jì)l 表和表關(guān)系的設(shè)計(jì)l 查詢的設(shè)計(jì)l 窗體的創(chuàng)建l 報(bào)表的創(chuàng)建l 宏命令和VBA代碼的創(chuàng)建l 系統(tǒng)的運(yùn)行與應(yīng)用 12.1 實(shí) 例 導(dǎo) 航 l系統(tǒng)功能 l開發(fā)要點(diǎn) 12.1.1 系統(tǒng)功能 l 我們所設(shè)計(jì)的進(jìn)銷存系統(tǒng)的主要功能包括如下。商品基本信息的管理:用來處理進(jìn)出庫的商品信息,包括新建、修改、刪除和查詢等。訂單信息的處理:是整個(gè)系統(tǒng)的工作流程的起點(diǎn),包括訂單的增減、查詢,以及訂單在處理過程中(如發(fā)貨確認(rèn)等)狀態(tài)的改變。產(chǎn)品入庫出庫管理:完成記錄,修改商品入出庫信息,并有庫存報(bào)表功能
2、。查詢功能:允許管理員可以按編號、日期對進(jìn)貨商的銷售信息進(jìn)行查詢;對入庫的產(chǎn)品信息進(jìn)行詳細(xì)的查詢,包括編號、名稱、入庫時(shí)間等。 12.1.2 開發(fā)要點(diǎn) l理解數(shù)據(jù)表的結(jié)構(gòu),掌握各表之間關(guān)系的建立原理,熟悉查詢和窗體的設(shè)計(jì),對進(jìn)銷存管理系統(tǒng)有比較清楚的了解,從而開發(fā)出完整的進(jìn)銷存管理系統(tǒng)。 12.2 系統(tǒng)需求分析設(shè)計(jì) l需求分析 l模塊設(shè)計(jì) 12.2.1 需求分析 l用戶的需求主要有以下內(nèi)容。將訂單、商品、供應(yīng)商、客戶、商品、進(jìn)貨、銷售等信息錄入管理系統(tǒng),提供修改和查詢。能夠?qū)Ω黝愋畔⑻峁┎樵儭D軌蚪y(tǒng)計(jì)進(jìn)出庫的各類信息,對進(jìn)庫、銷售、庫存進(jìn)行匯總,協(xié)調(diào)各部門的相互工作。 12.2.2 模塊設(shè)計(jì)
3、l 按照前面的需求分析,我們設(shè)計(jì)的進(jìn)銷存系統(tǒng)分為以下幾個(gè)模塊。系統(tǒng)的基本配置模塊:包括產(chǎn)品、供應(yīng)商、客戶的基本資料的錄入。產(chǎn)品進(jìn)出庫處理模塊:主要包括對訂單信息的處理和采購單的處理,一般產(chǎn)品入出庫的處理。查詢模塊:對系統(tǒng)中的各類信息,如供應(yīng)商資料、出入庫詳細(xì)資料等進(jìn)行查詢,支持多個(gè)條件的復(fù)合查詢。報(bào)表顯示模塊:根據(jù)用戶的需要和查詢結(jié)果來生成報(bào)表。 12.3 數(shù)據(jù)庫結(jié)構(gòu)的設(shè)計(jì) l數(shù)據(jù)表結(jié)構(gòu)需求分析 l建立空數(shù)據(jù)庫系統(tǒng) l創(chuàng)建數(shù)據(jù)表 l定義數(shù)據(jù)表之間的關(guān)系 12.3.1 數(shù)據(jù)表結(jié)構(gòu)需求分析 l 在本系統(tǒng)中,我們設(shè)計(jì)了10張數(shù)據(jù)表,各個(gè)表存儲(chǔ)的信息如下所示。 “管理員”表:存放系統(tǒng)管理人員信息,一般
4、是企業(yè)管理人員的用戶名和密碼。 “產(chǎn)品信息”表:存儲(chǔ)產(chǎn)品的基本信息,如產(chǎn)品編號、產(chǎn)品名稱、規(guī)格型號、計(jì)量單位、供應(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)商編號、銷售單價(jià)、訂購數(shù)量、訂單金額、預(yù)定時(shí)間、訂單時(shí)間等基本預(yù)訂信息。 “訂單處理明細(xì)”表:除了訂單基本信息外,還要增加付款信息和發(fā)貨信息,如付款方式、付款時(shí)間、發(fā)貨地址、發(fā)貨時(shí)間
5、、發(fā)貨人等。 “入庫記錄”表:存放產(chǎn)品入庫的信息。 “出庫記錄”表:存放產(chǎn)品出庫的信息。 “業(yè)務(wù)類別”表:記錄進(jìn)出庫的業(yè)務(wù)類型。 “庫存”表:記錄產(chǎn)品的庫存信息。 12.3.2 建立空數(shù)據(jù)庫系統(tǒng) l 建立一個(gè)“進(jìn)銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫。 第一步:打開Access 2007,單擊【開始使用Microsoft Office Access】頁中的【空白數(shù)據(jù)庫】按鈕,如下圖所示。 第二步:系統(tǒng)出現(xiàn)如下圖所示的窗口,選擇合適的路徑,輸入數(shù)據(jù)庫名稱為“進(jìn)銷存系統(tǒng).accdb”。 12.3.2 建立空數(shù)據(jù)庫系統(tǒng) l 建立一個(gè)“進(jìn)銷存管理系統(tǒng).accdb”空白數(shù)據(jù)庫。 第三步:單擊【創(chuàng)建】按鈕,
6、完成該數(shù)據(jù)庫的創(chuàng)建。系統(tǒng)自動(dòng)建立了一個(gè)名為“表1”的數(shù)據(jù)表。 12.3.3 創(chuàng)建數(shù)據(jù)表 l “管理員”表 l “產(chǎn)品信息”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵用戶名文本18否密碼文本18否字 段 名數(shù)據(jù)類型字段寬度是否主鍵產(chǎn)品編號數(shù)字 是產(chǎn)品名稱文本18否規(guī)格型號文本255否計(jì)量單位文本20否供應(yīng)商編號數(shù)字9否產(chǎn)品類別文本18否12.3.3 創(chuàng)建數(shù)據(jù)表l “供應(yīng)商”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵供應(yīng)商編號數(shù)字9是供應(yīng)商名稱文本18否聯(lián)系人姓名文本18否聯(lián)系人職務(wù)文本18否業(yè)務(wù)電話文本20否電子郵件文本40否12.3.3 創(chuàng)建數(shù)據(jù)表l “客戶”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵客戶
7、編號數(shù)字9是客戶姓名文本18否客戶地址文本255否聯(lián)系電話文本20否字 段 名數(shù)據(jù)類型字段寬度是否主鍵電子郵件文本40否備注文本255否12.3.3 創(chuàng)建數(shù)據(jù)表l “訂單”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵訂單編號數(shù)字9是客戶編號數(shù)字9否產(chǎn)品編號數(shù)字9否供應(yīng)商編號數(shù)字9否銷售單價(jià)貨幣否訂購數(shù)量數(shù)字10否訂單金額貨幣否預(yù)定時(shí)間日期/時(shí)間否訂單時(shí)間日期/時(shí)間否備注文本20否12.3.3 創(chuàng)建數(shù)據(jù)表l “訂單處理明細(xì)”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵訂單編號數(shù)字9是客戶編號數(shù)字9否產(chǎn)品編號數(shù)字9供應(yīng)商編號數(shù)字9否預(yù)定時(shí)間日期/時(shí)間否發(fā)貨時(shí)間日期/時(shí)間銷售單價(jià)貨幣 否訂購數(shù)量數(shù)字10否訂單金
8、額貨幣 否付款方式文本8否付款時(shí)間日期/時(shí)間否發(fā)貨地址文本255否發(fā)貨人文本18否狀態(tài)文本40否12.3.3 創(chuàng)建數(shù)據(jù)表l “入庫記錄”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵入庫編號數(shù)字20是業(yè)務(wù)類別數(shù)字2否產(chǎn)品編號數(shù)字9否供應(yīng)商編號數(shù)字9否入庫時(shí)間日期/時(shí)間否入庫單價(jià)貨幣否入庫數(shù)量數(shù)字10否入庫金額貨幣否經(jīng)辦人文本18否12.3.3 創(chuàng)建數(shù)據(jù)表l “出庫記錄”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵出庫編號數(shù)字20是業(yè)務(wù)類別數(shù)字2否產(chǎn)品編號數(shù)字9否供應(yīng)商編號數(shù)字9否出庫時(shí)間日期/時(shí)間否出庫單價(jià)貨幣否出庫數(shù)量數(shù)字10否出庫金額貨幣否經(jīng)辦人文本18否12.3.3 創(chuàng)建數(shù)據(jù)表l “業(yè)務(wù)類別”表 字
9、段 名數(shù)據(jù)類型字段寬度是否主鍵業(yè)務(wù)類別數(shù)字9是業(yè)務(wù)名稱文本20否收發(fā)標(biāo)志是/否否l “庫存”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵產(chǎn)品編號數(shù)字9是供應(yīng)商編號數(shù)字9是庫存量數(shù)字10否12.3.4 定義數(shù)據(jù)表之間的關(guān)系 l 建立“產(chǎn)品信息”表和“出庫記錄”表之間的表關(guān)系。 第一步:啟動(dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”。 第二步:切換到【數(shù)據(jù)庫工具】選項(xiàng)卡,單擊【關(guān)系】按鈕,如下圖所示。 第三步:單擊右鍵,在彈出的快捷菜單中選擇【顯示表】命令,按住Ctrl鍵,選擇所有的表,然后單擊【添加】按鈕,把所有的表都添加上去,如下圖所示。 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 l 建立
10、“產(chǎn)品信息”表和“出庫記錄”表之間的表關(guān)系。 第四步:設(shè)置表的參照完整性。我們以“產(chǎn)品信息”表中的“產(chǎn)品編號”字段與“出庫記錄”表中的“產(chǎn)品編號”字段為例。按下鼠標(biāo)左鍵拖動(dòng)“產(chǎn)品信息”表中的“產(chǎn)品編號”字段到“出庫記錄”表中的“產(chǎn)品編號”字段上,釋放鼠標(biāo)左鍵,系統(tǒng)彈出【編輯關(guān)系】對話框,如下圖所示。 第五步:選中【實(shí)施參照完整性】復(fù)選框,這樣就建立了表之間的一對多關(guān)系,如下圖所示。 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 按照同樣的步驟,可以建立起其他表之間的關(guān)系。最終建立了下面的關(guān)系圖。 我們設(shè)計(jì)的數(shù)據(jù)庫表中,各種表關(guān)系如下表所示。 表 名字段名稱相關(guān)表名字段名稱供應(yīng)商供應(yīng)商編號產(chǎn)品信息供應(yīng)商編
11、號供應(yīng)商供應(yīng)商編號入庫記錄供應(yīng)商編號供應(yīng)商供應(yīng)商編號出庫記錄供應(yīng)商編號供應(yīng)商供應(yīng)商編號庫存供應(yīng)商編號供應(yīng)商供應(yīng)商編號訂單供應(yīng)商編號供應(yīng)商供應(yīng)商編號訂單處理明細(xì)供應(yīng)商編號產(chǎn)品信息產(chǎn)品編號訂單產(chǎn)品編號產(chǎn)品信息產(chǎn)品編號訂單處理明細(xì)產(chǎn)品編號產(chǎn)品信息產(chǎn)品編號入庫記錄產(chǎn)品編號產(chǎn)品信息產(chǎn)品編號出庫記錄產(chǎn)品編號產(chǎn)品信息產(chǎn)品編號庫存產(chǎn)品編號業(yè)務(wù)類別業(yè)務(wù)類別入庫記錄業(yè)務(wù)類別業(yè)務(wù)類別業(yè)務(wù)類別出庫記錄業(yè)務(wù)類別12.4 窗體的實(shí)現(xiàn) l“登錄”窗體 l“切換面板”窗體 l“訂單處理”窗體 l“發(fā)貨確認(rèn)”窗體 l“產(chǎn)品進(jìn)庫”窗體 l“供應(yīng)商查詢編輯”窗體 l“進(jìn)貨資料查詢”窗體 l“密碼管理”窗體 12.4.1 “登錄”窗
12、體 l 運(yùn)用“模式對話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄”窗體。 第一步:啟動(dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,選擇【窗體】組中【其他窗體】下拉菜單中的【模式對話框】選項(xiàng),如下圖所示。 第三步:出現(xiàn)一張空白窗體,已有兩個(gè)按鈕:【確定】和【取消】,如下圖所示。 12.4.1 “登錄”窗體l 運(yùn)用“模式對話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄”窗體。 控件名稱屬 性屬 性 值Label1標(biāo)題進(jìn)銷存登錄Label2標(biāo)題用戶名:Label3標(biāo)題密碼:Txt_nametxtpwd輸入掩碼密碼Btn_okBtn_cancel第四步:調(diào)整窗體布局,在窗體上添
13、加幾個(gè)控件,屬性值設(shè)置如下表所示。 第五步:設(shè)置主體背景顏色。在主體區(qū)域中右擊,在彈出的快捷菜單中選擇【填充/背景色】選項(xiàng),彈出如下圖所示的菜單。 12.4.1 “登錄”窗體l 運(yùn)用“模式對話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄”窗體。 第六步:調(diào)整窗體布局,完成后的“登錄”窗體如下圖所示。 12.4.2 “切換面板”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“切換面板”窗體。 第一步:啟動(dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【窗體】組中的【窗體設(shè)計(jì)】按鈕,出現(xiàn)一張空白窗體。 第三步:調(diào)整窗體布局。添加一個(gè)“矩形”控件,“背景”屬性
14、設(shè)為“#9DBB61”。添加標(biāo)題控件,并將標(biāo)題設(shè)為“進(jìn)銷存系統(tǒng)示例”。添加一個(gè)徽標(biāo)控件,圖片為“羅斯文.png”,創(chuàng)建后的效果如下圖所示。 12.4.2 “切換面板”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“切換面板”窗體。 控件名稱屬 性屬 性 值Image2圖片兒童.jpgLabel1標(biāo)題進(jìn)銷存系統(tǒng)示例Label2標(biāo)題訂單處理Label3標(biāo)題產(chǎn)品入庫Label4標(biāo)題發(fā)貨確認(rèn)Label5標(biāo)題供應(yīng)商資料查詢Label6標(biāo)題進(jìn)貨資料查詢Label7標(biāo)題密碼管理Option1標(biāo)題Option2標(biāo)題Option3標(biāo)題Option4標(biāo)題Option5標(biāo)題Option6標(biāo)題Btn_retrun標(biāo)題
15、退出系統(tǒng)第四步:利用命令按鈕控件和標(biāo)簽控件,為窗體添加幾個(gè)按鈕和標(biāo)簽,來處理管理員的操作。各個(gè)控件的屬性設(shè)置如下表所示。 第五步:這樣就完成了“切換面板”窗體的創(chuàng)建,完成后的結(jié)果如下圖所示。 12.4.3 “訂單處理”窗體 l 運(yùn)用窗體向?qū)ВO(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第一步:啟動(dòng)Access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,選擇【窗體】組中【其他窗體】下拉菜單中的【窗體向?qū)А窟x項(xiàng)。 第三步:按照前面章節(jié)介紹的步驟,在【表/查詢】下拉列表框中選擇“表:訂單”,將【可選字段】列表框中的所有字段加入右面【選定字段】列表框中,然后依次確定即可。
16、系統(tǒng)自動(dòng)生成的窗體如下圖所示。 12.4.3 “訂單處理”窗體 l 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第四步:若要加上按鈕控件,則切換到【窗體設(shè)計(jì)工具】選項(xiàng)卡,單擊【使用控件向?qū)А堪粹o,則所有添加控件都會(huì)在向?qū)J较逻M(jìn)行。 第五步:單擊【命令控件】按鈕,出現(xiàn)如下圖所示的【命令按鈕向?qū)А繉υ捒?,我們以“保存記錄”為例加以說明。 12.4.3 “訂單處理”窗體 l 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第六步:單擊【下一步】按鈕,為按鈕添加上合適的圖標(biāo)或者文字,如下圖所示。 第七步:單擊【下一步】按鈕,在彈出的指定按鈕名稱的對話框中輸入該按鈕的名稱,如下圖所示。 12.4.3
17、“訂單處理”窗體 l 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第八步:修改如下表所示主要控件的屬性,設(shè)置窗體的頁眉和頁腳。 第九步:這樣我們就完成了“訂單處理”窗體的創(chuàng)建過程,完成后的界面如下圖所示。 控件名稱屬 性屬 性 值Image1圖片羅斯文.pngText1控件來源=Replace(訂單 #|,|, Nz(訂單編號,(新)Btn_add背景樣式透明Btn_save背景樣式透明Btn_del背景樣式透明Btn_query背景樣式透明Btn_return背景樣式透明Label7背景樣式透明Option1option6標(biāo)題Btn_retrun標(biāo)題退出系統(tǒng)12.4.4 “發(fā)貨確認(rèn)”窗體
18、l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“發(fā)貨確認(rèn)”窗體。第一步:單擊右鍵,在彈出的快捷菜單中選擇【窗體頁眉/頁腳】選項(xiàng),進(jìn)行窗體頁眉設(shè)置。步驟和前面一樣,這里不再贅述。 第二步:在窗體上添加控件,屬性見下表所示。 控件名稱屬 性屬 性 值Label2標(biāo)題 請查看下面的訂單信息:Txt_no所有屬性默認(rèn)Label_type標(biāo)題支付方式Combo1行來源“支票”;“信用卡”;“現(xiàn)金”Label_date標(biāo)題付款日期Txt_paydate所有屬性默認(rèn)Label_address標(biāo)題送貨地址Txt_address所有屬性默認(rèn)Label_name標(biāo)題送貨人Txt_name所有屬性默認(rèn)Label_date
19、2標(biāo)題送貨日期Txt_date所有屬性默認(rèn)Btn_ok標(biāo)題確認(rèn)Btn_cancel標(biāo)題取消Btn_return標(biāo)題返回第三步:完成后的“發(fā)貨確認(rèn)”窗體如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫”窗體。第一步:單擊【創(chuàng)建】選項(xiàng)卡中【窗體】組中的【窗體設(shè)計(jì)】按鈕,會(huì)出現(xiàn)一個(gè)空白窗體。 第二步:為窗體設(shè)計(jì)一個(gè)窗體頁眉,單擊右鍵,彈出如下快捷菜單。 12.4.5 “產(chǎn)品進(jìn)庫”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫”窗體。第三步:選擇【窗體頁眉/頁腳】選項(xiàng),窗體中出現(xiàn)【窗體頁眉】區(qū)域,如下圖所示。 第四步:為窗體添加一個(gè)標(biāo)簽,設(shè)置標(biāo)
20、題為“產(chǎn)品進(jìn)庫管理”,再添加一個(gè)徽標(biāo)控件,圖片設(shè)置為“羅斯文.png”。 第五步:為窗體添加表中的字段。單擊【主體】區(qū)域,單擊【設(shè)計(jì)】選項(xiàng)卡下的【添加現(xiàn)有字段】按鈕,彈出【字段列表】窗格,如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫”窗體。第六步:將“入庫記錄”表的所有字段添加到窗體上,并排列整齊。 第七步:為窗體增加4個(gè)導(dǎo)航按鈕,分別為“第一個(gè)”、“前一個(gè)”、“后一個(gè)”、“最后一個(gè)”。添加的方法利用【命令按鈕向?qū)А繉υ捒?,如下圖所示。 第八步:用同樣的方法,為窗體加上幾個(gè)功能按鈕,標(biāo)題分別為“添加記錄”、“保存記錄”、“刪除記錄”、“進(jìn)貨查
21、詢”、“庫存查詢”和“返回”。 12.4.5 “產(chǎn)品進(jìn)庫”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫”窗體。 第九步:如果要查看數(shù)據(jù)表格式的入庫記錄,我們可以在窗體上添加一個(gè)子窗體。 第十步:單擊【控件】組中的【子窗體/子報(bào)表】按鈕,并拖放到窗體中,出現(xiàn)【子窗體向?qū)А繉υ捒颍缦聢D所示。 第十一步:選中【使用現(xiàn)有的表和查詢】單選按鈕,單擊【下一步】按鈕,彈出選擇字段的對話框。在對話框的【表/查詢】下拉列表框中選擇“表:入庫記錄”,并把“入庫記錄”表的全部字段加入到【選定字段】列表框中,如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫
22、”窗體。第十二步:單擊【下一步】按鈕,在彈出的對話框中選擇主/次字段的鏈接方式。我們選中【從列表中選擇】單選按鈕,并在下面的列表框中選擇用“入庫編號”顯示,如下圖所示。 第十三步:單擊【下一步】按鈕,在彈出的對話框中輸入子窗體的名稱,如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品進(jìn)庫”窗體。第十四步:調(diào)整窗體的布局,這樣我們就完成了“產(chǎn)品進(jìn)庫”窗體的創(chuàng)建。最終的創(chuàng)建效果如下圖所示。 12.4.6 “供應(yīng)商查詢編輯”窗體 l 運(yùn)用窗體的窗體向?qū)ВO(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第一步:切換到【創(chuàng)建】選項(xiàng)卡,選擇【其他窗體】下拉菜單中的【窗體向?qū)А?/p>
23、選項(xiàng),如下圖所示。 第二步:按照向?qū)У奶崾?,在【?查詢】下拉列表框中選擇“表:供應(yīng)商”,將【可選字段】列表框中的所有字段加入到右面【選定字段】列表框中。其他設(shè)置按照以前的介紹設(shè)置,最后生成的窗體如下圖所示。 12.4.6 “供應(yīng)商查詢編輯”窗體 l 運(yùn)用窗體的窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體。第三步:我們還要在這個(gè)窗體上加上“記錄導(dǎo)航”按鈕和“記錄操作”按鈕,注意在“使用控件向?qū)А毕绿砑印?第四步:還添加了另外幾個(gè)控件,屬性設(shè)置見下表所示。 第五步:調(diào)整窗體布局,完成后的窗體如下圖所示。 控件名稱屬 性屬 性 值Image1圖片羅斯文.pngLabel1標(biāo)題供應(yīng)商管理查詢Labe
24、l2標(biāo)題起始日期Txt_date1Label3標(biāo)題至Label4標(biāo)題截至日期Txt_date2Btn_query標(biāo)題查詢Btn_return標(biāo)題返回12.4.7 “進(jìn)貨資料查詢”窗體 l 設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來顯示查詢結(jié)果。第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【窗體】組中的【窗體設(shè)計(jì)】按鈕。 第二步:添加若干控件,并設(shè)置它們的屬性值,具體情況如下表所示。 控件名稱屬 性屬 性 值Label1標(biāo)題 進(jìn)貨資料查詢Label2標(biāo)題請選擇查詢的條件:Label_name標(biāo)題產(chǎn)品名稱txt_wuzi標(biāo)題付款信Label_company標(biāo)題公司名稱Combo1行來源
25、SELECT 供應(yīng)商名稱 FROM 供應(yīng)商 ORDER BY 供應(yīng)商名稱;Label_from標(biāo)題日期范圍txt_date1所有屬性Labet_to標(biāo)題至txt_date2所有屬性Label_rule 標(biāo)題格式為yy-mm-ddLabel_person標(biāo)題經(jīng)辦人進(jìn)貨資料查詢子窗體源對象查詢.進(jìn)貨資料查詢Txt_person所有屬性默認(rèn)Btn_query標(biāo)題查詢Btn_cancel標(biāo)題清除Btn_return標(biāo)題返回12.4.7 “進(jìn)貨資料查詢”窗體 l 設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來顯示查詢結(jié)果。第五步:調(diào)整窗體布局,完成了“進(jìn)貨資料查詢”窗體的創(chuàng)建,最終效果
26、如下圖所示。 12.4.8 “密碼管理”窗體 l “密碼管理”窗體控件如下表所示。 控件名稱屬性屬性值Btn_add標(biāo)題增加Btn_xiugai標(biāo)題修改Btn_del標(biāo)題刪除Btn_return標(biāo)題返回Label_name標(biāo)題用戶名:Label_pwd標(biāo)題密碼:Label_pwd2標(biāo)題確認(rèn)密碼:Txt_nameTxt_pwd1Txt_pwd2l 完成后的“密碼管理”窗體如下圖所示。12.4.8 “密碼管理”窗體l “新密碼”窗體控件如下表所示。 l 完成后的“新密碼”窗體如下圖所示。控件名稱屬 性屬 性 值Label_pwd1標(biāo)題請輸入新密碼:Label_pwd2標(biāo)題請?jiān)俅屋斎耄篘ew_pwd
27、1New_pwd2Commmand1標(biāo)題確定Command0標(biāo)題取消12.5 查詢的實(shí)現(xiàn) l“訂單處理查詢”的設(shè)計(jì) l“供應(yīng)商銷售查詢”的設(shè)計(jì) l“進(jìn)貨資料查詢”的設(shè)計(jì) l“庫存查詢”的設(shè)計(jì) 12.5.1 “訂單處理查詢”的設(shè)計(jì) l 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第一步:切換到【創(chuàng)建】選項(xiàng)卡,然后單擊【其他】組中的【查詢設(shè)計(jì)】按鈕,如下圖所示。 第二步:系統(tǒng)彈出如下圖所示的【顯示表】對話框,提示我們加入所需要的表,如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計(jì) l 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第三步:選擇“訂單表明細(xì)”表,單擊【添加】按鈕,將該表添加到查詢的【設(shè)計(jì)視圖
28、】中。 第四步:依次選擇該表中的全部字段,將其添加到查詢的設(shè)計(jì)網(wǎng)格中,如下圖所示。 第五步:為字段添加查詢條件。右擊“訂單編號”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項(xiàng),如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計(jì) l 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第六步:系統(tǒng)彈出【表達(dá)式生成器】對話框。在【表達(dá)式生成器】對話框中,我們?yōu)椴樵兊淖侄卧O(shè)置條件,將它和窗體上的控件值聯(lián)系到一起,如下圖所示。 第七步:保存該查詢?yōu)椤坝唵翁幚聿樵儭?。這樣,我們就完成了“訂單處理查詢”的創(chuàng)建。 輸入的查詢條件如上圖所示,這樣把查詢中的“訂單編號”和窗體上的“訂單編號”關(guān)聯(lián)起來。 12
29、.5.2 “供應(yīng)商銷售查詢”的設(shè)計(jì) l 設(shè)計(jì)“供應(yīng)商銷售查詢”第一步:切換到【創(chuàng)建】選項(xiàng)卡,然后單擊【其他】組中的【查詢設(shè)計(jì)】按鈕。 第二步:彈出的【顯示表】對話框中,依次把“供應(yīng)商”表、“訂單”表和“產(chǎn)品信息”表添加到查詢的【設(shè)計(jì)視圖】中,然后關(guān)閉該對話框,如下圖所示。 第三步:選擇要進(jìn)行查詢的字段。雙擊選擇的字段,即可將字段加入到下面的查詢設(shè)計(jì)網(wǎng)格中,最終結(jié)果如下圖所示。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計(jì) l 設(shè)計(jì)“供應(yīng)商銷售查詢”第四步:為字段添加查詢條件。右擊“供應(yīng)商編號”字段查詢網(wǎng)格的【條件】行,在彈出的快捷菜單中選擇【生成器】選項(xiàng),如下圖所示。 第五步:在彈出的【表達(dá)式生成器
30、】對話框中,我們?yōu)椤肮?yīng)商編號”字段設(shè)置查詢條件,如下圖所示。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計(jì) l 設(shè)計(jì)“供應(yīng)商銷售查詢”第六步:按照同樣的步驟,設(shè)置字段的查詢條件。整個(gè)查詢的條件設(shè)置如下表所示。 字 段表排序條 件供應(yīng)商編號供應(yīng)商無Forms!供應(yīng)商!供應(yīng)商編號供應(yīng)商名稱供應(yīng)商無產(chǎn)品編號產(chǎn)品信息升序產(chǎn)品名稱產(chǎn)品信息無產(chǎn)品類別產(chǎn)品信息無訂購數(shù)量訂單無預(yù)訂時(shí)間訂單無Between Forms! 供應(yīng)商!txt_date1 And Forms! 供應(yīng)商! txt_date2第七步:保存該查詢?yōu)椤肮?yīng)商銷售查詢”,這樣我們就完成了該查詢的創(chuàng)建。 12.5.3 “進(jìn)貨資料查詢”的設(shè)計(jì) l 我們
31、建立的字段的信息如下表所示。 字 段表排 序條 件入庫編號入庫記錄無業(yè)務(wù)類別入庫記錄無產(chǎn)品編號產(chǎn)品信息無產(chǎn)品名稱產(chǎn)品信息無產(chǎn)品類別產(chǎn)品信息無供應(yīng)商編號供應(yīng)商無供應(yīng)商名稱供應(yīng)商無入庫時(shí)間入庫記錄升序入庫單價(jià)入庫記錄無入庫數(shù)量入庫記錄無入庫金額入庫記錄無經(jīng)辦人入庫記錄無12.5.3 “進(jìn)貨資料查詢”的設(shè)計(jì)l “進(jìn)貨資料查詢”查詢的【設(shè)計(jì)視圖】如下圖所示。 12.5.4 “庫存查詢”的設(shè)計(jì) l 設(shè)計(jì)“庫存查詢” 。第一步:切換到【創(chuàng)建】選項(xiàng)卡,然后單擊【其他】組中的【查詢設(shè)計(jì)】按鈕,如下圖所示。 第二步:在彈出的【顯示表】對話框中,將“庫存”表和“產(chǎn)品信息”表添加到查詢【設(shè)計(jì)視圖】中,將該表中的所有
32、字段添加到查詢設(shè)計(jì)網(wǎng)格中,如下圖所示。 12.5.4 “庫存查詢”的設(shè)計(jì) l 設(shè)計(jì)“庫存查詢” 。第一步:為字段添加條件。右擊“產(chǎn)品編號”字段的【條件】行,在彈出的快捷菜單中選擇【生成器】選項(xiàng)。 第二步:系統(tǒng)彈出【表達(dá)式生成器】對話框,在該對話框中為查詢的字段設(shè)置條件,將它和窗體上的控件值聯(lián)系到一起。設(shè)置的查詢條件如下圖所示。 第三步:保存該查詢?yōu)椤皫齑娌樵儭?,這樣我們就完成了“庫存查詢”的創(chuàng)建。 12.6 報(bào)表的實(shí)現(xiàn) l“訂單查詢”報(bào)表 l“供應(yīng)商銷售”報(bào)表 l“庫存”報(bào)表 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【報(bào)
33、表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示。 第二步:系統(tǒng)彈出【報(bào)表向?qū)А繉υ捒?,在【?查詢】下拉列表框中選擇“查詢:訂單查詢”,然后把所有字段作為選定字段,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第三步:單擊【下一步】按鈕,彈出選擇數(shù)據(jù)查看方式的對話框。我們選擇“通過訂單”選項(xiàng),如下圖所示。 第四步:單擊【下一步】按鈕,彈出選擇分組級別的對話框。本報(bào)表中我們不添加分組級別,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第五步:單擊【下一步】按鈕,在彈出的對話框中選擇“產(chǎn)品編號”為排序字段,按升
34、序排序,如下圖所示。 第六步:單擊【下一步】按鈕,在彈出的對話框中選擇布局方式為“表格”布局,布局方向?yàn)椤翱v向”,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第七步:單擊【下一步】按鈕,在彈出的對話框中選擇報(bào)表樣式。我們選擇【辦公室】選項(xiàng),如下圖所示。 第八步:單擊【下一步】按鈕,輸入該報(bào)表的名稱為“訂單查詢報(bào)表”,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第九步:單擊【完成】按鈕,完成“訂單查詢報(bào)表”的創(chuàng)建。此時(shí)該報(bào)表的【設(shè)計(jì)視圖】如下圖所示。 12.6.2 “供應(yīng)商銷售”報(bào)表 l 建立“供
35、應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【報(bào)表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示。 第二步:在彈出的【報(bào)表向?qū)А繉υ捒蛑?,選擇報(bào)表的數(shù)據(jù)源為“查詢:供應(yīng)商查詢”,然后把查詢中的所有字段作為選定字段,如下圖所示。 12.6.2 “供應(yīng)商銷售”報(bào)表 l 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第三步:單擊【下一步】按鈕,在彈出的對話框中選擇數(shù)據(jù)的查看方式。我們選擇“通過供應(yīng)商”選項(xiàng),如下圖所示。 第四步:單擊【下一步】按鈕,在彈出的對話框中不選擇分組級別。 第五步:單擊【下一步】按鈕,在排序方式中選擇通過“預(yù)定時(shí)間”和“訂購數(shù)量”進(jìn)行排序
36、,排序方式分別為“升序”和“降序”,如下圖所示。 12.6.2 “供應(yīng)商銷售”報(bào)表 l 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢的輸出結(jié)果。 第六步:單擊【下一步】按鈕,在彈出的對話框中選擇報(bào)表的樣式為“辦公室”。 第七步:單擊【下一步】按鈕,輸入報(bào)表標(biāo)題為“供應(yīng)商銷售報(bào)表”,選中【預(yù)覽報(bào)表】單選按鈕。 第八步:單擊【完成】按鈕,完成“供應(yīng)商銷售報(bào)表”的創(chuàng)建。此時(shí)報(bào)表的【設(shè)計(jì)視圖】如下圖所示。 12.6.3 “庫存”報(bào)表 l 在建立“庫存”報(bào)表前,我們需要建立一個(gè)“庫存查詢” ,建立查詢的過程如下所示。 第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【報(bào)表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示。 第二步:
37、在彈出的【報(bào)表向?qū)А繉υ捒蛑?,選擇報(bào)表的數(shù)據(jù)源為“查詢:庫存查詢”,然后把查詢中的所有字段作為選定字段,如下圖所示。 12.6.3 “庫存”報(bào)表 l 在建立“庫存”報(bào)表前,我們需要建立一個(gè)“庫存查詢” ,建立查詢的過程如下所示。 第三步:為報(bào)表添加分組級別“產(chǎn)品類別”,這樣就把不同類別產(chǎn)品的信息分開了,如下圖所示。 第四步:系統(tǒng)彈出提示排序次序的對話框,我們用“產(chǎn)品編號”作為排序的標(biāo)準(zhǔn),單擊【下一步】按鈕。 12.6.3 “庫存”報(bào)表 l 在建立“庫存”報(bào)表前,我們需要建立一個(gè)“庫存查詢” ,建立查詢的過程如下所示。 第五步:單擊【下一步】按鈕,在彈出的對話框中選擇報(bào)表的樣式為“辦公室”。 第
38、六步:單擊【下一步】按鈕,輸入報(bào)表標(biāo)題為“庫存查詢”,選中【預(yù)覽報(bào)表】單選按鈕。 第七步:單擊【完成】按鈕,完成了報(bào)表的設(shè)計(jì)。此時(shí),報(bào)表的【設(shè)計(jì)視圖】如下圖所示。 12.7 編碼的實(shí)現(xiàn) l公用模塊 l“登錄”窗體代碼 l“切換面板”代碼 l“產(chǎn)品進(jìn)庫”窗體代碼 l“發(fā)貨確認(rèn)”窗體代碼 l“供應(yīng)商”窗體代碼 l“進(jìn)貨資料查詢”窗體代碼 l“密碼管理”窗體代碼 12.7.1 公用模塊 l建立公用模塊第一步:我們首先要新建一個(gè)“模塊”。單擊【數(shù)據(jù)庫工具】選項(xiàng)卡下的Visual Basic按鈕,進(jìn)入VBA編輯器,如下圖所示。 第二步:選擇【插入】菜單,選擇【模塊】命令,即可增加一個(gè)新模塊,如下圖所示。
39、 12.7.1 公用模塊 l建立公用模塊第三步:新建模塊以后,VBA編輯器界面如下圖所示。 第四步:我們在新增加的模塊里,增加如下代碼。 Option Compare DatabaseOption ExplicittxtSQL為執(zhí)行查詢時(shí)所需要的SQL語句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, adOp
40、enKeyset, adLockOptimistic返回記錄集對象Set ExeSQL = rs 返回值為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方式來對數(shù)據(jù)庫查詢,我們要在VBA編輯器下加入兩個(gè)引用。選擇【工具】|【引用】命令,
41、加入 創(chuàng)建表有多種不同的方法,用戶可以根據(jù)自己的習(xí)慣和工作的難易程度選擇合適的創(chuàng)建方法。直接輸入、表模板、表的【設(shè)計(jì)視圖】是最常用的創(chuàng)建表的方法。Microsoft ActiveX Data Objects 2.8 Library和Microsoft ActiveX Data Objects Recordset 2.8 Library,如下圖所示。 12.7.2 “登錄”窗體代碼 l 已知我們設(shè)計(jì)的“登錄”窗體如下圖所示。 12.7.2 “登錄”窗體代碼 l 編寫“登錄”窗體代碼第一步:打開“登錄”窗體的【設(shè)計(jì)視圖】,右擊,在彈出的快捷菜單中選擇【屬性表】選項(xiàng),彈出【屬性表】窗格,如下圖所示。
42、 第二步:在【屬性表】窗格的【所選內(nèi)容的類型:窗體】下拉列表框中選擇“窗體”選項(xiàng)。切換到【數(shù)據(jù)】選項(xiàng)卡,把【記錄源】屬性設(shè)置為“管理員”表。 第三步:單擊【確定】按鈕,并將【屬性表】切換到【事件】選項(xiàng)卡,在【單擊】屬性的下拉列表框中選擇【事件過程】選項(xiàng),如下圖所示。 12.7.2 “登錄”窗體代碼 l 編寫“登錄”窗體代碼第四步:單擊右邊的省略號按鈕,進(jìn)入VBA編輯器,添加“確定”按鈕的代碼,如下所示。 Option Compare DatabaseOption ExplicitDim mrc As ADODB.RecordsetDim txtSQL As StringDim i As Int
43、eger 記錄錯(cuò)誤次數(shù)確定按鈕的代嗎Private Sub btn_ok_Click()On Error GoTo Err_btn_ok_Click 錯(cuò)誤處理判斷用戶名是否為空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, 提示 Els
44、e If (mrc(1) = Txtpwd) Then mrc.Close Set mrc = Nothing 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刪除記錄后,要更新庫存數(shù)量Private Sub btn_del_Click()Dim rs As New ADODB.RecordsetDim str_temp As S
45、tring str_temp = select * from 庫存 Where 產(chǎn)品編號 = & 產(chǎn)品編號 & 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
46、.OpenForm 進(jìn)貨資料查詢Me.Visible = FalseEnd SubPrivate Sub btn_return_Click()Me.Visible = FalseEnd Sub12.7.4 “產(chǎn)品進(jìn)庫”窗體代碼l 添加完事件過程以后的【代碼】窗口如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 l 已知我們設(shè)計(jì)的“發(fā)貨確認(rèn)”窗體如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼l 為“發(fā)貨確認(rèn)”窗體添加事件過程。 第一步:打開“發(fā)貨確認(rèn)”窗體的【設(shè)計(jì)視圖】,右擊“確認(rèn)”按鈕,在彈出的快捷菜單中選擇【事件生成器】選項(xiàng),在彈出的【選擇生成器】對話框中選擇【代碼生成器】選項(xiàng),單擊【確定
47、】按鈕,打開VBA程序編輯器,輸入“確認(rèn)”按鈕代碼。 第二步:重復(fù)步驟1,對“返回”按鈕關(guān)聯(lián)“單擊事件”過程。 相關(guān)代碼如下。Option Compare Database確認(rèn)按鈕代碼Private Sub brn_ok_Click()On Error GoTo Err_btn_ok_Click用這個(gè)數(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
48、 IfIf IsNull(Combo1) Then MsgBox 請輸入支付方式!, vbCritical, 提示 Combo1.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_n
49、ame) Then MsgBox 請輸入送貨人!, vbCritical, 提示 txt_name.SetFocusEnd 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 沒有該訂單!, vbCr
50、itical, 提示Else記錄查找到的訂單信息 str(0) = mrc(訂單編號) str(1) = mrc(客戶編號) str(2) = mrc(產(chǎn)品編號) str(3) = mrc(供應(yīng)商編號) str(4) = mrc(銷售單價(jià)) str(5) = mrc(訂購數(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.Connecti
51、on, adOpenDynamic, adLockOptimistic rs.AddNew rs(訂單編號) = str(0) rs(客戶編號) = str(1) rs(產(chǎn)品編號) = str(2) rs(供應(yīng)商編號) = str(3) rs(預(yù)定時(shí)間) = str(7) rs(發(fā)貨時(shí)間) = txt_date rs(銷售單價(jià)) = str(4) rs(訂購數(shù)量) = str(5) rs(訂單金額) = str(6) rs(付款方式) = Combo1 rs(付款時(shí)間) = txt_paydate rs(發(fā)貨地址) = txt_address rs(發(fā)貨人) = txt_name rs(狀態(tài))
52、 = 已處理 rs.Update rs.Close Set rs = Nothing MsgBox 成功添加了該信息!12.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(庫存量)
53、- str(5)rs2.UpdateEnd Ifrs2.CloseSet rs2 = Nothing MsgBox 成功更新了庫存! 錯(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 T
54、hen ctl.Value = Null Case acComboBox ctl.Value = Null End SelectNextMe.txt_no.SetFocusEnd SubPrivate Sub btn_return_Click()Me.Visible = FalseDoCmd.OpenForm 切換面板, acNormalEnd Sub添加完代碼后的【代碼】窗體如下所示。 12.7.6 “供應(yīng)商”窗體代碼 l 已知我們設(shè)計(jì)的“供應(yīng)商”窗體如下圖所示。 12.7.6 “供應(yīng)商”窗體代碼窗體中各個(gè)按鈕的代碼如下。 “銷售查詢”按鈕代碼如下。Private Sub btn_query
55、_Click()If IsNull(供應(yīng)商編號) Or IsNull(txt_date1) Or IsNull(txt_date2) ThenMsgBox 您必須輸入供應(yīng)商編號、開始時(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
56、“返回”按鈕代碼如下。Private Sub btn_return_Click() DoCmd.Close docmd.OpenForm 切換面板End Sub添加代碼以后的【代碼】窗體如下圖所示。 12.7.7 “進(jìn)貨資料查詢”窗體代碼 l 已知我們設(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
57、 Me.Controls Select Case ctl.ControlType Case acTextBox If ctl.Locked = 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_cl
58、ear_ClickEnd Sub“查詢”按鈕的代碼如下所示。Private Sub btn_query_Click() On Error 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
59、 & *) AND End If If Not IsNull(Me.txt_jinbanren) Then str = 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 =
60、 Left(str, Len(str) - 5) End If 子窗體查詢和統(tǒng)計(jì),設(shè)置過濾條件Me.進(jìn)貨資料查詢子窗體.Form.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)庫End Sub添加代碼完成以后,【代碼】窗體如下圖所示。 12.7.8 “密碼管理”窗體代碼 l 已知我們設(shè)計(jì)的“密碼管理”窗體如下圖所示。 12.7.8 “密碼管理”窗體代碼 “密碼管理”窗體代碼如下所示。聲明變量
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025幼兒園新學(xué)期教師工作計(jì)劃
- 醫(yī)院創(chuàng)建衛(wèi)生單位工作計(jì)劃
- 2025年物業(yè)客服工作總結(jié)和2025年工作計(jì)劃
- 加強(qiáng)母嬰保健技術(shù)計(jì)劃總結(jié)
- 大學(xué)生下學(xué)期工作計(jì)劃
- 《910》一周年答謝會(huì)總結(jié)及新年工作計(jì)劃
- 企業(yè)公司安全生產(chǎn)資金投入計(jì)劃024安全投入計(jì)劃
- 2025商場超市安全保衛(wèi)工作計(jì)劃范文
- 《外幣業(yè)務(wù)核算》課件
- 《蟻群算法發(fā)展》課件
- 安全生產(chǎn)培訓(xùn)課件
- 2025年建筑公司年度工作總結(jié)及2025年計(jì)劃
- 母嬰安全培訓(xùn)課件
- 2024年國家工作人員學(xué)法用法考試題庫及參考答案
- 期末(試題)-2024-2025學(xué)年人教PEP版英語六年級上冊
- 創(chuàng)新創(chuàng)業(yè)創(chuàng)造:職場競爭力密鑰智慧樹知到期末考試答案章節(jié)答案2024年上海對外經(jīng)貿(mào)大學(xué)
- 醫(yī)院檢驗(yàn)科實(shí)驗(yàn)室生物安全程序文件SOP
- 河北省石家莊市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村居民村民委員會(huì)明細(xì)
- 機(jī)械工程學(xué)報(bào)標(biāo)準(zhǔn)格式
- 實(shí)驗(yàn)室儀器設(shè)備清單與價(jià)格
- STM8S-匯編Word版
評論
0/150
提交評論