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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、access 2007數據庫應用 - access在進銷存管理中的應用 第12章access在進銷存管理 中的應用 本章學習要點 l 了解進銷存系統(tǒng)的概念 l 系統(tǒng)的功能設計 l 系統(tǒng)的模塊設計 l 表和表關系的設計 l 查詢的設計 l 窗體的創(chuàng)建 l 報表的創(chuàng)建 l 宏命令和vba代碼的創(chuàng)建 l 系統(tǒng)的運行與應用 12.1 實 例 導 航 l系統(tǒng)功能 l開發(fā)要點 12.1.1 系統(tǒng)功能 l 我們所設計的進銷存系統(tǒng)的主要功能包括如下。 商品基本信息的管理:用來處理進出庫的商品信息,包括 新建、修改、刪除和查詢等。 訂單信息的處理:是整個系統(tǒng)的工作流程的起點,包括訂 單的增減、查詢,以及訂單在處

2、理過程中(如發(fā)貨確認等) 狀態(tài)的改變。 產品入庫出庫管理:完成記錄,修改商品入出庫信息,并 有庫存報表功能。 查詢功能:允許管理員可以按編號、日期對進貨商的銷售 信息進行查詢;對入庫的產品信息進行詳細的查詢,包括 編號、名稱、入庫時間等。 12.1.2 開發(fā)要點 l理解數據表的結構,掌握各表之間關系的 建立原理,熟悉查詢和窗體的設計,對進 銷存管理系統(tǒng)有比較清楚的了解,從而開 發(fā)出完整的進銷存管理系統(tǒng)。 12.2 系統(tǒng)需求分析設計 l需求分析 l模塊設計 12.2.1 需求分析 l用戶的需求主要有以下內容。 將訂單、商品、供應商、客戶、商品、進貨、銷 售等信息錄入管理系統(tǒng),提供修改和查詢。 能

3、夠對各類信息提供查詢。 能夠統(tǒng)計進出庫的各類信息,對進庫、銷售、庫 存進行匯總,協調各部門的相互工作。 12.2.2 模塊設計 l 按照前面的需求分析,我們設計的進銷存系統(tǒng)分 為以下幾個模塊。 系統(tǒng)的基本配置模塊:包括產品、供應商、客戶的基本資 料的錄入。 產品進出庫處理模塊:主要包括對訂單信息的處理和采購 單的處理,一般產品入出庫的處理。 查詢模塊:對系統(tǒng)中的各類信息,如供應商資料、出入庫 詳細資料等進行查詢,支持多個條件的復合查詢。 報表顯示模塊:根據用戶的需要和查詢結果來生成報表。 12.3 數據庫結構的設計 l數據表結構需求分析 l建立空數據庫系統(tǒng) l創(chuàng)建數據表 l定義數據表之間的關系

4、 12.3.1 數據表結構需求分析 l 在本系統(tǒng)中,我們設計了10張數據表,各個表存儲的信息如下所示。 “管理員”表:存放系統(tǒng)管理人員信息,一般是企業(yè)管理人員的用戶名 和密碼。 “產品信息”表:存儲產品的基本信息,如產品編號、產品名稱、規(guī)格 型號、計量單位、供應商編號、產品類別等。 “供應商”表:存放產品供應商的相關信息,比如供應商編號、供應 商 名稱、聯系人姓名、聯系人職務、業(yè)務電話、電子郵件等。 “客戶”表:記錄客戶的基本信息,比如客戶編號、客戶姓名、客戶地 址、聯系電話、電子郵件、備注等。 “訂單”表:記錄訂單的基本信息,如訂單編號、客戶編號、產品編號、 供應商編號、銷售單價、訂購數量、

5、訂單金額、預定時間、訂單時間等 基本預訂信息。 “訂單處理明細”表:除了訂單基本信息外,還要增加付款信息和發(fā)貨 信息,如付款方式、付款時間、發(fā)貨地址、發(fā)貨時間、發(fā)貨人等。 “入庫記錄”表:存放產品入庫的信息。 “出庫記錄”表:存放產品出庫的信息。 “業(yè)務類別”表:記錄進出庫的業(yè)務類型。 “庫存”表:記錄產品的庫存信息。 12.3.2 建立空數據庫系統(tǒng) l 建立一個“進銷存管理系統(tǒng).accdb”空白數據庫。 第一步:打開access 2007,單擊【開始使用 microsoft office access】頁中的【空白數據庫】 按鈕,如下圖所示。 第二步:系統(tǒng)出現如下圖所示的窗口,選擇 合適的路

6、徑,輸入數據庫名稱為“進銷存系 統(tǒng).accdb”。 12.3.2 建立空數據庫系統(tǒng) l 建立一個“進銷存管理系統(tǒng).accdb”空白數據庫。 第三步:單擊【創(chuàng)建】按鈕,完成該數據庫的創(chuàng)建。系統(tǒng)自動建立了一個名為“表1” 的數據表。 12.3.3 創(chuàng)建數據表 l “管理員”表 l “產品信息”表 字 段 名數據類型字段寬度是否主鍵 用戶名文本18否 密碼文本18否 字 段 名數據類型字段寬度是否主鍵 產品編號數字 是 產品名稱文本18否 規(guī)格型號文本255否 計量單位文本20否 供應商編號數字9否 產品類別文本18否 12.3.3 創(chuàng)建數據表 l “供應商”表 字 段 名數據類型字段寬度是否主鍵

7、供應商編號數字9是 供應商名稱文本18否 聯系人姓名文本18否 聯系人職務文本18否 業(yè)務電話文本20否 電子郵件文本40否 12.3.3 創(chuàng)建數據表 l “客戶”表 字 段 名數據類型字段寬度是否主鍵 客戶編號數字9是 客戶姓名文本18否 客戶地址文本255否 聯系電話文本20否 字 段 名數據類型字段寬度是否主鍵 電子郵件文本40否 備注文本255否 12.3.3 創(chuàng)建數據表 l “訂單”表 字 段 名數據類型字段寬度是否主鍵 訂單編號數字9是 客戶編號數字9否 產品編號數字9否 供應商編號數字9否 銷售單價貨幣否 訂購數量數字10否 訂單金額貨幣否 預定時間日期/時間否 訂單時間日期/時

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

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

10、表 關系。 第一步:啟動access 2007,打開“進銷存管理系統(tǒng).accdb”。 第二步:切換到【數據庫工具】選項卡, 單擊【關系】按鈕,如下圖所示。 第三步:單擊右鍵,在彈出的快捷菜單中選 擇【顯示表】命令,按住ctrl鍵,選擇所有 的表,然后單擊【添加】按鈕,把所有的表 都添加上去,如下圖所示。 12.3.4 定義數據表之間的關系 l 建立“產品信息”表和“出庫記錄”表之間的表 關系。 第四步:設置表的參照完整性。我們以“產品信 息”表中的“產品編號”字段與“出庫記錄”表 中的“產品編號”字段為例。按下鼠標左鍵拖動 “產品信息”表中的“產品編號”字段到“出庫 記錄”表中的“產品編號”字

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

12、處理明細產品編號 產品信息產品編號入庫記錄產品編號 產品信息產品編號出庫記錄產品編號 產品信息產品編號庫存產品編號 業(yè)務類別業(yè)務類別入庫記錄業(yè)務類別 業(yè)務類別業(yè)務類別出庫記錄業(yè)務類別 12.4 窗體的實現 l“登錄”窗體 l“切換面板”窗體 l“訂單處理”窗體 l“發(fā)貨確認”窗體 l“產品進庫”窗體 l“供應商查詢編輯”窗體 l“進貨資料查詢”窗體 l“密碼管理”窗體 12.4.1 “登錄”窗體 l 運用“模式對話框”窗體,設計本系統(tǒng)的“登錄” 窗體。 第一步:啟動access 2007,打開“進銷存管理系統(tǒng).accdb”數據庫。 第二步:切換到【創(chuàng)建】選項卡,選擇【窗體】 組中【其他窗體】下

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

14、窗體 l 運用“模式對話框”窗體,設計本系統(tǒng)的“登錄” 窗體。 第六步:調整窗體布局,完成后的“登錄”窗體如下圖所示。 12.4.2 “切換面板”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“切換 面板”窗體。 第一步:啟動access 2007,打開“進銷存管理系統(tǒng).accdb”數據庫。 第二步:切換到【創(chuàng)建】選項卡,單擊 【窗體】組中的【窗體設計】按鈕,出 現一張空白窗體。 第三步:調整窗體布局。添加一個“矩形”控件, “背景”屬性設為“#9dbb61”。添加標題控件,并 將標題設為“進銷存系統(tǒng)示例”。添加一個徽標控 件,圖片為“羅斯文.png”,創(chuàng)建后的效果如下圖所 示。 12.4.2

15、 “切換面板”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“切換 面板”窗體。 控件名稱屬 性屬 性 值 image2圖片兒童.jpg label1標題進銷存系統(tǒng)示例 label2標題訂單處理 label3標題產品入庫 label4標題發(fā)貨確認 label5標題供應商資料查詢 label6標題進貨資料查詢 label7標題密碼管理 option1標題 option2標題 option3標題 option4標題 option5標題 option6標題 btn_retrun標題退出系統(tǒng) 第四步:利用命令按鈕控件和標簽控件,為窗體添加幾 個按鈕和標簽,來處理管理員的操作。各個控件的屬性 設置如下表

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

17、處理”窗體。 第四步:若要加上按鈕控件,則切換到【窗體 設計工具】選項卡,單擊【使用控件向導】按 鈕,則所有添加控件都會在向導模式下進行。 第五步:單擊【命令控件】按鈕,出現如下 圖所示的【命令按鈕向導】對話框,我們以 “保存記錄”為例加以說明。 12.4.3 “訂單處理”窗體 l 運用窗體向導,設計本系統(tǒng)的“訂單處理”窗體。 第六步:單擊【下一步】按鈕,為按鈕 添加上合適的圖標或者文字,如下圖所 示。 第七步:單擊【下一步】按鈕,在彈出的指定 按鈕名稱的對話框中輸入該按鈕的名稱,如下 圖所示。 12.4.3 “訂單處理”窗體 l 運用窗體向導,設計本系統(tǒng)的“訂單處理”窗體。 第八步:修改如下

18、表所示主要控件的屬性,設 置窗體的頁眉和頁腳。 第九步:這樣我們就完成了“訂單處理”窗 體的創(chuàng)建過程,完成后的界面如下圖所示。 控件名稱屬 性屬 性 值 image1圖片羅斯文.png text1控件來源 =replace(訂單 #|,|, nz(訂單編 號,(新) btn_add背景樣式透明 btn_save背景樣式透明 btn_del背景樣式透明 btn_query背景樣式透明 btn_return背景樣式透明 label7背景樣式透明 option1option6標題 btn_retrun標題退出系統(tǒng) 12.4.4 “發(fā)貨確認”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“發(fā)貨確認”窗

19、體。 第一步:單擊右鍵,在彈出的快捷菜單中選擇【窗體頁眉/頁腳】選項,進行窗體頁眉設置。步 驟和前面一樣,這里不再贅述。 第二步:在窗體上添加控件,屬性見下表所示。 控件名稱屬 性屬 性 值 label2標題 請查看下面的訂單信息: txt_no所有屬性默認 label_type標題支付方式 combo1行來源“支票”;“信用卡”;“現金” label_date標題付款日期 txt_paydate所有屬性默認 label_address標題送貨地址 txt_address所有屬性默認 label_name標題送貨人 txt_name所有屬性默認 label_date2標題送貨日期 txt_da

20、te所有屬性默認 btn_ok標題確認 btn_cancel標題取消 btn_return標題返回 第三步:完成后的“發(fā)貨確認”窗體如 下圖所示。 12.4.5 “產品進庫”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“產品 進庫”窗體。 第一步:單擊【創(chuàng)建】選項卡中【窗體】組中的【窗 體設計】按鈕,會出現一個空白窗體。 第二步:為窗體設計一個窗體頁眉,單擊右 鍵,彈出如下快捷菜單。 12.4.5 “產品進庫”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“產品 進庫”窗體。 第三步:選擇【窗體頁眉/頁腳】選項,窗 體中出現【窗體頁眉】區(qū)域,如下圖所示。 第四步:為窗體添加一個標簽,設置標題

21、為“產 品進庫管理”,再添加一個徽標控件,圖片設置 為“羅斯文.png”。 第五步:為窗體添加表中的字段。單擊【主體】 區(qū)域,單擊【設計】選項卡下的【添加現有字 段】按鈕,彈出【字段列表】窗格,如下圖所 示。 12.4.5 “產品進庫”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“產品 進庫”窗體。 第六步:將“入庫記錄”表的所有字段添加到窗體上,并排列整齊。 第七步:為窗體增加4個導航按鈕,分別為“第 一個”、“前一個”、“后一個”、“最后一 個”。添加的方法利用【命令按鈕向導】對話 框,如下圖所示。 第八步:用同樣的方法,為窗體加上幾個功 能按鈕,標題分別為“添加記錄”、“保存 記錄”、

22、“刪除記錄”、“進貨查詢”、 “庫存查詢”和“返回”。 12.4.5 “產品進庫”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“產品 進庫”窗體。 第九步:如果要查看數據表格式的入庫記錄,我們可以在窗體上添加一個子窗體。 第十步:單擊【控件】組中的【子窗體/ 子報表】按鈕,并拖放到窗體中,出現 【子窗體向導】對話框,如下圖所示。 第十一步:選中【使用現有的表和查詢】單選按鈕, 單擊【下一步】按鈕,彈出選擇字段的對話框。在 對話框的【表/查詢】下拉列表框中選擇“表:入庫 記錄”,并把“入庫記錄”表的全部字段加入到 【選定字段】列表框中,如下圖所示。 12.4.5 “產品進庫”窗體 l 運用窗體

23、的【設計視圖】,設計本系統(tǒng)的“產品 進庫”窗體。 第十二步:單擊【下一步】按鈕,在彈出的對話 框中選擇主/次字段的鏈接方式。我們選中【從列 表中選擇】單選按鈕,并在下面的列表框中選擇 用“入庫編號”顯示,如下圖所示。 第十三步:單擊【下一步】按鈕,在彈 出的對話框中輸入子窗體的名稱,如下 圖所示。 12.4.5 “產品進庫”窗體 l 運用窗體的【設計視圖】,設計本系統(tǒng)的“產品 進庫”窗體。 第十四步:調整窗體的布局,這樣我們就完成了“產品進庫”窗體的創(chuàng)建。最終的創(chuàng)建效果如 下圖所示。 12.4.6 “供應商查詢編輯”窗體 l 運用窗體的窗體向導,設計本系統(tǒng)的“供應商查 詢編輯”窗體。 第一步:

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

25、屬 性屬 性 值 image1圖片羅斯文.png label1標題供應商管理查詢 label2標題起始日期 txt_date1 label3標題至 label4標題截至日期 txt_date2 btn_query標題查詢 btn_return標題返回 12.4.7 “進貨資料查詢”窗體 l 設計本系統(tǒng)的“供應商查詢編輯”窗體,在這里我們將用子窗口的方式來顯 示查詢結果。 第一步:切換到【創(chuàng)建】選項卡,單擊【窗體】組中的【窗體設計】按鈕。 第二步:添加若干控件,并設置它們的屬性值,具體情況如下表所示。 控件名稱屬 性屬 性 值 label1標題 進貨資料查詢 label2標題請選擇查詢的條件:

26、label_name標題產品名稱 txt_wuzi標題付款信 label_company標題公司名稱 combo1行來源 select 供應商名稱 from 供應商 order by 供應商名稱; label_from標題日期范圍 txt_date1所有屬性 labet_to標題至 txt_date2所有屬性 label_rule 標題格式為yy-mm-dd label_person標題經辦人 進貨資料查詢子窗體源對象查詢.進貨資料查詢 txt_person所有屬性默認 btn_query標題查詢 btn_cancel標題清除 btn_return標題返回 12.4.7 “進貨資料查詢”窗體

27、l 設計本系統(tǒng)的“供應商查詢編輯”窗體,在這里我們將用子窗口的方式來顯 示查詢結果。 第五步:調整窗體布局,完成了“進貨資料查詢”窗體的創(chuàng)建,最終效果如下圖所示。 12.4.8 “密碼管理”窗體 l “密碼管理”窗體控件如下表所示。 控件名稱屬性屬性值 btn_add標題增加 btn_xiugai標題修改 btn_del標題刪除 btn_return標題返回 label_name標題用戶名: label_pwd標題密碼: label_pwd2標題確認密碼: txt_name txt_pwd1 txt_pwd2 l 完成后的“密碼管理”窗體如下圖所示。 12.4.8 “密碼管理”窗體 l “新密

28、碼”窗體控件如下表所示。 l 完成后的“新密碼”窗體如下圖所示。 控件名稱屬 性屬 性 值 label_pwd1標題請輸入新密碼: label_pwd2標題請再次輸入: new_pwd1 new_pwd2 commmand1標題確定 command0標題取消 12.5 查詢的實現 l“訂單處理查詢”的設計 l“供應商銷售查詢”的設計 l“進貨資料查詢”的設計 l“庫存查詢”的設計 12.5.1 “訂單處理查詢”的設計 l 使用“查詢向導”來創(chuàng)建“訂單處理查詢” 第一步:切換到【創(chuàng)建】選項卡,然后單擊 【其他】組中的【查詢設計】按鈕,如下圖所 示。 第二步:系統(tǒng)彈出如下圖所示的【顯示 表】對話框

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

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

31、圖所示。 12.5.2 “供應商銷售查詢”的設計 l 設計“供應商銷售查詢” 第四步:為字段添加查詢條件。右擊“供應商編 號”字段查詢網格的【條件】行,在彈出的快捷 菜單中選擇【生成器】選項,如下圖所示。 第五步:在彈出的【表達式生成器】對話框 中,我們?yōu)椤肮叹幪枴弊侄卧O置查詢條 件,如下圖所示。 12.5.2 “供應商銷售查詢”的設計 l 設計“供應商銷售查詢” 第六步:按照同樣的步驟,設置字段的查詢條件。整個查詢的條件設置如下表所示。 字 段表排序條 件 供應商編號供應商無forms!供應商!供應商編號 供應商名稱供應商無 產品編號產品信息升序 產品名稱產品信息無 產品類別產品信息無

32、訂購數量訂單無 預訂時間訂單無 between forms! 供應商!txt_date1 and forms! 供應商! txt_date2 第七步:保存該查詢?yōu)椤肮啼N售查詢”,這樣我們就完成了該查詢的創(chuàng)建。 12.5.3 “進貨資料查詢”的設計 l 我們建立的字段的信息如下表所示。 字 段表排 序條 件 入庫編號入庫記錄無 業(yè)務類別入庫記錄無 產品編號產品信息無 產品名稱產品信息無 產品類別產品信息無 供應商編號供應商無 供應商名稱供應商無 入庫時間入庫記錄升序 入庫單價入庫記錄無 入庫數量入庫記錄無 入庫金額入庫記錄無 經辦人入庫記錄無 12.5.3 “進貨資料查詢”的設計 l “進貨

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

34、到一起。設置的查詢 條件如下圖所示。 第三步:保存該查詢?yōu)椤皫齑娌樵儭?,這樣 我們就完成了“庫存查詢”的創(chuàng)建。 12.6 報表的實現 l“訂單查詢”報表 l“供應商銷售”報表 l“庫存”報表 12.6.1 “訂單查詢”報表 l “訂單查詢”報表 用來顯示訂單查詢的結果。 第一步:切換到【創(chuàng)建】選項卡,單擊【報 表】組中的【報表向導】按鈕,如下圖所示。 第二步:系統(tǒng)彈出【報表向導】對話框,在 【表/查詢】下拉列表框中選擇“查詢:訂單查 詢”,然后把所有字段作為選定字段,如下圖 所示。 12.6.1 “訂單查詢”報表 l “訂單查詢”報表 用來顯示訂單查詢的結果。 第三步:單擊【下一步】按鈕,彈出

35、選擇數 據查看方式的對話框。我們選擇“通過訂單” 選項,如下圖所示。 第四步:單擊【下一步】按鈕,彈出選擇分組 級別的對話框。本報表中我們不添加分組級別, 如下圖所示。 12.6.1 “訂單查詢”報表 l “訂單查詢”報表 用來顯示訂單查詢的結果。 第五步:單擊【下一步】按鈕,在彈出的 對話框中選擇“產品編號”為排序字段, 按升序排序,如下圖所示。 第六步:單擊【下一步】按鈕,在彈出的對 話框中選擇布局方式為“表格”布局,布局 方向為“縱向”,如下圖所示。 12.6.1 “訂單查詢”報表 l “訂單查詢”報表 用來顯示訂單查詢的結果。 第七步:單擊【下一步】按鈕,在彈出的對 話框中選擇報表樣式

36、。我們選擇【辦公室】 選項,如下圖所示。 第八步:單擊【下一步】按鈕,輸入該報表 的名稱為“訂單查詢報表”,如下圖所示。 12.6.1 “訂單查詢”報表 l “訂單查詢”報表 用來顯示訂單查詢的結果。 第九步:單擊【完成】按鈕,完成“訂單查詢報表”的創(chuàng)建。此時該報表的【設計視圖】如下 圖所示。 12.6.2 “供應商銷售”報表 l 建立“供應商銷售”報表,作為供應商銷售查詢 的輸出結果。 第一步:切換到【創(chuàng)建】選項卡,單擊【報 表】組中的【報表向導】按鈕,如下圖所示。 第二步:在彈出的【報表向導】對話框中, 選擇報表的數據源為“查詢:供應商查 詢”,然后把查詢中的所有字段作為選定 字段,如下圖

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

38、下一步】按鈕,輸入報表標題為“供應商銷售報表”,選中【預覽報表】單選按鈕。 第八步:單擊【完成】按鈕,完成“供應商銷售報表”的創(chuàng)建。此時報表的【設計視圖】如下圖所 示。 12.6.3 “庫存”報表 l 在建立“庫存”報表前,我們需要建立一個“庫 存查詢” ,建立查詢的過程如下所示。 第一步:切換到【創(chuàng)建】選項卡,單擊【報表】組 中的【報表向導】按鈕,如下圖所示。 第二步:在彈出的【報表向導】對話框中,選 擇報表的數據源為“查詢:庫存查詢”,然后 把查詢中的所有字段作為選定字段,如下圖所 示。 12.6.3 “庫存”報表 l 在建立“庫存”報表前,我們需要建立一個“庫 存查詢” ,建立查詢的過程

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

40、“登錄”窗體代碼 l“切換面板”代碼 l“產品進庫”窗體代碼 l“發(fā)貨確認”窗體代碼 l“供應商”窗體代碼 l“進貨資料查詢”窗體代碼 l“密碼管理”窗體代碼 12.7.1 公用模塊 l建立公用模塊 第一步:我們首先要新建一個“模塊”。 單擊【數據庫工具】選項卡下的visual basic按鈕,進入vba編輯器,如下圖所示。 第二步:選擇【插入】菜單,選擇【模塊】 命令,即可增加一個新模塊,如下圖所示。 12.7.1 公用模塊 l建立公用模塊 第三步:新建模塊以后,vba編輯器界面如下圖 所示。 第四步:我們在新增加的模塊里,增加如下代碼。 option compare database op

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

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

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

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

45、n_ok_click 錯誤處理 判斷用戶名是否為空 if isnull(txt_name) then msgbox 請輸入用戶名!, 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 刪除記錄出錯, vbcritical end if end ifrs.close set rs = nothing end sub 刪除記錄后,要更新庫存數量 private sub btn_del_click() dim rs as new adodb.recordset dim str_temp as string str_temp = select * from 庫存 where 產品編號 = & 產品編號 & rs.op

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

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

49、事件”過程。 相關代碼如下。 option compare database 確認按鈕代碼 private sub brn_ok_click() on error goto err_btn_ok_click 用這個數組str(10)來保存訂單記錄中的數據 dim str(10) as string dim mrc as new adodb.recordset if isnull(txt_no) then msgbox 請輸入要確認的訂單編號!, vbcritical, 提示 txt_no.setfocus end if if isnull(combo1) then msgbox 請輸入支付方式

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

51、al, 提示 txt_name.setfocus end if if isnull(txt_date) then msgbox 請輸入送貨日期!, vbcritical, 提示 txt_date.setfocus end if dim str_temp as string 訂單編號是整形,不需要單引號 str_temp = select * from 訂單 where 訂單編號= & txt_no & set mrc = exesql(str_temp) if mrc.eof then msgbox 沒有該訂單!, vbcritical, 提示 else 記錄查找到的訂單信息 str(0) =

52、 mrc(訂單編號) str(1) = mrc(客戶編號) str(2) = mrc(產品編號) str(3) = mrc(供應商編號) str(4) = mrc(銷售單價) str(5) = mrc(訂購數量) str(6) = mrc(訂單金額) str(7) = mrc(預定時間) str(8) = mrc(訂單時間) mrc.close set mrc = nothing end if dim rs as new adodb.recordset rs.open 訂單處理明細, currentproject.connection, adopendynamic, adlockoptimis

53、tic rs.addnew rs(訂單編號) = str(0) rs(客戶編號) = str(1) rs(產品編號) = str(2) rs(供應商編號) = str(3) rs(預定時間) = str(7) rs(發(fā)貨時間) = txt_date rs(銷售單價) = str(4) rs(訂購數量) = str(5) rs(訂單金額) = str(6) rs(付款方式) = combo1 rs(付款時間) = txt_paydate rs(發(fā)貨地址) = txt_address rs(發(fā)貨人) = txt_name rs(狀態(tài)) = 已處理 rs.update rs.close set rs

54、 = nothing msgbox 成功添加了該信息! 12.7.5 “發(fā)貨確認”窗體代碼 更新庫存表中的數量 dim rs2 as new adodb.recordset 查找?guī)齑姹碇械挠涗?str_temp = select * from 庫存 where 產品編號 = & 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 成功更新了庫存! 錯誤處理 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 “供應商”窗體代碼 l 已知我們設計的“供應商”窗體如下圖所示。 12.7.6 “供應商”窗體代碼 窗體中各個按鈕的代碼如下。 “銷售查詢”按鈕代碼如下。 private sub btn_query_click() if isn

57、ull(供應商編號) or isnull(txt_date1) or isnull(txt_date2) then msgbox 您必須輸入供應商編號、開始時間和截止時間。 txt_date1.setfocus else if (txt_date1 txt_date2) then msgbox 結束時間必須大于開始時間。 焦點移到第一個時間上 txt_date1.setfocus else 打開供應商銷售的報表 docmd.openreport 供應商報表, acviewpreview, , , acwindownormal end if end if end sub “返回”按鈕代碼如下。

58、private sub btn_return_click() docmd.close docmd.openform 切換面板 end sub 添加代碼以后的【代碼】窗體如下圖 所示。 12.7.7 “進貨資料查詢”窗體代碼 l 已知我們設計的“進貨資料查詢”窗體如下圖所示。 12.7.7 “進貨資料查詢”窗體代碼 “清除”按鈕添加的代碼如下。 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)計總數 me.進貨資料查詢子窗體.form.filter = me.進貨資料查詢子窗體.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 & (供應商名稱 like * & me.combo1 & *) and end if if not isnull(me.txt_wuzi) then str = str & (產品名稱 like * & me.txt_wuzi & *) and end if if

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論