窗體對(duì)象功能設(shè)計(jì).ppt
《窗體對(duì)象功能設(shè)計(jì).ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《窗體對(duì)象功能設(shè)計(jì).ppt(46頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第7章 窗體對(duì)象功能設(shè)計(jì),教學(xué)目標(biāo): 通過(guò)本章學(xué)習(xí),使讀者能夠完成“迷你超市業(yè)務(wù)信息管理系統(tǒng)”的窗體對(duì)象功能設(shè)計(jì),主要能力目標(biāo): 能夠掌握VBE的使用方法。 能夠掌握在窗體設(shè)計(jì)視圖中進(jìn)行窗體對(duì)象功能程序設(shè)計(jì)的方法。 工作任務(wù): 上章我們掌握了Access數(shù)據(jù)庫(kù)中窗體對(duì)象的界面設(shè)計(jì)方法,并創(chuàng)建了窗體對(duì)象的界面設(shè)計(jì),本章完成“商品進(jìn)貨數(shù)據(jù)錄入”和“商品銷售錄入”的窗體功能程序的設(shè)計(jì)。,理論知識(shí),一、VBA模塊概述 建立完用戶窗體只是實(shí)現(xiàn)功能的一半,還需要為窗體中的控件編 寫VBA來(lái)真正實(shí)現(xiàn)其功能。VBA(Visual Basic for Applications) 是Microsoft Off
2、ice系列的內(nèi)置編程語(yǔ)言,功能強(qiáng)大,面向?qū)ο?,?其他任何面向?qū)ο蟮木幊陶Z(yǔ)言一樣,VBA里也有對(duì)象、屬性、方法和 事件。 1.對(duì)象:就是代碼和數(shù)據(jù)的組合,可將它看作單元,如表、窗體和文本框等是對(duì)象。每個(gè)對(duì)象由類來(lái)定義。 2.屬性:是指定義了對(duì)象的特性,如大小、顏色、對(duì)象狀態(tài)等。 3.方法:指對(duì)象能執(zhí)行的動(dòng)作,如刷新、獲得焦點(diǎn)等。 4.事件:是一個(gè)對(duì)象可以識(shí)別的動(dòng)作,如鼠標(biāo)單擊或按下某鍵等,并且可以寫某些代碼針對(duì)此動(dòng)作來(lái)做出響應(yīng)。,,二、VBA編程基礎(chǔ) 1、VBA代碼的實(shí)現(xiàn)方法 所有VBA代碼都以模塊的方式保存在數(shù)據(jù)庫(kù)里。創(chuàng)建模塊有兩種方 法:(1)作為模塊對(duì)象(2)作為窗體和報(bào)表對(duì)象的一部分
3、 (1)模塊對(duì)象 創(chuàng)建模塊對(duì)象,方法如下: 1)單擊“數(shù)據(jù)庫(kù)”窗口的“模塊”按鈕可查看模塊對(duì)象; 2)單擊“新建”按鈕創(chuàng)建一個(gè)新模塊; 3)單擊完“新建”按鈕后,彈出Microsoft Visual Basic代碼設(shè)計(jì)窗口,在代碼窗口中輸入代碼,以實(shí)現(xiàn)模塊的功能。 (2)窗體和報(bào)表模塊 在窗體和報(bào)表類模塊中,可以創(chuàng)建特別命名的事件過(guò)程來(lái)響應(yīng)事件??梢酝ㄟ^(guò)在“設(shè)計(jì)”視圖中打開(kāi)窗體或報(bào)表,從“視圖”菜單中選擇“代碼”來(lái)編輯該窗體或報(bào)表的模塊。,,2、注釋語(yǔ)句 注釋語(yǔ)句用于對(duì)程序或語(yǔ)句的功能給出解釋和說(shuō)明。在VBA程序中,注 釋內(nèi)容被顯示成綠色文本??梢酝ㄟ^(guò)兩種方式添加注釋: 使用Re
4、m語(yǔ)句,格式如下: Rem 注釋語(yǔ)句 注釋語(yǔ)句可以放在其他語(yǔ)句之后,但需要用冒號(hào)隔開(kāi)。 使用“”,格式如下: 注釋語(yǔ)句 注釋語(yǔ)句可以直接放在其他語(yǔ)句之后而無(wú)需分隔符。 3、連寫和換行 程序語(yǔ)句一般一句一行,但有時(shí)候可能需要在一行中寫幾句代碼,這時(shí)需要用到“:”來(lái)分開(kāi)不同用途的幾個(gè)語(yǔ)句。 有時(shí)一句代碼太,書寫起來(lái)不方便,看上去也不美觀,希望將一句代碼分開(kāi)寫成幾行,這時(shí)需要用到空格加下劃線“_”。,,4、賦值語(yǔ)句 賦值語(yǔ)句指定一個(gè)值或表達(dá)式給變量。賦值語(yǔ)句通常會(huì)包含一個(gè)等號(hào)“=” 語(yǔ)法格式如下: Let = Set= Let語(yǔ)句賦值,對(duì)應(yīng)的數(shù)據(jù)類型為字符、數(shù)值
5、類型等,Let通??梢允÷? Set語(yǔ)句賦值,對(duì)應(yīng)的是復(fù)雜數(shù)據(jù)類型,可以是用戶自定義的數(shù)據(jù)類型或?qū)ο箢愋偷臄?shù)據(jù)。 5、常量和變量 (1)聲明常量和變量 常量是指在程序過(guò)程中始終固定不變的量。VBA的常量包括數(shù)值常量、 字符常量、日期常量、符號(hào)常量、固有常量和系統(tǒng)定義常量等。 變量是指在程序運(yùn)行過(guò)程期間取值可以變化的量,除了使用VBA代碼來(lái) 操作各種打開(kāi)的窗體或報(bào)表的控件外,還可以在VBA代碼中聲明和使用 指定的變量來(lái)臨時(shí)存儲(chǔ)值、計(jì)算結(jié)果或操作數(shù)據(jù)庫(kù)中的任意對(duì)象。,,(2)常量和變量的作用域 常量或變量的作用域決定了這個(gè)常量或變量是只能在一個(gè)過(guò)程中使用,還是在一個(gè)模塊中所有過(guò)程中使用,還是可
6、以在數(shù)據(jù)庫(kù)的所有過(guò)程中使用。如果希望一個(gè)變量能被數(shù)據(jù)庫(kù)中所有過(guò)程(即公共作用域)所訪問(wèn),需要在聲明時(shí)加上關(guān)鍵字Public。也可以用關(guān)鍵字Private將一個(gè)變量的適用范圍顯式聲明為模塊內(nèi)(私有作用域)。 6、數(shù)據(jù)類型 VBA一般用變量保存計(jì)算的結(jié)果、進(jìn)行屬性的設(shè)置、指定方法的 參數(shù)以及在過(guò)程間傳遞數(shù)值。為了提高執(zhí)行效率,VBA為變量定義了 一個(gè)數(shù)據(jù)類型的集合,VBA支持多種數(shù)據(jù)類型,下表列出了VBA程序 中基本數(shù)據(jù)類型,以及它所占用的存儲(chǔ)空間、取值范圍和默認(rèn)值。,,,7、流程控制語(yǔ)句 8、過(guò)程和函數(shù) 過(guò)程和函數(shù)就是能執(zhí)行特定功能的語(yǔ)句塊。過(guò)程是用VBA語(yǔ)言的聲明和語(yǔ)句組成的單元,作為一個(gè)
7、命名單位的程序段,它可以包含一系列執(zhí)行操作或計(jì)算值的語(yǔ)句和方法。函數(shù)也是過(guò)程,不過(guò)它是一種特殊的、能夠返回值的Function過(guò)程。能否返回值,也是過(guò)程和函數(shù)之間最大的區(qū)別。 過(guò)程在一個(gè)地方寫了一個(gè)功能模塊之后,如果要在其他地方實(shí)現(xiàn)同樣的功能,不必將該代碼重新寫一遍,只要直接調(diào)用就行。當(dāng)功能模塊有錯(cuò)誤時(shí),不必在整個(gè)應(yīng)用程序中查找錯(cuò)誤,只需要改正過(guò)程和函數(shù)調(diào)試成功即可。,,9、事件過(guò)程 事件過(guò)程用于響應(yīng)由用戶或系統(tǒng)引發(fā)的事件。當(dāng)事件被觸發(fā)時(shí),應(yīng)用程序啟動(dòng)相應(yīng)的模塊處理當(dāng)前事件,然后等待下一個(gè)事件的發(fā)生。 在Access系統(tǒng)中,不同對(duì)象可以觸發(fā)的事件不同,主要有鍵盤事件、鼠標(biāo)事件、窗口事件、對(duì)象
8、事件和操作事件等。 10、事件過(guò)程編寫格式 例如:“單擊”事件 當(dāng)在某對(duì)象上按下并釋放鼠標(biāo)左鍵時(shí)將觸發(fā)該事件,其事件處理程序的定義格式如下: Private Sub 對(duì)象名_Click() 過(guò)程代碼 End Sub,7.1 窗體的常用控件與編程設(shè)計(jì),7.1.1“商品進(jìn)貨數(shù)據(jù)錄入”窗體頁(yè)眉功能設(shè)計(jì) 7.1.2“商品進(jìn)貨數(shù)據(jù)錄入”窗體頁(yè)腳功能設(shè)計(jì) 7.1.3“商品進(jìn)貨數(shù)據(jù)錄入”窗體主體功能設(shè)計(jì) 7.1.4“銷售數(shù)據(jù)錄入”窗體功能設(shè)計(jì) 7.1.5“銷售數(shù)據(jù)錄入”窗體頁(yè)眉功能設(shè)計(jì) 7.1.6“銷售數(shù)據(jù)錄入”窗體主體功能設(shè)計(jì) 7.1.7“銷售數(shù)據(jù)錄入”窗體頁(yè)腳功能設(shè)計(jì),7.1.1“商品進(jìn)貨數(shù)
9、據(jù)錄入”窗體頁(yè)眉功能設(shè)計(jì),,7.1.1“商品進(jìn)貨數(shù)據(jù)錄入”窗體頁(yè)眉功能設(shè)計(jì),在頁(yè)眉中有“進(jìn)貨貨號(hào)”文本框、“進(jìn)貨日期”文本框、“進(jìn)貨名稱”文本框、“規(guī) 格”文本框、“計(jì)量單位”文本框、“進(jìn)貨單位”文本框、“進(jìn)貨數(shù)量”文本框, “收貨人”組合框和“供貨商”組合框。 功能要求: 當(dāng)用戶在“進(jìn)貨貨號(hào)”文本框輸入了貨號(hào)后,系統(tǒng)會(huì)在“庫(kù)存數(shù)據(jù)記錄”表中查找該貨號(hào)的商品,如果找不到,說(shuō)明用戶輸入了一個(gè)新的貨號(hào),此時(shí)會(huì)彈出一個(gè)對(duì)話框提示,并在“庫(kù)存數(shù)據(jù)記錄”表中插入一個(gè)新記錄,同時(shí)會(huì)將新的貨號(hào)保存在新記錄中; 如果找到了該貨號(hào)的商品,則在窗體頁(yè)眉中的控件除了“收貨日期”、“收貨人”組合框和“供貨商”組合框以
10、外,其余的文本框中會(huì)顯示出該商品的相應(yīng)信息。這樣既防止用戶貨號(hào)輸入錯(cuò)誤,也能減少用戶輸入信息的工作量。當(dāng)然各個(gè)文本框的內(nèi)容是可以被用戶修改的。 “收貨日期”會(huì)自動(dòng)讀取系統(tǒng)當(dāng)前的日期?!笆肇浫恕苯M合框和“供貨商”組合框需要用戶自己選擇其內(nèi)容,如果不選擇,那么在最后保存數(shù)據(jù)時(shí)會(huì)有提示。,演示操作步驟,代碼講解:,Private Sub Text12_LostFocus() 當(dāng)“Text12”控件失去焦點(diǎn)時(shí)將執(zhí)行的代碼 Me!貨號(hào).SetFocus 本窗體中“貸號(hào)”控件獲得焦點(diǎn) If Me!Text12 = Then 如果“Text12”控件的值為空字符串值,則執(zhí)
11、行 MsgBox (請(qǐng)輸入進(jìn)貨貨號(hào)!) 彈出一個(gè)對(duì)話框,給出提示:請(qǐng)輸入進(jìn)貨貨號(hào)! Me!Text12.SetFocus “Text12”控件獲得焦點(diǎn),讓用戶重新輸入進(jìn)貨貨號(hào) Else 否則(即用戶已經(jīng)輸入了貨號(hào)) DoCmd.FindRecord Me!Text12, , True, , True 查找數(shù)據(jù)源中第一個(gè)當(dāng)前字段(貨號(hào)) 為 “Text12”控件的值的記錄 If Me!貨號(hào) Me!Text12 Then 如果貨號(hào)字段的值不等于“Text12”控 件的值(即沒(méi)有找到記錄) If MsgBox(增加一種新商品?
12、, vbOKCancel, 請(qǐng)確定!) = vbOK Then 彈出一個(gè) 提示對(duì)話框“增加一種新商品?”,并要求用戶判斷是否 確定。如果用戶點(diǎn)擊了“請(qǐng)確定”按鈕,則執(zhí)行下面語(yǔ)句 DoCmd.GoToRecord , , acNewRec 增加一條新記錄,即增加一個(gè)新的貨物,代碼講解:,Me!貨號(hào) = Me!Text12 新記錄中,貨號(hào)字段的值為“Text12”控件的值 Me!庫(kù)存數(shù)量 = 0 庫(kù)存數(shù)據(jù)字段的值為“0” Else 否則(用戶選擇取消,不增加一個(gè)新的貨物) Exit Sub 退出程序,即不增加新記錄
13、 End If 結(jié)束IF語(yǔ)句 End If 結(jié)束IF語(yǔ)句。此時(shí)狀態(tài)為貨號(hào)字段的值等于“Text12”控件的值(即找到記錄) Me!Text20 = Me!貨名 將記錄中貨名字段的值賦值給“Text20”控件 Me!Text22 = Me!規(guī)格 將記錄中規(guī)格字段的值賦值給“Text22”控件 Me!Text24 = Me!計(jì)量單位 將記錄中計(jì)量單位字段的值賦值給“Text24”控件 Me!Text26 = Me!進(jìn)貨單價(jià) 將記錄中進(jìn)貨單價(jià)字段的值賦值給“Text26”控件 Me!Text28 = 0 將“0”賦值給“Te
14、xt28”控件(進(jìn)貨數(shù)量) Me.Refresh 刷新本窗體,刷新后“Text20”等控件的值就會(huì)顯示出來(lái) End If 結(jié)束IF語(yǔ)句 End Sub 結(jié)束程序,,本窗體所有代碼中涉及到的各控件名稱列于下表(若讀者所建各 控件名稱不同,請(qǐng)用正確的控件名稱替換上述各控件名稱):,表“商品進(jìn)貨數(shù)據(jù)錄入”窗體各控件名稱列表,7.1.2“商品進(jìn)貨數(shù)據(jù)錄入”窗體頁(yè)腳功能設(shè)計(jì),“保存記錄”按鈕中我們需要添加代碼。 Private Sub Command35_Click() On Error GoTo Err_Command35_Cl
15、ick If Me!Text28.Value = 0 Then MsgBox (請(qǐng)檢查您的數(shù)據(jù)!) Else If MsgBox(確定嗎?, vbOKCancel, 請(qǐng)確定!) = vbOK Then Me!貨名 = Me!Text20 Me!規(guī)格 = Me!text22 Me!計(jì)量單位 = Me!text24 Me!庫(kù)存數(shù)量 = Me!庫(kù)存數(shù)量 + Me!Text28 Me!進(jìn)貨單價(jià) = Me!Text26 Me!收貨人 = Me!Combo16 Me!供貨商 = Me!Combo18 Me!進(jìn)貨日期 = Me!Text14,演示操作步驟,代碼講解:,DoCm
16、d.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 Me.Refresh Else Exit Sub End If End If Exit_Command35_Click: Exit Sub Err_Command35_Click: MsgBox Err.Description Resume Exit_Command35_Click End Sub,7.1.3“商品進(jìn)貨數(shù)據(jù)錄入”窗體主體功能設(shè)計(jì),為了數(shù)據(jù)的安全性,設(shè)定主體中各個(gè)控件為只讀。選定主體中的各個(gè)控件,單擊工具欄的“屬性”按鈕,進(jìn)入“數(shù)
17、據(jù)”選項(xiàng)卡,將“是否鎖定”的屬性值改為“是”。 注意:因?yàn)橹黧w中的各個(gè)控件是與數(shù)據(jù)庫(kù)綁定的,用戶在修改了控件中的值以后,數(shù)據(jù)庫(kù)中相應(yīng)記錄的值也會(huì)隨之更改。這樣是極不安全的。我們的目的是用戶只能通過(guò)在窗體頁(yè)眉中輸入數(shù)據(jù),并經(jīng)過(guò)“保存記錄”按鈕進(jìn)行保存之后,才能更改數(shù)據(jù)庫(kù)中的數(shù)據(jù)。,7.1.4“銷售數(shù)據(jù)錄入”窗體功能設(shè)計(jì),,,功能講解:,必要功能: 1它能夠?qū)崿F(xiàn)銷售數(shù)據(jù)的錄入,因此它應(yīng)當(dāng)提供用戶對(duì)商品“銷售數(shù)據(jù)記錄”表中所有字段數(shù)據(jù)的錄入; 2在用戶輸入一種銷售商品的信息之后,系統(tǒng)應(yīng)當(dāng)對(duì)該信息進(jìn)行檢查,如果在“柜存數(shù)據(jù)記錄”表中沒(méi)有該種商品,則需給出錯(cuò)誤提示; 3在用戶輸入過(guò)程中應(yīng)對(duì)輸入信息的合法
18、性作出判斷; 4在向“銷售數(shù)據(jù)記錄”表中添加記錄的同時(shí),應(yīng)在“柜存數(shù)據(jù)記錄”表中的“柜存數(shù)量”字段值上減去相應(yīng)的銷售數(shù)量值。,功能講解:,輔助功能: 1為簡(jiǎn)化用戶輸入,在打開(kāi)窗體時(shí)即要求用戶在“商品貨號(hào)”組合框中進(jìn)行選擇,“商品貨號(hào)”組合框數(shù)據(jù)源為“柜存數(shù)據(jù)記錄”表中的貨號(hào)字段;用戶選擇后,系統(tǒng)會(huì)自動(dòng)從“柜存數(shù)據(jù)記錄”表中讀取該商品的 “商品名稱”、“規(guī)格”、“計(jì)量單位”和“銷售單價(jià)”等信息并顯示(這些信息為只讀顯示);“銷售員”和“銷售數(shù)量”則要求用戶必須手工輸入; 2為保證用戶輸入的正確性,在用戶輸入完一件商品的銷售信息后,單擊“確認(rèn)”按鈕,信息會(huì)添加到窗體中間的列表中,用戶可進(jìn)行檢查;用
19、戶可以輸入多條銷售信息;在全部信息輸入完成后單擊“現(xiàn)金收訖”按鈕,信息才會(huì)被寫入“銷售數(shù)據(jù)記錄”表中; 3窗體中增加一個(gè)“柜存信息”按鈕,以方便用戶查詢商品相關(guān)的柜存數(shù)據(jù); 4在窗體下方有兩個(gè)文本框,用于顯示本次用戶錄入的商品銷售數(shù)據(jù)之和,即本次錄入的商品銷售數(shù)量和銷售總金額。,操作演示及代碼解讀:,,表 “銷售數(shù)據(jù)錄入”窗體各控件名稱列表,7.1.5“銷售數(shù)據(jù)錄入”窗體頁(yè)眉功能設(shè)計(jì),代碼講解: If IsNull(Me!Combo3) Then 如果Combo3組合框值為空,即用戶未選擇商品貨號(hào) MsgBox (請(qǐng)選擇商品貨號(hào)!) 彈出警告窗口“請(qǐng)選擇商品貨號(hào)!” Me!Combo
20、3.SetFocus Combo3組合框獲得焦點(diǎn)以便用戶選擇商品貨號(hào) Else Me!Text5.ControlSource = 貨名 將表單中Text5文本框的ControlSource屬性值 設(shè)為“貨名”,這樣Text5文本框便與貨名字段綁定了 Me!text7.ControlSource = 規(guī)格 Me!Text9.ControlSource = 計(jì)量單位 Me!Text11.ControlSource = 銷售單價(jià) Me!Text19.SetFocus Text19文本框獲得焦點(diǎn)以便用戶選擇銷售員 DoCmd.FindRecord Me!Combo3, , True,
21、, True 查找數(shù)據(jù)源中第一個(gè)當(dāng)前字段 (貨號(hào))等于“Combo3”控件的值的記錄 Me.Refresh Me!Combo15.SetFocus End If,演示操作步驟,更新銷售記錄:,If IsNull(Me!Combo15) Then MsgBox (請(qǐng)選擇商品貨號(hào)!) Me!Combo15.SetFocus Else Me!Text17.SetFocus End If 在“事件”選項(xiàng)卡中的“不在列表中”項(xiàng)中選擇“代碼生成器”,輸入以下代碼: Response = acDataErrContinue MsgBox (請(qǐng)選擇正確的售貨員!),確認(rèn)按鈕代碼講解:,If IsNu
22、ll(Me!Text17) Then 一步如果控件Text17的值為空,即用戶未輸入銷售數(shù)量 Me!Text17.SetFocus MsgBox (請(qǐng)輸入銷售數(shù)量!) Else If Me!Text17 = 0 Then 如果控件Text17的值為0,即用戶輸入的銷售數(shù)量非法 Me!Text17.SetFocus MsgBox (銷售數(shù)量輸入錯(cuò)誤!) Else If Me!Text17 - Me!text20 0 Then 如果控件Text17的值大于控件Text20的值 Me!Text17.SetFocus MsgBox (您輸入的銷售數(shù)量超過(guò)了本商品的柜存數(shù)量!) El
23、se If Me!Text17 < 0 Then 如果控件Text17的值小于0,由于主體中子窗體內(nèi)的臨 時(shí)表禁用戶進(jìn)行刪除操作,所以用戶可輸入負(fù)數(shù)來(lái)對(duì)沖錯(cuò)誤的銷售記錄 If MsgBox(您輸入的銷售數(shù)量是負(fù)值! ”。 設(shè)置窗體主體中所有的文本框控件的屬性對(duì)話框中“數(shù)據(jù)”選項(xiàng)卡內(nèi)“是否鎖定”屬性值為“是”。 打開(kāi)窗體頁(yè)腳中的Text28文本框的屬性對(duì)話框,設(shè)置“數(shù)據(jù)”選項(xiàng)卡中“控件來(lái)源”屬性值為“=Sum(銷售記錄臨時(shí)表!銷售數(shù)量)”;打開(kāi) Text29文本框的屬性對(duì)話框,設(shè)置“數(shù)據(jù)”選項(xiàng)卡中“控件來(lái)源”屬性值為“=Sum(銷售記錄臨時(shí)表!銷售數(shù)量*銷售記錄臨時(shí)表!銷售單價(jià))”,,P
24、rivate Sub Command26_Click() On Error GoTo Err_Command26_Click DoCmd.SetWarnings False DoCmd.OpenQuery 銷售記錄臨時(shí)表刪除查詢, acViewNormal, acReadOnly DoCmd.SetWarnings True DoCmd.Close Exit_Command26_Click: Exit Sub Err_Command26_Click: MsgBox Err.Description Resume Exit_Command26_Click End Sub,,4將“銷售
25、數(shù)據(jù)記錄查詢子窗體”添加到“銷售數(shù)據(jù)錄入”窗體的主體中。設(shè)置子窗體屬性,將“數(shù)據(jù)”選項(xiàng)卡中的“允許刪除”項(xiàng)設(shè)置為“否”。 注意:將主體中各控件設(shè)為鎖定,而子窗體設(shè)為不允許刪除,是為了防止用戶直接修改其數(shù)據(jù)從而造成銷售數(shù)據(jù)錄入時(shí)的混亂。,7.1.7“銷售數(shù)據(jù)錄入”窗體頁(yè)腳功能設(shè)計(jì),窗體頁(yè)腳中有兩個(gè)文本框控件和三個(gè)按鈕控件。操作步驟(包含準(zhǔn)備工作)如下: 1創(chuàng)建“銷售記錄臨時(shí)表追加查詢”,其設(shè)計(jì)視圖如圖所示。其數(shù)據(jù)源為“銷售記錄臨時(shí)表”,追加的目的表為“銷售數(shù)據(jù)記錄”表。查詢執(zhí)行后將把“銷售記錄臨時(shí)表”中的數(shù)據(jù)添加到“銷售數(shù)據(jù)記錄”表中。,“銷售記錄臨時(shí)表追加查詢”設(shè)計(jì)視圖,,2創(chuàng)建“銷售記錄臨時(shí)
26、表刪除查詢”,其設(shè)計(jì)視圖如圖所示。查詢執(zhí)行后將刪除“銷售記錄臨時(shí)表”中所有的記錄。,,“銷售記錄臨時(shí)表刪除查詢”設(shè)計(jì)視圖,,3設(shè)置好相應(yīng)地大小及位置。 4打開(kāi)Command25(現(xiàn)金收訖)按鈕控件的屬性對(duì)話框,設(shè)置“事件”選項(xiàng)卡中“單擊”屬性,打開(kāi)代碼生成器,輸入以下代碼(右側(cè)斜體文字為代碼的說(shuō)明,不可以輸入): Private Sub Command25_Click() On Error GoTo Err_Command25_Click If MsgBox(您確定要將這些銷售數(shù)據(jù)輸入銷售記錄表中嗎?, vbOKCancel, 請(qǐng)確認(rèn)) = vbOK Then 彈出對(duì)話框要求用戶
27、確認(rèn)現(xiàn)金已收訖,如果用戶確認(rèn),則 DoCmd.SetWarnings False 屏蔽系統(tǒng)提示信息 Me!Text22 = 0 文本框值歸零 Me!Text24 = 0,,DoCmd.OpenQuery 銷售記錄臨時(shí)表追加查詢, acViewNormal, acReadOnly 執(zhí)行“銷售 記錄臨時(shí)表追加查詢” DoCmd.OpenQuery 銷售記錄臨時(shí)表刪除查詢, acViewNormal, acReadOnly 執(zhí)行“銷售 記錄臨時(shí)表刪除查詢” DoCmd.SetWarnings True 打開(kāi)系統(tǒng)提示信息 Me
28、!Text5.ControlSource = 銷售記錄添加到銷售數(shù)據(jù)記錄表中后,窗體各控件數(shù)值清空 Me!text7.ControlSource = Me!Text9.ControlSource = Me!Text11.ControlSource = Me!Combo3 = Me!Combo15 = Me!Text17 = Me!Combo3.SetFocus Me.Refresh 刷新表單 Else 如果用戶選擇了取消,則,,Me!Combo3.SetFocus Combo3控件獲得焦點(diǎn),用戶繼續(xù)輸入銷售數(shù)據(jù) End I
29、f Exit_Command25_Click: Exit Sub Err_Command25_Click: MsgBox Err.Description Resume Exit_Command25_Click End Sub 5打開(kāi)Command26(退出)按鈕控件的屬性對(duì)話框,設(shè)置“事件”選項(xiàng)卡中“單擊”屬性,打開(kāi)代碼生成器,輸入以下代碼:,,6打開(kāi)柜存信息按鈕控件的屬性對(duì)話框,設(shè)置“事件”選項(xiàng)卡中“單擊”屬性,使用宏來(lái)打開(kāi)一個(gè)窗體。在“單擊”屬性右側(cè)的文本框內(nèi)單擊后,選擇“宏生成器”,此時(shí)會(huì)打開(kāi)宏生成器窗口。 在第一行中的“操作”列中選擇MsgBox,在下方的“消息”中輸入“進(jìn)入柜
30、存記錄查詢”,在“標(biāo)題”中輸入“柜存信息”,為加強(qiáng)程序的可讀性,在“注釋”列中輸入“給出進(jìn)入柜存數(shù)據(jù)查詢的提示”。 在第二行中的“操作”列中選擇OpenForm,在下方的“窗體名稱”中選擇“商品柜存數(shù)據(jù)查詢”(此查詢應(yīng)事先做好),在“數(shù)據(jù)模式”中選擇“只讀”,在“注釋”列中輸入“打開(kāi)商品柜存數(shù)據(jù)查詢窗體”。完成后如圖7.11所示:,,,,完成后的宏生成器窗口,7.2 窗體的修飾,7.2.1安排控件的空間布局 7.2.2 修改控件外觀 7.2.3 改善窗體的外觀,7.2.1安排控件的空間布局,在設(shè)計(jì)窗體時(shí),當(dāng)拖動(dòng)字段到窗體上使其成為窗體的控件時(shí),是不大可能精確地控制其放置位置、字段大小的。這就
31、需要我們修改各控件的大小、間距以及它們的排列方式。 在“窗體對(duì)象集合”中新建一個(gè)窗體,并在其中新建一些控件對(duì)象。 操作方法如下: 1.選取控件 在窗體的“設(shè)計(jì)視圖”中,單擊控件中的任何位置,控件就會(huì)被選取。在“設(shè)計(jì)視圖”中,以任何一點(diǎn)開(kāi)始,用鼠標(biāo)左鍵拖出一個(gè)矩形區(qū),則被矩形框碰到的所有控件都將被選中。如果要選擇的多個(gè)控件不相鄰無(wú)法通過(guò)拖動(dòng)鼠標(biāo)來(lái)同時(shí)選擇,則可按下Shift鍵,然后逐一單擊要選擇的每一個(gè)控件。,,2.移動(dòng)控件 很多控件都是由兩個(gè)部分組成的,例如文本框控件,由標(biāo)簽和文本框組成。 如果要同時(shí)移動(dòng)控件和附加標(biāo)簽,應(yīng)在選取控件之后,將鼠標(biāo)移動(dòng)到控件和附加標(biāo)簽的邊框(不是移動(dòng)點(diǎn))上,
32、鼠標(biāo)將會(huì)變成手掌圖標(biāo)。按住鼠標(biāo)左鍵不放,此時(shí)就可以同時(shí)拖動(dòng)標(biāo)簽和文本框了。 如果要分別移動(dòng)控件的標(biāo)簽和文本框,則在選取控件之后,將鼠標(biāo)移到其標(biāo)簽或文本框的左上角的最大的移動(dòng)控點(diǎn)上。當(dāng)鼠標(biāo)變成手指圖標(biāo)時(shí),就可以單獨(dú)拖動(dòng)文本框或標(biāo)簽。,,3.縮放控件 選取要調(diào)整大小的控件,將鼠標(biāo)指向控件邊緣的七個(gè)較小的控點(diǎn)上,當(dāng)它變成某一方向的雙向箭頭時(shí),按住鼠標(biāo),拖動(dòng)控點(diǎn),就可以調(diào)整控件在此方向上的大小。 如果確定精確地調(diào)整一個(gè)控件的大小,可以在這個(gè)控件的屬性中修改它的寬度和高度值即可,數(shù)值以厘米為單位。如圖所示為某個(gè)控件的屬性對(duì)話框。 4.對(duì)齊控件 在Access的“格式”菜單中有“對(duì)齊”、“大小”、“
33、水平間距”和“垂直間距”等命令,它們是用來(lái)排列所選取的控件的。如圖7.14所示。 首先選取要排列的各控件,再執(zhí)行“格式”菜單中的各個(gè)命令。,7.2.2 修改控件外觀,排列完控件的布局,下面我們來(lái)介紹修改控件外觀方法。 1.修改標(biāo)簽屬性 單擊選取某個(gè)標(biāo)簽,選取標(biāo)簽后的工具欄 在這里可以修改標(biāo)簽中文字的字體,字號(hào),樣式,對(duì)齊方式,顏色,下劃線等屬性;以及標(biāo)簽的邊框線顏色,邊框樣式,邊框特殊效果等屬性。 2.修改文本框控件的背景樣式屬性 選取一個(gè)文本框控件,單擊工具欄上的“屬性”按鈕,在“屬性”對(duì)話框中單擊“背景樣式”屬性下拉列表框,我們可以看到其中有“常規(guī)”,“透明”兩個(gè)選擇項(xiàng)。還可以設(shè)定其背景色,特殊效果,邊框樣式,邊框線顏色,邊框線寬度等屬性的值。,7.2.3 改善窗體的外觀,為了美化窗體,我們可以為窗體加上直線或矩形,添加輔助圖片、日期;還可以給窗體添加背景圖片;并可以對(duì)滾動(dòng)條、記錄選定器、導(dǎo)航按鈕及分隔線等進(jìn)行設(shè)置;除此之外,還可以將窗體運(yùn)行后標(biāo)題欄上的“最大化”、“最小化”、“關(guān)閉”按鈕去除,并設(shè)定窗體邊框不可調(diào)整等等。,演示操作步驟,
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第7課時(shí)圖形的位置練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)2圖形與幾何第1課時(shí)圖形的認(rèn)識(shí)與測(cè)量1平面圖形的認(rèn)識(shí)練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)1數(shù)與代數(shù)第10課時(shí)比和比例2作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)4比例1比例的意義和基本性質(zhì)第3課時(shí)解比例練習(xí)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第7課時(shí)圓柱的體積3作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)3圓柱與圓錐1圓柱第1節(jié)圓柱的認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)2百分?jǐn)?shù)(二)第1節(jié)折扣和成數(shù)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)1負(fù)數(shù)第1課時(shí)負(fù)數(shù)的初步認(rèn)識(shí)作業(yè)課件新人教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末復(fù)習(xí)考前模擬期末模擬訓(xùn)練二作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)期末豐收?qǐng)@作業(yè)課件蘇教版
- 2023年六年級(jí)數(shù)學(xué)上冊(cè)易錯(cuò)清單十二課件新人教版
- 標(biāo)準(zhǔn)工時(shí)講義
- 2021年一年級(jí)語(yǔ)文上冊(cè)第六單元知識(shí)要點(diǎn)習(xí)題課件新人教版
- 2022春一年級(jí)語(yǔ)文下冊(cè)課文5識(shí)字測(cè)評(píng)習(xí)題課件新人教版
- 2023年六年級(jí)數(shù)學(xué)下冊(cè)6整理和復(fù)習(xí)4數(shù)學(xué)思考第1課時(shí)數(shù)學(xué)思考1練習(xí)課件新人教版