《Access 數(shù)據(jù)庫應(yīng)用》 Access在進(jìn)銷存管理中的應(yīng)用_第1頁
《Access 數(shù)據(jù)庫應(yīng)用》 Access在進(jìn)銷存管理中的應(yīng)用_第2頁
《Access 數(shù)據(jù)庫應(yīng)用》 Access在進(jìn)銷存管理中的應(yīng)用_第3頁
《Access 數(shù)據(jù)庫應(yīng)用》 Access在進(jìn)銷存管理中的應(yīng)用_第4頁
《Access 數(shù)據(jù)庫應(yīng)用》 Access在進(jìn)銷存管理中的應(yīng)用_第5頁
已閱讀5頁,還剩109頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、access 2007數(shù)據(jù)庫應(yīng)用 - access在進(jìn)銷存管理中的應(yīng)用 第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),包括訂 單的增減、查詢,以及訂單在處

2、理過程中(如發(fā)貨確認(rèn)等) 狀態(tài)的改變。 產(chǎn)品入庫出庫管理:完成記錄,修改商品入出庫信息,并 有庫存報(bào)表功能。 查詢功能:允許管理員可以按編號(hào)、日期對(duì)進(jìn)貨商的銷售 信息進(jìn)行查詢;對(duì)入庫的產(chǎn)品信息進(jìn)行詳細(xì)的查詢,包括 編號(hào)、名稱、入庫時(shí)間等。 12.1.2 開發(fā)要點(diǎn) l理解數(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ì) l需求分析 l模塊設(shè)計(jì) 12.2.1 需求分析 l用戶的需求主要有以下內(nèi)容。 將訂單、商品、供應(yīng)商、客戶、商品、進(jìn)貨、銷 售等信息錄入管理系統(tǒng),提供修改和查詢。 能

3、夠?qū)Ω黝愋畔⑻峁┎樵儭?能夠統(tǒng)計(jì)進(jìn)出庫的各類信息,對(duì)進(jìn)庫、銷售、庫 存進(jìn)行匯總,協(xié)調(diào)各部門的相互工作。 12.2.2 模塊設(shè)計(jì) l 按照前面的需求分析,我們?cè)O(shè)計(jì)的進(jìn)銷存系統(tǒng)分 為以下幾個(gè)模塊。 系統(tǒng)的基本配置模塊:包括產(chǎn)品、供應(yīng)商、客戶的基本資 料的錄入。 產(chǎn)品進(jìn)出庫處理模塊:主要包括對(duì)訂單信息的處理和采購 單的處理,一般產(chǎn)品入出庫的處理。 查詢模塊:對(duì)系統(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)系

4、 12.3.1 數(shù)據(jù)表結(jié)構(gòu)需求分析 l 在本系統(tǒng)中,我們?cè)O(shè)計(jì)了10張數(shù)據(jù)表,各個(gè)表存儲(chǔ)的信息如下所示。 “管理員”表:存放系統(tǒng)管理人員信息,一般是企業(yè)管理人員的用戶名 和密碼。 “產(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à)、訂購數(shù)量、

5、訂單金額、預(yù)定時(shí)間、訂單時(shí)間等 基本預(yù)訂信息。 “訂單處理明細(xì)”表:除了訂單基本信息外,還要增加付款信息和發(fā)貨 信息,如付款方式、付款時(shí)間、發(fā)貨地址、發(fā)貨時(shí)間、發(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)如下圖所示的窗口,選擇 合適的路

6、徑,輸入數(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)建】按鈕,完成該數(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)品編號(hào)數(shù)字 是 產(chǎn)品名稱文本18否 規(guī)格型號(hào)文本255否 計(jì)量單位文本20否 供應(yīng)商編號(hào)數(shù)字9否 產(chǎn)品類別文本18否 12.3.3 創(chuàng)建數(shù)據(jù)表 l “供應(yīng)商”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵

7、供應(yīng)商編號(hào)數(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ù)類型字段寬度是否主鍵 客戶編號(hào)數(shù)字9是 客戶姓名文本18否 客戶地址文本255否 聯(lián)系電話文本20否 字 段 名數(shù)據(jù)類型字段寬度是否主鍵 電子郵件文本40否 備注文本255否 12.3.3 創(chuàng)建數(shù)據(jù)表 l “訂單”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵 訂單編號(hào)數(shù)字9是 客戶編號(hào)數(shù)字9否 產(chǎn)品編號(hào)數(shù)字9否 供應(yīng)商編號(hào)數(shù)字9否 銷售單價(jià)貨幣否 訂購數(shù)量數(shù)字10否 訂單金額貨幣否 預(yù)定時(shí)間日期/時(shí)間否 訂單時(shí)間日期/時(shí)

8、間否 備注文本20否 12.3.3 創(chuàng)建數(shù)據(jù)表 l “訂單處理明細(xì)”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵 訂單編號(hào)數(shù)字9是 客戶編號(hào)數(shù)字9否 產(chǎn)品編號(hào)數(shù)字9 供應(yīng)商編號(hào)數(shù)字9否 預(yù)定時(shí)間日期/時(shí)間否 發(fā)貨時(shí)間日期/時(shí)間 銷售單價(jià)貨幣 否 訂購數(shù)量數(shù)字10否 訂單金額貨幣 否 付款方式文本8否 付款時(shí)間日期/時(shí)間否 發(fā)貨地址文本255否 發(fā)貨人文本18否 狀態(tài)文本40否 12.3.3 創(chuàng)建數(shù)據(jù)表 l “入庫記錄”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵 入庫編號(hào)數(shù)字20是 業(yè)務(wù)類別數(shù)字2否 產(chǎn)品編號(hào)數(shù)字9否 供應(yīng)商編號(hào)數(shù)字9否 入庫時(shí)間日期/時(shí)間否 入庫單價(jià)貨幣否 入庫數(shù)量數(shù)字10否 入庫金額貨

9、幣否 經(jīng)辦人文本18否 12.3.3 創(chuàng)建數(shù)據(jù)表 l “出庫記錄”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵 出庫編號(hào)數(shù)字20是 業(yè)務(wù)類別數(shù)字2否 產(chǎn)品編號(hào)數(shù)字9否 供應(yīng)商編號(hào)數(shù)字9否 出庫時(shí)間日期/時(shí)間否 出庫單價(jià)貨幣否 出庫數(shù)量數(shù)字10否 出庫金額貨幣否 經(jīng)辦人文本18否 12.3.3 創(chuàng)建數(shù)據(jù)表 l “業(yè)務(wù)類別”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵 業(yè)務(wù)類別數(shù)字9是 業(yè)務(wù)名稱文本20否 收發(fā)標(biāo)志是/否否 l “庫存”表 字 段 名數(shù)據(jù)類型字段寬度是否主鍵 產(chǎn)品編號(hào)數(shù)字9是 供應(yīng)商編號(hào)數(shù)字9是 庫存量數(shù)字10否 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 l 建立“產(chǎn)品信息”表和“出庫記錄”表之間的

10、表 關(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 建立“產(chǎn)品信息”表和“出庫記錄”表之間的表 關(guān)系。 第四步:設(shè)置表的參照完整性。我們以“產(chǎn)品信 息”表中的“產(chǎn)品編號(hào)”字段與“出庫記錄”表 中的“產(chǎn)品編號(hào)”字段為例。按下鼠標(biāo)左鍵拖動(dòng) “產(chǎn)品信息”表中的“產(chǎn)品編號(hào)”字段到“出庫 記錄”表中的“產(chǎn)品編號(hào)”字

11、段上,釋放鼠標(biāo)左 鍵,系統(tǒng)彈出【編輯關(guān)系】對(duì)話框,如下圖所示。 第五步:選中【實(shí)施參照完整性】復(fù)選框, 這樣就建立了表之間的一對(duì)多關(guān)系,如下圖 所示。 12.3.4 定義數(shù)據(jù)表之間的關(guān)系 按照同樣的步驟,可以建立起其他表 之間的關(guān)系。最終建立了下面的關(guān)系圖。 我們?cè)O(shè)計(jì)的數(shù)據(jù)庫表中,各種表關(guān)系如下表所示。 表 名字段名稱相關(guān)表名字段名稱 供應(yīng)商供應(yīng)商編號(hào)產(chǎn)品信息供應(yīng)商編號(hào) 供應(yīng)商供應(yīng)商編號(hào)入庫記錄供應(yīng)商編號(hào) 供應(yīng)商供應(yīng)商編號(hào)出庫記錄供應(yīng)商編號(hào) 供應(yīng)商供應(yīng)商編號(hào)庫存供應(yīng)商編號(hào) 供應(yīng)商供應(yīng)商編號(hào)訂單供應(yīng)商編號(hào) 供應(yīng)商供應(yīng)商編號(hào)訂單處理明細(xì)供應(yīng)商編號(hào) 產(chǎn)品信息產(chǎn)品編號(hào)訂單產(chǎn)品編號(hào) 產(chǎn)品信息產(chǎn)品編號(hào)訂單

12、處理明細(xì)產(chǎn)品編號(hào) 產(chǎn)品信息產(chǎn)品編號(hào)入庫記錄產(chǎn)品編號(hào) 產(chǎn)品信息產(chǎn)品編號(hào)出庫記錄產(chǎn)品編號(hào) 產(chǎn)品信息產(chǎn)品編號(hào)庫存產(chǎn)品編號(hào) 業(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 “登錄”窗體 l 運(yùn)用“模式對(duì)話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄” 窗體。 第一步:啟動(dòng)access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,選擇【窗體】 組中【其他窗體】下

13、拉菜單中的【模式對(duì)話框】 選項(xiàng),如下圖所示。 第三步:出現(xiàn)一張空白窗體,已有兩個(gè)按鈕: 【確定】和【取消】,如下圖所示。 12.4.1 “登錄”窗體 l 運(yùn)用“模式對(duì)話框”窗體,設(shè)計(jì)本系統(tǒng)的“登錄” 窗體。 控件名稱屬 性屬 性 值 label1標(biāo)題進(jìn)銷存登錄 label2標(biāo)題用戶名: label3標(biāo)題密碼: txt_name txtpwd輸入掩碼密碼 btn_ok btn_cancel 第四步:調(diào)整窗體布局,在窗體上添加幾 個(gè)控件,屬性值設(shè)置如下表所示。 第五步:設(shè)置主體背景顏色。在主體區(qū)域中右 擊,在彈出的快捷菜單中選擇【填充/背景色】 選項(xiàng),彈出如下圖所示的菜單。 12.4.1 “登錄”

14、窗體 l 運(yùn)用“模式對(duì)話框”窗體,設(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è)“矩形”控件, “背景”屬性設(shè)為“#9dbb61”。添加標(biāo)題控件,并 將標(biāo)題設(shè)為“進(jìn)銷存系統(tǒng)示例”。添加一個(gè)徽標(biāo)控 件,圖片為“羅斯文.png”,創(chuàng)建后的效果如下圖所 示。 12.4.2

15、 “切換面板”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“切換 面板”窗體。 控件名稱屬 性屬 性 值 image2圖片兒童.jpg label1標(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)題退出系統(tǒng) 第四步:利用命令按鈕控件和標(biāo)簽控件,為窗體添加幾 個(gè)按鈕和標(biāo)簽,來處理管理員的操作。各個(gè)控件的屬性 設(shè)置如下表

16、所示。 第五步:這樣就完成了“切換面板”窗 體的創(chuàng)建,完成后的結(jié)果如下圖所示。 12.4.3 “訂單處理”窗體 l 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第一步:啟動(dòng)access 2007,打開“進(jìn)銷存管理系統(tǒng).accdb”數(shù)據(jù)庫。 第二步:切換到【創(chuàng)建】選項(xiàng)卡,選擇【窗 體】組中【其他窗體】下拉菜單中的【窗體 向?qū)А窟x項(xiàng)。 第三步:按照前面章節(jié)介紹的步驟,在【表/查 詢】下拉列表框中選擇“表:訂單”,將【可 選字段】列表框中的所有字段加入右面【選定 字段】列表框中,然后依次確定即可。系統(tǒng)自 動(dòng)生成的窗體如下圖所示。 12.4.3 “訂單處理”窗體 l 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單

17、處理”窗體。 第四步:若要加上按鈕控件,則切換到【窗體 設(shè)計(jì)工具】選項(xiàng)卡,單擊【使用控件向?qū)А堪?鈕,則所有添加控件都會(huì)在向?qū)J较逻M(jìn)行。 第五步:單擊【命令控件】按鈕,出現(xiàn)如下 圖所示的【命令按鈕向?qū)А繉?duì)話框,我們以 “保存記錄”為例加以說明。 12.4.3 “訂單處理”窗體 l 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第六步:單擊【下一步】按鈕,為按鈕 添加上合適的圖標(biāo)或者文字,如下圖所 示。 第七步:單擊【下一步】按鈕,在彈出的指定 按鈕名稱的對(duì)話框中輸入該按鈕的名稱,如下 圖所示。 12.4.3 “訂單處理”窗體 l 運(yùn)用窗體向?qū)?,設(shè)計(jì)本系統(tǒng)的“訂單處理”窗體。 第八步:修改如下

18、表所示主要控件的屬性,設(shè) 置窗體的頁眉和頁腳。 第九步:這樣我們就完成了“訂單處理”窗 體的創(chuàng)建過程,完成后的界面如下圖所示。 控件名稱屬 性屬 性 值 image1圖片羅斯文.png text1控件來源 =replace(訂單 #|,|, nz(訂單編 號(hào),(新) 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)”窗體 l 運(yùn)用窗體的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“發(fā)貨確認(rèn)”窗

19、體。 第一步:單擊右鍵,在彈出的快捷菜單中選擇【窗體頁眉/頁腳】選項(xiàng),進(jìn)行窗體頁眉設(shè)置。步 驟和前面一樣,這里不再贅述。 第二步:在窗體上添加控件,屬性見下表所示。 控件名稱屬 性屬 性 值 label2標(biāo)題 請(qǐng)查看下面的訂單信息: 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_date2標(biāo)題送貨日期 txt_da

20、te所有屬性默認(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)題

21、為“產(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ū)А繉?duì)話 框,如下圖所示。 第八步:用同樣的方法,為窗體加上幾個(gè)功 能按鈕,標(biāo)題分別為“添加記錄”、“保存 記錄”、

22、“刪除記錄”、“進(jìn)貨查詢”、 “庫存查詢”和“返回”。 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ū)А繉?duì)話框,如下圖所示。 第十一步:選中【使用現(xiàn)有的表和查詢】單選按鈕, 單擊【下一步】按鈕,彈出選擇字段的對(duì)話框。在 對(duì)話框的【表/查詢】下拉列表框中選擇“表:入庫 記錄”,并把“入庫記錄”表的全部字段加入到 【選定字段】列表框中,如下圖所示。 12.4.5 “產(chǎn)品進(jìn)庫”窗體 l 運(yùn)用窗體

23、的【設(shè)計(jì)視圖】,設(shè)計(jì)本系統(tǒng)的“產(chǎn)品 進(jìn)庫”窗體。 第十二步:單擊【下一步】按鈕,在彈出的對(duì)話 框中選擇主/次字段的鏈接方式。我們選中【從列 表中選擇】單選按鈕,并在下面的列表框中選擇 用“入庫編號(hào)”顯示,如下圖所示。 第十三步:單擊【下一步】按鈕,在彈 出的對(duì)話框中輸入子窗體的名稱,如下 圖所示。 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ū)?,設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查 詢編輯”窗體。 第一步:

24、切換到【創(chuàng)建】選項(xiàng)卡,選擇【其他 窗體】下拉菜單中的【窗體向?qū)А窟x項(xiàng),如下 圖所示。 第二步:按照向?qū)У奶崾?,在【?查詢】 下拉列表框中選擇“表:供應(yīng)商”,將【可 選字段】列表框中的所有字段加入到右面 【選定字段】列表框中。其他設(shè)置按照以前 的介紹設(shè)置,最后生成的窗體如下圖所示。 12.4.6 “供應(yīng)商查詢編輯”窗體 l 運(yùn)用窗體的窗體向?qū)ВO(shè)計(jì)本系統(tǒng)的“供應(yīng)商查 詢編輯”窗體。 第三步:我們還要在這個(gè)窗體上加上“記錄導(dǎo)航”按鈕和“記錄操作”按鈕,注意在“使用控件向 導(dǎo)”下添加。 第四步:還添加了另外幾個(gè)控件,屬性設(shè)置 見下表所示。 第五步:調(diào)整窗體布局,完成后的窗體如下圖所 示。 控件名稱

25、屬 性屬 性 值 image1圖片羅斯文.png label1標(biāo)題供應(yīng)商管理查詢 label2標(biāo)題起始日期 txt_date1 label3標(biāo)題至 label4標(biāo)題截至日期 txt_date2 btn_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)題請(qǐng)選擇查詢的條件:

26、label_name標(biāo)題產(chǎn)品名稱 txt_wuzi標(biāo)題付款信 label_company標(biāo)題公司名稱 combo1行來源 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-dd label_person標(biāo)題經(jīng)辦人 進(jìn)貨資料查詢子窗體源對(duì)象查詢.進(jìn)貨資料查詢 txt_person所有屬性默認(rèn) btn_query標(biāo)題查詢 btn_cancel標(biāo)題清除 btn_return標(biāo)題返回 12.4.7 “進(jìn)貨資料查詢”窗體

27、l 設(shè)計(jì)本系統(tǒng)的“供應(yīng)商查詢編輯”窗體,在這里我們將用子窗口的方式來顯 示查詢結(jié)果。 第五步:調(diào)整窗體布局,完成了“進(jìn)貨資料查詢”窗體的創(chuàng)建,最終效果如下圖所示。 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_name txt_pwd1 txt_pwd2 l 完成后的“密碼管理”窗體如下圖所示。 12.4.8 “密碼管理”窗體 l “新密

28、碼”窗體控件如下表所示。 l 完成后的“新密碼”窗體如下圖所示。 控件名稱屬 性屬 性 值 label_pwd1標(biāo)題請(qǐng)輸入新密碼: label_pwd2標(biāo)題請(qǐng)?jiān)俅屋斎耄?new_pwd1 new_pwd2 commmand1標(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)卡,然后單擊 【其他】組中的【查詢?cè)O(shè)計(jì)】按鈕,如下圖所 示。 第二步:系統(tǒng)彈出如下圖所示的【顯示 表】對(duì)話框

29、,提示我們加入所需要的表, 如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計(jì) l 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第三步:選擇“訂單表明細(xì)”表,單擊【添加】按鈕,將該表添加到查詢的【設(shè)計(jì)視圖】中。 第四步:依次選擇該表中的全部字段,將 其添加到查詢的設(shè)計(jì)網(wǎng)格中,如下圖所示。 第五步:為字段添加查詢條件。右擊“訂單編 號(hào)”字段查詢網(wǎng)格的【條件】行,在彈出的快 捷菜單中選擇【生成器】選項(xiàng),如下圖所示。 12.5.1 “訂單處理查詢”的設(shè)計(jì) l 使用“查詢向?qū)А眮韯?chuàng)建“訂單處理查詢” 第六步:系統(tǒng)彈出【表達(dá)式生成器】對(duì)話框。 在【表達(dá)式生成器】對(duì)話框中,我們?yōu)椴樵?的字段設(shè)置條件,將它和窗

30、體上的控件值聯(lián) 系到一起,如下圖所示。 第七步:保存該查詢?yōu)椤坝唵翁幚聿樵儭?。這 樣,我們就完成了“訂單處理查詢”的創(chuàng)建。 輸入的查詢條件如上圖所示,這樣把查詢中 的“訂單編號(hào)”和窗體上的“訂單編號(hào)”關(guān) 聯(lián)起來。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計(jì) l 設(shè)計(jì)“供應(yīng)商銷售查詢” 第一步:切換到【創(chuàng)建】選項(xiàng)卡,然后單擊【其他】組中的【查詢?cè)O(shè)計(jì)】按鈕。 第二步:彈出的【顯示表】對(duì)話框中,依 次把“供應(yīng)商”表、“訂單”表和“產(chǎn)品 信息”表添加到查詢的【設(shè)計(jì)視圖】中, 然后關(guān)閉該對(duì)話框,如下圖所示。 第三步:選擇要進(jìn)行查詢的字段。雙擊選擇的字段, 即可將字段加入到下面的查詢?cè)O(shè)計(jì)網(wǎng)格中,最終結(jié) 果如下

31、圖所示。 12.5.2 “供應(yīng)商銷售查詢”的設(shè)計(jì) l 設(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)商銷售查詢”的設(shè)計(jì) l 設(shè)計(jì)“供應(yīng)商銷售查詢” 第六步:按照同樣的步驟,設(shè)置字段的查詢條件。整個(gè)查詢的條件設(shè)置如下表所示。 字 段表排序條 件 供應(yīng)商編號(hào)供應(yīng)商無forms!供應(yīng)商!供應(yīng)商編號(hào) 供應(yīng)商名稱供應(yīng)商無 產(chǎn)品編號(hào)產(chǎn)品信息升序 產(chǎn)品名稱產(chǎn)品信息無 產(chǎn)品類別產(chǎn)品信息無

32、訂購數(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 我們建立的字段的信息如下表所示。 字 段表排 序條 件 入庫編號(hào)入庫記錄無 業(yè)務(wù)類別入庫記錄無 產(chǎn)品編號(hào)產(chǎn)品信息無 產(chǎn)品名稱產(chǎn)品信息無 產(chǎn)品類別產(chǎn)品信息無 供應(yīng)商編號(hào)供應(yīng)商無 供應(yīng)商名稱供應(yīng)商無 入庫時(shí)間入庫記錄升序 入庫單價(jià)入庫記錄無 入庫數(shù)量入庫記錄無 入庫金額入庫記錄無 經(jīng)辦人入庫記錄無 12.5.3 “進(jìn)貨資料查詢”的設(shè)計(jì) l “進(jìn)貨

33、資料查詢”查詢的【設(shè)計(jì)視圖】如下圖所示。 12.5.4 “庫存查詢”的設(shè)計(jì) l 設(shè)計(jì)“庫存查詢” 。 第一步:切換到【創(chuàng)建】選項(xiàng)卡,然后單擊【其 他】組中的【查詢?cè)O(shè)計(jì)】按鈕,如下圖所示。 第二步:在彈出的【顯示表】對(duì)話框中,將 “庫存”表和“產(chǎn)品信息”表添加到查詢 【設(shè)計(jì)視圖】中,將該表中的所有字段添加 到查詢?cè)O(shè)計(jì)網(wǎng)格中,如下圖所示。 12.5.4 “庫存查詢”的設(shè)計(jì) l 設(shè)計(jì)“庫存查詢” 。 第一步:為字段添加條件。右擊“產(chǎn)品編號(hào)”字段的【條件】行,在彈出的快捷菜單中選擇【生 成器】選項(xiàng)。 第二步:系統(tǒng)彈出【表達(dá)式生成器】對(duì)話框, 在該對(duì)話框中為查詢的字段設(shè)置條件,將它 和窗體上的控件值聯(lián)系

34、到一起。設(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) 表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示。 第二步:系統(tǒng)彈出【報(bào)表向?qū)А繉?duì)話框,在 【表/查詢】下拉列表框中選擇“查詢:訂單查 詢”,然后把所有字段作為選定字段,如下圖 所示。 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第三步:單擊【下一步】按鈕,彈出

35、選擇數(shù) 據(jù)查看方式的對(duì)話框。我們選擇“通過訂單” 選項(xiàng),如下圖所示。 第四步:單擊【下一步】按鈕,彈出選擇分組 級(jí)別的對(duì)話框。本報(bào)表中我們不添加分組級(jí)別, 如下圖所示。 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第五步:單擊【下一步】按鈕,在彈出的 對(duì)話框中選擇“產(chǎn)品編號(hào)”為排序字段, 按升序排序,如下圖所示。 第六步:單擊【下一步】按鈕,在彈出的對(duì) 話框中選擇布局方式為“表格”布局,布局 方向?yàn)椤翱v向”,如下圖所示。 12.6.1 “訂單查詢”報(bào)表 l “訂單查詢”報(bào)表 用來顯示訂單查詢的結(jié)果。 第七步:單擊【下一步】按鈕,在彈出的對(duì) 話框中選擇報(bào)表樣式

36、。我們選擇【辦公室】 選項(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 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢 的輸出結(jié)果。 第一步:切換到【創(chuàng)建】選項(xiàng)卡,單擊【報(bào) 表】組中的【報(bào)表向?qū)А堪粹o,如下圖所示。 第二步:在彈出的【報(bào)表向?qū)А繉?duì)話框中, 選擇報(bào)表的數(shù)據(jù)源為“查詢:供應(yīng)商查 詢”,然后把查詢中的所有字段作為選定 字段,如下圖

37、所示。 12.6.2 “供應(yīng)商銷售”報(bào)表 l 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢 的輸出結(jié)果。 第三步:單擊【下一步】按鈕,在彈出的 對(duì)話框中選擇數(shù)據(jù)的查看方式。我們選擇 “通過供應(yīng)商”選項(xiàng),如下圖所示。 第四步:單擊【下一步】按鈕,在彈出的對(duì)話 框中不選擇分組級(jí)別。 第五步:單擊【下一步】按鈕,在排序方式中 選擇通過“預(yù)定時(shí)間”和“訂購數(shù)量”進(jìn)行排 序,排序方式分別為“升序”和“降序”,如 下圖所示。 12.6.2 “供應(yīng)商銷售”報(bào)表 l 建立“供應(yīng)商銷售”報(bào)表,作為供應(yīng)商銷售查詢 的輸出結(jié)果。 第六步:單擊【下一步】按鈕,在彈出的對(duì)話框中選擇報(bào)表的樣式為“辦公室”。 第七步:單擊【

38、下一步】按鈕,輸入報(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,如下圖所示。 第二步:在彈出的【報(bào)表向?qū)А繉?duì)話框中,選 擇報(bào)表的數(shù)據(jù)源為“查詢:庫存查詢”,然后 把查詢中的所有字段作為選定字段,如下圖所 示。 12.6.3 “庫存”報(bào)表 l 在建立“庫存”報(bào)表前,我們需要建立一個(gè)“庫 存查詢” ,建立查詢的過程

39、如下所示。 第三步:為報(bào)表添加分組級(jí)別“產(chǎn)品類別”, 這樣就把不同類別產(chǎn)品的信息分開了,如下 圖所示。 第四步:系統(tǒng)彈出提示排序次序的對(duì)話框,我 們用“產(chǎn)品編號(hào)”作為排序的標(biāo)準(zhǔn),單擊【下 一步】按鈕。 12.6.3 “庫存”報(bào)表 l 在建立“庫存”報(bào)表前,我們需要建立一個(gè)“庫 存查詢” ,建立查詢的過程如下所示。 第五步:單擊【下一步】按鈕,在彈出的對(duì)話框中選擇報(bào)表的樣式為“辦公室”。 第六步:單擊【下一步】按鈕,輸入報(bào)表 標(biāo)題為“庫存查詢”,選中【預(yù)覽報(bào)表】 單選按鈕。 第七步:單擊【完成】按鈕,完成了報(bào)表的 設(shè)計(jì)。此時(shí),報(bào)表的【設(shè)計(jì)視圖】如下圖所 示。 12.7 編碼的實(shí)現(xiàn) l公用模塊 l

40、“登錄”窗體代碼 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è)新模塊,如下圖所示。 12.7.1 公用模塊 l建立公用模塊 第三步:新建模塊以后,vba編輯器界面如下圖 所示。 第四步:我們?cè)谛略黾拥哪K里,增加如下代碼。 option compare database op

41、tion explicit txtsql為執(zhí)行查詢時(shí)所需要的sql語句 public function exesql(byval txtsql as string) as adodb.recordset on error goto exesql_error 錯(cuò)誤處理 dim rs as new adodb.recordset rs.open txtsql, currentproject.connection, adopenkeyset, adlockoptimistic 返回記錄集對(duì)象 set exesql = rs 返回值為exesql exesql_exit: set rs = nothi

42、ng exit function exesql_error: dim msgstring as string msgstring = 查詢錯(cuò)誤 & err.description msgbox msgstring, vbcritical resume exesql_exit end function 12.7.1 公用模塊 為了正確地使用ado方式來對(duì)數(shù)據(jù)庫查詢,我們要在vba編輯器下加入兩個(gè)引用。選擇 【工具】|【引用】命令,加入 創(chuàng)建表有多種不同的方法,用戶可以根據(jù)自己的習(xí)慣和工作的難易 程度選擇合適的創(chuàng)建方法。直接輸入、表模板、表的【設(shè)計(jì)視圖】是最常用的創(chuàng)建表的方法。 microsoft

43、 activex data objects 2.8 library和microsoft activex data objects recordset 2.8 library,如下圖所示。 12.7.2 “登錄”窗體代碼 l 已知我們?cè)O(shè)計(jì)的“登錄”窗體如下圖所示。 12.7.2 “登錄”窗體代碼 l 編寫“登錄”窗體代碼 第一步:打開“登錄”窗體的【設(shè)計(jì)視圖】,右 擊,在彈出的快捷菜單中選擇【屬性表】選項(xiàng), 彈出【屬性表】窗格,如下圖所示。 第二步:在【屬性表】窗格的【所選內(nèi)容的類 型:窗體】下拉列表框中選擇“窗體”選項(xiàng)。 切換到【數(shù)據(jù)】選項(xiàng)卡,把【記錄源】屬性設(shè) 置為“管理員”表。 第三步:單

44、擊【確定】按鈕,并將【屬性表】 切換到【事件】選項(xiàng)卡,在【單擊】屬性的下 拉列表框中選擇【事件過程】選項(xiàng),如下圖所 示。 12.7.2 “登錄”窗體代碼 l 編寫“登錄”窗體代碼 第四步:單擊右邊的省略號(hào)按鈕,進(jìn)入vba編 輯器,添加“確定”按鈕的代碼,如下所示。 option compare database option explicit dim mrc as adodb.recordset dim txtsql as string dim i as integer 記錄錯(cuò)誤次數(shù) 確定按鈕的代嗎 private sub btn_ok_click() on error goto err_bt

45、n_ok_click 錯(cuò)誤處理 判斷用戶名是否為空 if isnull(txt_name) then msgbox 請(qǐng)輸入用戶名!, vbcritical, 提示 txt_name.setfocus else 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 me.visible =

46、 false 打開切換面板 docmd.openform 切換面板 else i = i + 1 if (i 0 then rs.update else msgbox 刪除記錄出錯(cuò), vbcritical end if end ifrs.close set rs = nothing end sub 刪除記錄后,要更新庫存數(shù)量 private sub btn_del_click() dim rs as new adodb.recordset dim str_temp as string str_temp = select * from 庫存 where 產(chǎn)品編號(hào) = & 產(chǎn)品編號(hào) & rs.op

47、en str_temp, currentproject.connection, adopendynamic, adlockoptimistic if not isnull(rs) then rs(庫存量) = rs(庫存量) - 入庫數(shù)量 rs.update end if rs.close set rs = nothing docmd.runcommand accmddeleterecord end sub private sub btn_query_click() docmd.openform 進(jìn)貨資料查詢 me.visible = false end sub private sub btn

48、_return_click() me.visible = false end sub 12.7.4 “產(chǎn)品進(jìn)庫”窗體代碼 l 添加完事件過程以后的【代碼】窗口如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 l 已知我們?cè)O(shè)計(jì)的“發(fā)貨確認(rèn)”窗體如下圖所示。 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 l 為“發(fā)貨確認(rèn)”窗體添加事件過程。 第一步:打開“發(fā)貨確認(rèn)”窗體的【設(shè)計(jì)視圖】,右擊“確認(rèn)”按鈕,在彈出的快捷菜單中選 擇【事件生成器】選項(xiàng),在彈出的【選擇生成器】對(duì)話框中選擇【代碼生成器】選項(xiàng),單擊 【確定】按鈕,打開vba程序編輯器,輸入“確認(rèn)”按鈕代碼。 第二步:重復(fù)步驟1,對(duì)“返回”按鈕關(guān)聯(lián)“單擊

49、事件”過程。 相關(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.recordset if isnull(txt_no) then msgbox 請(qǐng)輸入要確認(rèn)的訂單編號(hào)!, vbcritical, 提示 txt_no.setfocus end if if isnull(combo1) then msgbox 請(qǐng)輸入支付方式

50、!, vbcritical, 提示 combo1.setfocus combo1.dropdown end if 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 if isnull(txt_paydate) then msgbox 請(qǐng)輸入支付日期!, vbcritical, 提示 txt_paydate.setfocus end if if isnull(txt_address) then msgbox 請(qǐng)輸入送貨地址!, vbcritical, 提示 txt_address.setfocus end if if isnull(txt_name) then msgbox 請(qǐng)輸入送貨人!, vbcritic

51、al, 提示 txt_name.setfocus end if if isnull(txt_date) then msgbox 請(qǐng)輸入送貨日期!, vbcritical, 提示 txt_date.setfocus end if dim 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 沒有該訂單!, vbcritical, 提示 else 記錄查找到的訂單信息 str(0) =

52、 mrc(訂單編號(hào)) str(1) = mrc(客戶編號(hào)) str(2) = mrc(產(chǎn)品編號(hào)) str(3) = mrc(供應(yīng)商編號(hào)) 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 if dim rs as new adodb.recordset rs.open 訂單處理明細(xì), currentproject.connection, adopendynamic, adlockoptimis

53、tic rs.addnew rs(訂單編號(hào)) = str(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(訂購數(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

54、 = nothing msgbox 成功添加了該信息! 12.7.5 “發(fā)貨確認(rèn)”窗體代碼 更新庫存表中的數(shù)量 dim rs2 as new adodb.recordset 查找?guī)齑姹碇械挠涗?str_temp = select * from 庫存 where 產(chǎn)品編號(hào) = & str(2) & rs2.open str_temp, currentproject.connection, adopendynamic, adlockoptimistic if not rs2.eof then rs2(庫存量) = rs2(庫存量) - str(5) rs2.update end if rs2.cl

55、ose set rs2 = nothing msgbox 成功更新了庫存! 錯(cuò)誤處理 exit_btn_ok_click: exit sub err_btn_ok_click: exit sub resume exit_btn_ok_click end sub private 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

56、 accombobox ctl.value = null end select next me.txt_no.setfocus end sub private sub btn_return_click() me.visible = false docmd.openform 切換面板, acnormal end sub 添加完代碼后的【代碼】窗體如下所示。 12.7.6 “供應(yīng)商”窗體代碼 l 已知我們?cè)O(shè)計(jì)的“供應(yīng)商”窗體如下圖所示。 12.7.6 “供應(yīng)商”窗體代碼 窗體中各個(gè)按鈕的代碼如下。 “銷售查詢”按鈕代碼如下。 private sub btn_query_click() if isn

57、ull(供應(yīng)商編號(hào)) or isnull(txt_date1) or isnull(txt_date2) then msgbox 您必須輸入供應(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 if end sub “返回”按鈕代碼如下。

58、private sub btn_return_click() docmd.close docmd.openform 切換面板 end sub 添加代碼以后的【代碼】窗體如下圖 所示。 12.7.7 “進(jìn)貨資料查詢”窗體代碼 l 已知我們?cè)O(shè)計(jì)的“進(jìn)貨資料查詢”窗體如下圖所示。 12.7.7 “進(jìn)貨資料查詢”窗體代碼 “清除”按鈕添加的代碼如下。 option compare database private sub btn_clear_click() on error goto err_btn_clear_click dim ctl as control for each ctl in me.c

59、ontrols 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 = false exit_btn_clear_click: exit sub err_btn_clear_click: exit sub resume exit_btn_clea

60、r_click end 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 & *) and end if if

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論