ACCESS程序設(shè)計基礎(chǔ)知識_第1頁
ACCESS程序設(shè)計基礎(chǔ)知識_第2頁
ACCESS程序設(shè)計基礎(chǔ)知識_第3頁
ACCESS程序設(shè)計基礎(chǔ)知識_第4頁
ACCESS程序設(shè)計基礎(chǔ)知識_第5頁
已閱讀5頁,還剩141頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

會計學(xué)1ACCESS程序設(shè)計基礎(chǔ)知識9.1模塊的基本概念9.1.1模塊的概念和類型模塊是Access系統(tǒng)中的一個重要對象,它提供編寫代碼、調(diào)試代碼、運行代碼、保存代碼的環(huán)境,是代碼的容器。在Access中,模塊類型分為:類模塊:窗體模塊和報表模塊都屬于類模塊,它含有事件過程,在類模塊中可以自定義對象。標準模塊:標準模塊由sub過程和函數(shù)過程組成,存放應(yīng)用程序的通用代碼,供其它模塊調(diào)用第2頁/共146頁第1頁/共146頁9.1.3對象的概念現(xiàn)實生活中的對象access中對象指什么?

access中對象主要指查詢、表、窗體、控件、報表等對象有哪些要素呢?第3頁/共146頁第2頁/共146頁1.對象的屬性在VBA中,每個對象都有屬性,屬性都有屬性值,可通過改變屬性值來改變對象的外觀和性質(zhì)。怎么表示引用一個對象屬性?

forms!窗體名稱!控件名稱.屬性名

reports!報表名稱!控件名稱.屬性名

例如:

forms!教師基本信息!學(xué)歷.caption第4頁/共146頁第3頁/共146頁又怎么設(shè)置的對象的屬性?(1)屬性窗口設(shè)置(2)在程序代碼中利用語句進行設(shè)置,設(shè)置格式:例如:

froms!教師基本信息!Label1.caption=“碩士”

Forms!窗體3!Text1.Value="geweilun"

要在程序代碼中改變窗體的標題怎么寫代碼?

forms!學(xué)生基本信息.caption=“aftvc”

第5頁/共146頁第4頁/共146頁2、對象的事件事件就是對象上所發(fā)生的事情或動作。在VB中當某個對象上觸發(fā)事件時,對象將感知此事件并作出響應(yīng),執(zhí)行事件過程。

事件事件過程(一段代碼)第6頁/共146頁第5頁/共146頁3、對象的方法對象的方法是指對象能完成的操作或?qū)崿F(xiàn)的功能,可直接調(diào)用對象的方法完成某種特定功能。如窗體的Print方法。調(diào)用方法的通用格式:

forms!窗體名稱!控件名稱.方法名第7頁/共146頁第6頁/共146頁變量的作用域和生存期3.9.1變量的作用域變量的作用域:分為過程級、模塊級、全局變量。取決于聲明變量語句的位置和說明詞。過程級變量:聲明位置在過程中,說明詞為Dim和Static。Dim聲明為動態(tài)變量,過程代碼運行結(jié)束,動態(tài)變量獲得的內(nèi)存空間釋放,保存的數(shù)據(jù)消失Static聲明為靜態(tài)變量,過程代碼運行結(jié)束,靜態(tài)變量仍然擁有內(nèi)存空間保存數(shù)據(jù),知道整個程序運行結(jié)束第8頁/共146頁第7頁/共146頁模塊級變量:聲明位置在模塊的頂部,說明詞為Private和Dim,一般用Private。全局變量:位置在標準模塊的頂部,說明詞為Public和Global,一般用Public。第9頁/共146頁第8頁/共146頁數(shù)據(jù)9.3

程序中數(shù)據(jù)類型、常量、變量、運算符和表達式數(shù)據(jù)在程序中的作用?

數(shù)據(jù)是程序的必要組成部分也是程序處理的對象。請舉出一些數(shù)據(jù)的例子數(shù)據(jù)類型可以反映不同數(shù)據(jù)的特點,不同類型的數(shù)據(jù)在程序中怎么表示呢?第10頁/共146頁第9頁/共146頁9.3.1、數(shù)據(jù)類型標準數(shù)據(jù)類型整數(shù):Integer或%

符號表示是整型數(shù)據(jù).長整數(shù):Long或&單精度數(shù):Single或!例:78921.32!-123.9856!0.002345!例:2.3E+7-1.56E-6

第11頁/共146頁第10頁/共146頁4、雙精度數(shù):Double或#例:123456793.48#-54835347.3294#-4.67E+151.23E-115、貨幣型:currency或@

10000000@第12頁/共146頁第11頁/共146頁6、字符串型數(shù)據(jù):

String或$字符串是由多個字符組成,如字母、數(shù)字、漢字和符號等如:“我愛你,中國”、“23123456”

"Iloveyou,China"、"23a"第13頁/共146頁第12頁/共146頁7、日期型:DateDate數(shù)據(jù)類型包括日期和時間兩個值。Date(日期)值是從100年1月1日到9999年12月31日。Time(時間)值是0:00:00到23:59:59。Date數(shù)據(jù)必須用#號括起來,第14頁/共146頁第13頁/共146頁8、布爾型:Blooean布爾型的數(shù)據(jù)只有“true/false”兩個值第15頁/共146頁第14頁/共146頁9、變體型:Variant

Variant是一種特殊的數(shù)據(jù)類型,根據(jù)情況的不同,數(shù)據(jù)類型是可變的,故稱變體型。是一種萬能數(shù)據(jù)類型。第16頁/共146頁第15頁/共146頁用戶自定義數(shù)據(jù)類型問題:假如要定義一個變量或數(shù)組保存下面表中的一條記錄數(shù)據(jù),變量或數(shù)組應(yīng)是什么數(shù)據(jù)類型?第17頁/共146頁第16頁/共146頁用戶自定義數(shù)據(jù)類型,有多個標準數(shù)據(jù)類型組成;定義格式為:Type

新數(shù)據(jù)類型名字段名1as

數(shù)據(jù)類型1

字段名2as

數(shù)據(jù)類型2字段名3as

數(shù)據(jù)類型3

…………Endtype第18頁/共146頁第17頁/共146頁(1)對于學(xué)生表的每行數(shù)據(jù)記錄可定義一個新數(shù)據(jù)類型,命名為students,定義如下:Type

students

no

asstringnameasstringage

asintegersexasstring*1birthasdateEndtype第19頁/共146頁第18頁/共146頁(2)此時可定義一個變量為students數(shù)據(jù)類型,來保存學(xué)生表中某條記錄的數(shù)據(jù),定義為:

dims_infoasstudents(3)怎么給變量中各個字段賦值呢?賦值為:

s_info.no=“G0420774”

s_=“代國志”

s_info.sex=“男”s_info.age=20s_info.birth=#198-11-16#

第20頁/共146頁第19頁/共146頁數(shù)據(jù)庫對象類型:Object第21頁/共146頁第20頁/共146頁9.3.2常量和變量怎么理解程序設(shè)計中用到的常量和變量呢?

常量和變量可看成程序中存放數(shù)據(jù)的容器1、常量在程序執(zhí)行期間其值保持不變的量。常量分為文字常量系統(tǒng)常量和自定義常量(1)系統(tǒng)常量:是系統(tǒng)自帶的常量,已經(jīng)定義好的,我們可以直接使用的常量。第22頁/共146頁第21頁/共146頁(2)自定義常量Const常量名=表達式例如:ConstPI=3.1415926consta=“20”consta=20constaasinteger=20思考:能不能在程序中重新給PI賦值呢?第23頁/共146頁第22頁/共146頁2變量(1)變量是在內(nèi)存中開辟一定字節(jié)的空間來存儲數(shù)據(jù)的,在程序執(zhí)行期間其值可以變化。怎么使用變量呢?(2)變量聲明實質(zhì)是指明變量的名稱和數(shù)據(jù)類型,變量聲明有隱式聲明和顯式聲明。隱式(含)聲明:就是在使用一個變量之前并不專門聲明而直接使用第24頁/共146頁第23頁/共146頁顯式聲明:必須先聲明一個變量才能使用,否則出錯,聲明格式如下:

Dim變量名as變量數(shù)據(jù)類型例1:

dimaasInteger或

dima%

a=2300給變量賦值例2:dimsasstring或

dims$

s=“aftvc”例3:dimn不指名類型默認為變體型第25頁/共146頁第24頁/共146頁注意:

(1)一次性可用dim聲明多個變量,中間用逗號隔開:如:

Dima!,b%,c$或

dimaassingle,basinteger,casstring(2)字符串變量有定長字符串變量與變長字符串變量兩種情況,其中定長字符串變量聲明必須指明變量保存字符串的長度,只能使用說明詞如:

例:

dimaasString*10

聲明一個定長字符串變量

dimaasString聲明一個變長字符串變量第26頁/共146頁第25頁/共146頁(3)還可以用static關(guān)鍵字聲明變量,稱為靜態(tài)變量:

staticaasInteger靜態(tài)變量

dimaasInteger動態(tài)變量(4)變量聲明后如果沒賦值,默認值為什么?第27頁/共146頁第26頁/共146頁3、數(shù)據(jù)類型轉(zhuǎn)換第28頁/共146頁第27頁/共146頁9.3.3數(shù)組數(shù)組的作用?例1:輸入和處理10個學(xué)生的成績怎么辦?67788956996543875477可定義一個一維數(shù)組num(9),num為數(shù)組名,9為下標,表示按0~9的編號來表示10個元素,num(0)為67,num(1)為78,……..num(9)為77第29頁/共146頁第28頁/共146頁567898674534718978899090例2:處理下面表格中的數(shù)據(jù)怎么辦?可定義一個二維數(shù)組num(2,3),num為數(shù)組名,2表示表格中的行數(shù),3表示列數(shù),那么num(0,0)為56,num(0,1)為77,num(0,2)為98,num(0,3)為67,…………….

num(2,3)為90。第30頁/共146頁第29頁/共146頁數(shù)組的基本概念數(shù)組的含義:是用來存儲相同數(shù)據(jù)類型的一批數(shù)據(jù)的有序集合,數(shù)組名稱表示數(shù)組中所有元素的集合,數(shù)組中的每個元素具有唯一的下標,可以用數(shù)組名加下標唯一地識別數(shù)組的一個元素。數(shù)組必須先聲明才能使用。聲明一個數(shù)組就是聲明其數(shù)組名、維數(shù)、數(shù)組的大小及數(shù)據(jù)類型。維數(shù)由什么確定的?數(shù)組的大小由什么確定呢?第31頁/共146頁第30頁/共146頁數(shù)組分類按定義時是否可以確定數(shù)組中元素的個數(shù)和維數(shù)將數(shù)組分為:靜態(tài)數(shù)組動態(tài)數(shù)組第32頁/共146頁第31頁/共146頁

1靜態(tài)數(shù)組聲明格式:

Dim數(shù)組名(大小和維數(shù)定義)As數(shù)據(jù)類型第33頁/共146頁第32頁/共146頁例3:

dimch(9)asstringdimch(0to9)asstring

定義一個字符型數(shù)組,數(shù)組大小為10,元素編號默認從0~9,存儲結(jié)構(gòu)為:

如果想把數(shù)組默認編號0改為1怎么辦?

直接指定下標從1開始。或者在程序前面加:optionbase1Ch(0)Ch(1)Ch(2)Ch(3)Ch(4)Ch(5)Ch(6)Ch(7)Ch(8)Ch(9)第34頁/共146頁第33頁/共146頁例4:

dimA(4,3)asdoubledimA(0to4,0to3)asdouble注意:定義一個二維數(shù)組,存儲結(jié)構(gòu)為:A(0,0)A(0,1)A(0,2)A(0,3)A(1,0)A(1,1)A(1,2)A(1,3)A(2,0)A(2,1)A(2,2)A(2,3)A(3,0)A(3,1)A(3,2)A(3,3)A(4,0)A(4,1)A(4,2)A(4,3)第35頁/共146頁第34頁/共146頁怎樣給數(shù)組中各個元素賦值呢?又怎樣輸出數(shù)組中每個元素的值呢?1、通過循環(huán)語句給一維或二維數(shù)組中的每個元素賦值2、結(jié)合隨機函數(shù)給數(shù)組中的元素賦值例:利用隨機函數(shù)生成10個10到99之間的兩位正整數(shù),保存在數(shù)組中,并求出其中的最大值和最小值第36頁/共146頁第35頁/共146頁例10:給數(shù)組賦值并找出數(shù)組中的最大值OptionBase1PrivateSubtest()Dima(10)AsIntegerDimiAsInteger,maxAsIntegerRandomizeFori=1To10a(i)=Int((99-10+1)*Rnd+10)Printa(i);Next

max=a(1)Fori=2To10Ifmax<a(i)Thenmax=a(i)EndIfNextPrint"themaxnumis:";maxEndsub第37頁/共146頁第36頁/共146頁2、動態(tài)數(shù)組在定義數(shù)組時不明確指明數(shù)組包含元素的個數(shù)和維數(shù),當程序運行時根據(jù)需要再設(shè)定數(shù)組的大小和維數(shù)。定義動態(tài)數(shù)組

dim數(shù)組名()as數(shù)據(jù)類型當程序運行時根據(jù)實際需要,用redim語句再設(shè)定數(shù)組的大小和維數(shù)。格式:

redim數(shù)據(jù)名(大小和維數(shù)定義)as數(shù)據(jù)類型第38頁/共146頁第37頁/共146頁例5:

dimchar()asstring

‘建立模塊級動態(tài)數(shù)組

…………

…………

redimchar(10)asstring

‘設(shè)定動態(tài)的數(shù)組大小和維數(shù)

…………

…………

redimchar(10,5)asstring

‘再設(shè)定動態(tài)的數(shù)組大小和維數(shù)第39頁/共146頁第38頁/共146頁例6:dimA(50,1to20)asstring

則:數(shù)組名?幾維數(shù)組?第一維下標的范圍?第二位下標的范圍?數(shù)組中的數(shù)據(jù)類型?(也叫下標的下界和上界)第40頁/共146頁第39頁/共146頁例7:Dimh(-3To3,2To50)AsVariant則:數(shù)組名?幾位數(shù)組?第一維下標的范圍?第二位下標的范圍?數(shù)組中的數(shù)據(jù)類型?(也叫下標的下界和上界)第41頁/共146頁第40頁/共146頁數(shù)組中用到的幾個函數(shù)Array(x1,x2,x3,………

):給一維數(shù)組中每個元素賦值,但前面定義的數(shù)組必須是動態(tài)數(shù)組且數(shù)組為variant類型Lbound(數(shù)組名,[n]):返回數(shù)組第n維下標的下界Ubound(數(shù)組名,[n]):返回數(shù)組第n維下標的上界第42頁/共146頁第41頁/共146頁例8:dimA(50,1to20)asstring

則:lbound(A,1)=?lbound(A,2)=?ubound(A,1)=?ubound(A,2)=?第43頁/共146頁第42頁/共146頁例9:PrivateSubForm_Click()Dimh(-3To3,2To50)AsVariantForm1.FontSize=20PrintLBound(h,1)PrintLBound(h,2)PrintUBound(h,1)PrintUBound(h,2)EndSub第44頁/共146頁第43頁/共146頁Dimh()AsVariantDimi%h=Array(3,6,8,12,5,11)Debug.Print"一維數(shù)組下標最小值:";LBound(h)Debug.Print"一維數(shù)組下標最大值:";UBound(h)Fori=LBound(h)ToUBound(h)Debug.Printh(i);Next例11:定義動態(tài)數(shù)組并賦值第45頁/共146頁第44頁/共146頁9.3.4運算符和表達式什么是運算符?

算術(shù)運算符字符運算符關(guān)系運算符邏輯運算符哪些可以作為操作數(shù)?什么是表達式?表達式的類型:

算術(shù)表達式字符表達式關(guān)系表達式邏輯表達式第46頁/共146頁第45頁/共146頁1算術(shù)運算符和算術(shù)表達式

1、算術(shù)運算符:^-*/\mod+-

的運算和表達式

2、算術(shù)表達式:3、算術(shù)表達式運算順序:

^-*/

\

mod

+-括號最優(yōu)先,全部由小括號構(gòu)成同級自左向右

第47頁/共146頁第46頁/共146頁2、字符串運算符和字符串表達式字符串運算符:&和+字符串表達式:“+”兩邊連接的必須是字符串表達式,而“&”強制性的將兩邊任何表達式的值連接成一個字符串。例如:1.12&“abc”=12&34=

“12”+”34”=“1234”12+“12”=

12+“ab”=2.a$=“可視化”

,b$=“程序設(shè)計”則:a$&b$=?

a$&b$=“可視化程序設(shè)計”

第48頁/共146頁第47頁/共146頁3、關(guān)系運算符和關(guān)系表達式注意:比較數(shù)值的大小比較字母的大?。壕褪潜容^字母ASCII值的大小,比較字符串就是比較首字母ASCII值大小。

(按字母順序,越往后面越大;小寫字母大于大寫字母)關(guān)系表達式的值只有兩種可能:true和false第49頁/共146頁第48頁/共146頁4、邏輯運算符和邏輯表達式邏輯運算關(guān)系運算符優(yōu)先級表達式說明求非運算Not

1NotX取反操作,真變假,假變真求與運算And

2XAndY進行邏輯與操作,兩個都為真,結(jié)果才為真求或運算Or

3XOrY進行邏輯或操作,有一個為真,結(jié)果為真注意:當一個表達式中同時出現(xiàn)多種運算符時:算術(shù)運算符>字符串運算符>關(guān)系運算符>邏輯運算符第50頁/共146頁第49頁/共146頁5、對象運算符和對象表達式第51頁/共146頁第50頁/共146頁

9.4常用內(nèi)部函數(shù)什么是函數(shù)?函數(shù)的分類內(nèi)部函數(shù)用戶自定義函數(shù)第52頁/共146頁第51頁/共146頁內(nèi)部函數(shù)數(shù)學(xué)函數(shù)字符串操作函數(shù)類型轉(zhuǎn)換函數(shù)日期和時間函數(shù)第53頁/共146頁第52頁/共146頁9.5.1語句類型1、聲明語句

2、賦值語句就是將等號(=)右邊表達式的值賦給左邊表達式的變量或者對象的某一屬性

注意:可以將兩條或多條語句放在同一行,只是要用冒號(:)將它們分開9.5語句和控制結(jié)構(gòu)第54頁/共146頁第53頁/共146頁3、注釋語句使用注釋語句的好處是什么?注釋用rem語句或單引號來實現(xiàn),例:

DimStr1,Str2‘定義變量Str1=“Beijin”

rem給變量賦值4、標號和goto語句第55頁/共146頁第54頁/共146頁5、控制語句

改變程序語句默認的執(zhí)行順序或讓某條語句重復(fù)執(zhí)行。VBA中控制語句有三種結(jié)構(gòu)為:順序結(jié)構(gòu)條件選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)

第56頁/共146頁第55頁/共146頁9.5.2條件選擇結(jié)構(gòu)選擇結(jié)構(gòu)采用的語句有:If……then……

單分支語句If……then……else……

雙分支語句If……then……elseif……

多分支語句SelectCase語句多分支語句第57頁/共146頁第56頁/共146頁1.單分支結(jié)構(gòu)IF.....Then.....語句語法:If

條件表達式Then語句塊

endif或:If條件表達式Then語句塊

條件表達式可以是一個關(guān)系表達式、邏輯表達式或數(shù)值表達式當條件表達式為true時執(zhí)行then后面語句塊1,為false呢?每次根據(jù)表達式的值只選擇執(zhí)行一個語句塊。

第58頁/共146頁第57頁/共146頁

2.雙分支結(jié)構(gòu):IF...Then…Else…語句語法:If條件表達式Then語句塊1Else

語句塊2Endif當條件表達式為true時執(zhí)行then后面語句塊1,為false執(zhí)行else后面的語句塊第59頁/共146頁第58頁/共146頁例1:PrivateSubtest()DimscoreAsSingle,strAsStringscore=InputBox("請輸入分數(shù)")Ifscore>=60Thenstr="及格"MsgBoxstrElseMsgBox"不及格"EndIfEndSub第60頁/共146頁第59頁/共146頁例2:編寫程序計算符號函數(shù)Ifx>0theny=0else

ifx=0theny=0elsey=-1endifendifMsgBoxx在else中嵌套if…then…else…可以解決多分支的問題,但結(jié)構(gòu)較復(fù)雜。有沒有專門的多分支語句解決此問題呢?第61頁/共146頁第60頁/共146頁3.多分支語句:

If...Then...ElseIf……語法結(jié)構(gòu):If條件表達式1Then語句序列1ElseIf條件表達式2Then

語句序列2

……

……

ElseIf條件表達式nThen

語句序列n

Else語句序列n+1EndIf從第一個條件表達式1開始,直到找到一個分支的條件表達式值為TRUE,執(zhí)行then后面相應(yīng)語句,然后跳轉(zhuǎn)到endif結(jié)束;從多分支中只選擇第一個條件表達式值為真的分支執(zhí)行;如所有條件表達式都為假,執(zhí)行最后else后語句第62頁/共146頁第61頁/共146頁多分支語句實現(xiàn):

ifx>0then

y=1

elseifx=0then

y=0

else

y=-1

endif

嵌套實現(xiàn):Ifx>0theny=0else

ifx=0theny=0elsey=-1endifendif第63頁/共146頁第62頁/共146頁4.多分支語句—SelectCase語句語法:

SelectCase表達式Case取值范圍1語句序列1Case取值范圍2語句序列2

………………

Case取值范圍n語句序列nCaseElse

語句序列n+1

EndSelect先計算表達式的值,然后按順序從case的第一個分支開始,如果表達式的值在某個case分支的取值范圍內(nèi),就執(zhí)行這個分支的語句序列,執(zhí)行完后跳過后面所有的分支結(jié)束。特點:只會按順序選擇一個case分支執(zhí)行。第64頁/共146頁第63頁/共146頁注意:取值范圍可以是離散值范圍,如:Case2,4,6,8取值范圍可以是用TO連續(xù)值范圍:Case1To3也可以是用Is構(gòu)成的關(guān)系運算表達式例如CaseIs=12或CaseIs<9第65頁/共146頁第64頁/共146頁例3:

PrivateSubtest()Dimx!,y!x=Val(InputBox("請輸入x的值:"))

SelectCasexCaseIs>0y=1:PrintyCaseIs=0y=0:PrintyCaseElsey=-1:PrintyEndSelect

msgboxyEndSub第66頁/共146頁第65頁/共146頁例4:試將學(xué)生的百分制成績轉(zhuǎn)換為等級制,90分以上為優(yōu)秀,80~89分為良好,70~79為較好,60~69為及格,60分以下為不及格.

第67頁/共146頁第66頁/共146頁

Dimgrade!,y$grade=InputBox("請輸入學(xué)生的成績:")ifgrade<0orgrade>100thenmsgbox“你輸入的成績不合法"

elseifgrade>=90Then

y="優(yōu)秀"

elseIfgrade>=80Then

y="良好"elseIfgrade>=70Then

y="較好"elseIfgrade>=60Then

y="及格"else

y=“不及格"

EndIfmsgbox"該生成績等級為"&y用If...Then...ElseIf……完成第68頁/共146頁第67頁/共146頁用SelectCase語句完成PublicSubtest()DimsAsStringDimgAsSingleg=InputBox("請輸入成績")SelectCasegCaseIs>100,Is<0s="輸入的成績不合法!"CaseIs>=90s="優(yōu)秀"CaseIs>=80s="良好"CaseIs>=70s="較好"CaseIs>=60s="及格"CaseElses="不及格"EndSelectMsgBoxsEndSub第69頁/共146頁第68頁/共146頁4、用函數(shù)實現(xiàn)條件選擇

(1)IIf條件分支函數(shù)

語句格式:y=IIf(條件表達式,True部分,False部分)例1:y=IIf(a>5,1,2)例2:用條件函數(shù)編程實現(xiàn)符號函數(shù)的計算

y=iif(x>0,1,iif(x=0,0,-1))第70頁/共146頁第69頁/共146頁(2)Switch函數(shù)調(diào)用格式:

Switch(條件表達式1,表達式1,條件表達式2,表達式2……,條件表達式n,表達式n)當某個條件表達式值為true時,對應(yīng)表達式值作為函數(shù)值返回例如:根據(jù)變量x的值來為變量y賦值。x=InputBox(“請輸入一個值:")

y=Switch(x>0,1,x=0,0,x<0,-1)第71頁/共146頁第70頁/共146頁(3)choose函數(shù)調(diào)用格式:

Choose(索引表達式,選項1,選項2,…

,選項n)索引表達式值為1,函數(shù)返回第1個選項值;索引表達式值為2,函數(shù)返回第2個選項值,。。。。。例如:根據(jù)變量x的值來返回對應(yīng)選項的值。x=InputBox(“請輸入一個值:")

y=Switch(x,1,0,-1)當索引表達式值不在選項個數(shù)范圍內(nèi),返回值為null第72頁/共146頁第71頁/共146頁9.5.3循環(huán)結(jié)構(gòu)循環(huán)的含義循環(huán)結(jié)構(gòu)采用的語句:For……next語句While……wend語句Do……loop語句第73頁/共146頁第72頁/共146頁1.

For...Next語句語法:For循環(huán)變量=初值To終值Step增量值

語句序列1語句序列2

…………Next循環(huán)變量注意:循環(huán)變量值只要在初值和終值范圍就執(zhí)行循環(huán)體語句

每循環(huán)一次,循環(huán)變量按增量值自增或自減step省略時默認增量值為1增量值可以為負,但初值要大于終值

第74頁/共146頁第73頁/共146頁PrivateSubtest()Dimi%Fori=1To5step1Debug.Print"循環(huán)時變量i的值為:";iNextiEndSub第75頁/共146頁第74頁/共146頁例1:用循環(huán)實現(xiàn)1到100的累加和PrivateSubsum()Dimi%,s%Fori=1To5step1s=s+iNextiMsgBox"累加和為"&sEndSub第76頁/共146頁第75頁/共146頁例2:用循環(huán)求解10!,用Msgbox提示結(jié)果。

PublicSubtest()Dimi%,n#n=1Fori=1To10Step1n=n*iNextiMsgBox"10的階乘為"&nEndSub第77頁/共146頁第76頁/共146頁例3:用循環(huán)求解1!+2!+3!+…+10!,用Msgbox提示結(jié)果。PrivateSubtest()Dimi%,n#,s#n=1Fori=1To10Step1n=n*is=s+nNextiMsgBox"10的階乘和為"&sEndSub第78頁/共146頁第77頁/共146頁DoWhile條件表達式

語句序列1

語句序列2Loop此循環(huán)體語句可能一次都不執(zhí)行Do

語句序列1語句序列2LoopWhile條件表達式此循環(huán)體語句至少執(zhí)行一次2.Do...Loop循環(huán)語句

(1)當型循環(huán):當while條件表達式為TRUE,執(zhí)行循環(huán)體語句,為FALSE退出循環(huán)。第79頁/共146頁第78頁/共146頁

PrivateSubtest()Dimi%

DoWhilei<=5Debug.Print"循環(huán)變量i的值為:";ii=i+1LoopEndSub注意:Do...Loop循環(huán)語句中必須通過賦值語句實現(xiàn)循環(huán)變量的增加或較少,否則將陷入死循環(huán);而for……next循環(huán)能自動實現(xiàn)的變量的自增或自減。第80頁/共146頁第79頁/共146頁例子:PrivateSubtest()Dimi%,s%DoWhilei<=100s=s+ii=i+1LoopmsgboxsEndSub第81頁/共146頁第80頁/共146頁DoUntil條件表達式[語句序列1[ExitDo]語句序列2Loop此循環(huán)語句可能一次都不執(zhí)行Do[語句序列1[ExitDo]語句序列2LoopUntil條件表達式

此循環(huán)語句至少執(zhí)行一次(2)直到型循環(huán):當until后的條件表達式為FALSE時,執(zhí)行循環(huán)體語句,為TRUE退出循環(huán)體

第82頁/共146頁第81頁/共146頁例子:求1到100累加和PrivateSubtest()Dimi%,s%Dos=s+ii=i+1LoopUntili>100MsgboxsEndSub第83頁/共146頁第82頁/共146頁3.While-Wend循環(huán)語句語法結(jié)構(gòu):While條件表達式語句序列Wend第84頁/共146頁第83頁/共146頁例:求1到100的累加和PrivateSubForm_Click()Dimi%,s%Whilei<=100s=s+ii=i+1WendPrint"s=:";sEndSub思考:求10!第85頁/共146頁第84頁/共146頁

補充:循環(huán)語句的嵌套循環(huán)結(jié)構(gòu)的嵌套Fori=1To3

Forj=1To3..............NextjNexti注意:外循環(huán)每執(zhí)行1次,內(nèi)循環(huán)語句就執(zhí)行3次,循環(huán)體語句總共執(zhí)行了9次。第86頁/共146頁第85頁/共146頁PrivateSubtest()Dimi%,j%Fori=1To3Debug.Print"外循環(huán)變量i的值為:";i

Forj=1To3Debug.Print"內(nèi)循環(huán)變量j的值為:";j;NextjDebug.PrintNextiEndSub第87頁/共146頁第86頁/共146頁例:PrivateSubForm_Click()Dimi%,j%Fori=1To5

Forj=1To6Print"*";NextjPrintNextiEndsub外循環(huán)控制行數(shù),內(nèi)循環(huán)控制每行輸出的*個數(shù)第88頁/共146頁第87頁/共146頁選擇結(jié)構(gòu)的嵌套不同結(jié)構(gòu)的嵌套第89頁/共146頁第88頁/共146頁9.1和9.6應(yīng)用程序、模塊和過程的概念怎么理解應(yīng)用程序?

應(yīng)用程序是指揮計算機完成特定任務(wù)和功能的指令或代碼的集合。應(yīng)用程序和模塊、過程的關(guān)系?

應(yīng)用程序由模塊組成,模塊又由過程組成,過程是應(yīng)用程序組織代碼的最小單元,只完成應(yīng)用程序的一小部分功能.

總結(jié):過程實質(zhì)就是一段代碼集合,編寫過程就是編寫代碼。

第90頁/共146頁第89頁/共146頁VB應(yīng)用程序結(jié)構(gòu)應(yīng)用程序模塊1模塊2模塊n過程1過程n過程1過程1過程n過程n第91頁/共146頁第90頁/共146頁9.6.1過程根據(jù)作用的不同過程可分為:事件過程:構(gòu)成了VB應(yīng)用程序的主體通用過程:被其它過程調(diào)用Sub過程(子過程)Function過程(函數(shù)過程)第92頁/共146頁第91頁/共146頁1、事件過程編寫代碼來響應(yīng)對象上發(fā)生的事件,這段程序代碼即為事件過程。

事件事件過程第93頁/共146頁第92頁/共146頁事件過程例子:PrivateSubcommand0_Click()MsgBox"歡迎使用!",vbInformation,"提示"Endsub第94頁/共146頁第93頁/共146頁2、sub過程Sub過程又成子過程,是因為它包含的代碼不能單獨運行,必須有主程序調(diào)用才能運行,sub過程代碼一般都是使用頻率高的代碼,也稱通用代碼。Sub過程的定義格式:[Private|Public]

Sub

過程名(形式參數(shù)表)語句1語句2

………EndSub第95頁/共146頁第94頁/共146頁Sub過程的調(diào)用格式:

Call過程名(實在參數(shù)列表)過程名實在參數(shù)列表第96頁/共146頁第95頁/共146頁注意:Private表示只能被本模塊中的其它過程調(diào)用Public表示能夠被其它模塊中的過程調(diào)用形式參數(shù)表是個變量列表,變量在定義過程時還沒有確定的值。第97頁/共146頁第96頁/共146頁調(diào)用過程:PublicSubtest()Dima%a=5Calljs(a)EndSub被調(diào)過程:PrivateSubjs(x)x=x*2MsgBoxxEndSub第98頁/共146頁第97頁/共146頁

創(chuàng)建sub過程求三角形面積:PrivateSubtr(x#,y#,z#)Dimp#,s#Ifx+y>zAndy+z>xAndz+x>yThenp=(x+y+z)/2s=Sqr(p*(p-x)*(p-y)*(p-z))MsgBox"此三角形面積為:"&sElseMsgBox"你輸入的三個值不滿足條件,請點擊窗體重新輸入!"EndIfEndSub第99頁/共146頁第98頁/共146頁調(diào)用求三角形面積的過程:PublicSubtest()Dima#,b#,c#a=InputBox("請輸入a的值:")b=InputBox("請輸入b的值:")c=InputBox("請輸入c的值:")Calltr(a,b,c)EndSub第100頁/共146頁第99頁/共146頁3、function過程Function過程的定義格式[Private|Public]Function函數(shù)名(形式參數(shù)表)語句1

語句2

………

函數(shù)名=表達式EndFunction

定義函數(shù)過程時,函數(shù)過程名作為變量名至少要被賦值一次,作為函數(shù)的返回值。第101頁/共146頁第100頁/共146頁Function過程的調(diào)用

(1)通過把函數(shù)返回值賦值變量來調(diào)用函數(shù)

x=函數(shù)名(實參列表)(2)也直接由print或msgbox輸出函數(shù)值第102頁/共146頁第101頁/共146頁調(diào)用過程:PublicSubtest()Dima%a=5MsgBoxjs(a)EndSub被調(diào)函數(shù):PrivateFunctionjs(x)x=x*2

js=xEndFunction第103頁/共146頁第102頁/共146頁創(chuàng)建求最小值的Function過程PublicFunctionmin(x!,y!,z!)Ifx>yThenx=yEndIfIfx>zThenx=zEndIfmin=xEndFunction第104頁/共146頁第103頁/共146頁調(diào)用過程:PrivateSubtest()Dima!,b!,c!,x!a=InputBox("請輸入的a值:")b=InputBox("請輸入的b值:")c=InputBox("請輸入的c值:")x=min(a,b,c)MsgBox"三個數(shù)最小值為"&xEndSub第105頁/共146頁第104頁/共146頁9.6.2參數(shù)傳遞過程1.形式參數(shù)與實在參數(shù)形式參數(shù)(形參):定義Sub過程和Function過程中的參數(shù)實在參數(shù)(實參):調(diào)用Sub過程和Function過程語句中所使用的參數(shù)形參和實參是一一對應(yīng)的,在調(diào)用時實參的值傳遞給形參探討:那么形參的值在運算改變后能不能再回傳給實參呢?第106頁/共146頁第105頁/共146頁2.參數(shù)傳遞方式(1)按值傳遞:當調(diào)用語句的實參是常量或表達式時默認采用按值傳遞方式。特點:單向傳遞,把實參的值傳遞給形參,形參值改變后不會再回傳給實參。

第107頁/共146頁第106頁/共146頁(2)按地址傳遞:當調(diào)用語句的實參是變量默認采用按地址傳遞方式特點:雙向傳遞,實參的值傳遞給形參,形參的值改變后再回傳給實參。(3)當調(diào)用語句的實參是變量時,但又想采用按值傳遞,可在形參前加ByVal或者在調(diào)用過程的語句中給實參變量加(),則按值傳遞第108頁/共146頁第107頁/共146頁主調(diào)用過程:PrivateSubtest()DimaAsIntegera=5Calljs(a+1)MsgBoxaEndSub被調(diào)用過程:PrivateSubjs(x)x=x+3EndSub第109頁/共146頁第108頁/共146頁9.7VBA程序中數(shù)據(jù)的輸入框和消息框9.7.3inputbox函數(shù)---數(shù)據(jù)輸入功能:顯示一個能接受用戶輸入的對話框,并返回用戶在對話框中輸入的字符信息。語法格式:

變量=inputbox(<提示消息>,[對話框標題],[默認值])例子PrivateSubForm_Click()Dima%a=Val(InputBox("請輸入數(shù)據(jù):","inputbox函數(shù)演示",1))Print"你輸入的數(shù)據(jù)為:";aEndSub第110頁/共146頁第109頁/共146頁9.7.4MsgBox函數(shù)和msgbox語句—消息框功能:在消息框中顯示提示消息或要求用戶對某問題作出是或否的選擇,等待用戶單擊消息框上按鈕,同時能返回一個值表示用戶單擊哪一個按鈕。使用語法格式:作為函數(shù)使用

變量=msgbox(<提示消息>,[對話框類型],[對話框標題])作為語句使用

msgbox<提示消息>,[對話框類型],[對話框標題])

第111頁/共146頁第110頁/共146頁對話框類型或樣式取決于以下部分值的設(shè)定:1.設(shè)置消息框中顯示按鈕的類型與數(shù)目2.設(shè)置消息框圖標的樣式3.設(shè)置哪一個按鈕是缺省按鈕注意:如果省略該對話框類型選型參數(shù),則默認為0,只顯示一個確定默認按鈕第112頁/共146頁第111頁/共146頁例:MsgBox函數(shù)和msgbox語句

Dimvalue%value=MsgBox("請選擇按鈕",3+64+256,"msgbox練習(xí)")SelectCasevalueCasevbokMsgBox"你單擊了確定按鈕"CasevbCancelMsgBox“你單擊了取消按鈕"CasevbNoMsgBox"你單擊了否按鈕"CasevbYesMsgBox"你單擊了是按鈕"EndSelect第113頁/共146頁第112頁/共146頁一、剩下的時間不到一個月,這段時間要全部精力和時間投入到access的學(xué)習(xí)中。二、寒假作業(yè)是否完成?不會做或不理解的題目要解決、搞懂三、考試前要完成的任務(wù)

1、結(jié)合上課強調(diào)的重難點把教材認真看1到2篇2、上機模擬題要做完并糾正不會做的上機題目

3、把筆試模擬試題做完并搞懂不會做的題目

4、配合我的復(fù)習(xí)第114頁/共146頁第113頁/共146頁復(fù)習(xí):

1、窗體的作用?窗體可以顯示表或查詢結(jié)果的記錄數(shù)據(jù);通過窗體可以向表中輸入記錄值,或修改表中的某個記錄相應(yīng)字段的值窗體是顯示表或查詢數(shù)據(jù)的一個窗口,是用戶和應(yīng)用程序的接口。數(shù)據(jù)庫中表或查詢的結(jié)果是窗體的數(shù)據(jù)源,創(chuàng)建窗體的同時要建立窗體同這些數(shù)據(jù)源的關(guān)系

2、窗體有幾種視圖?

3、窗體的組成?

4、窗體的類型?

主窗體和子窗體通常用于顯示有“一對多”關(guān)系的表或查詢中的數(shù)據(jù)。

5、創(chuàng)建窗體不同類型的的方法?設(shè)計視圖和使用向?qū)У姆椒?,其中使用向?qū)в钟?種方法第5章窗體第115頁/共146頁第114頁/共146頁新課內(nèi)容:5.3自定義窗體

1、主要是利用控件來創(chuàng)建復(fù)雜的窗體,窗體是載體或平臺,控件可以添加依附在窗體上

2、有哪些控件呢?它們的作用是什么呢?簡單認識控件,了解作用舉例總結(jié):

1、窗體上顯示的數(shù)據(jù)分為靜態(tài)和動態(tài)兩種;2、控件有結(jié)合型(綁定型)控件,非結(jié)合型(非綁定型),計算型控件(文本框控件)

第116頁/共146頁第115頁/共146頁第117頁/共146頁第116頁/共146頁3、演示制作過程:

注意:建立窗體和控件同表或記錄源的關(guān)系有兩種方法(1)設(shè)計視圖中窗體通過其數(shù)據(jù)屬性中的記錄源屬性選擇窗體顯示的數(shù)據(jù)來自某個表或查詢;控件通過數(shù)據(jù)屬性的控件來源設(shè)置顯示的數(shù)據(jù)來自記錄的某個字段;(2)可以將表中一個字段直接拖到窗體主體節(jié)中,access將根據(jù)字段屬性自動選擇相應(yīng)控件來顯示字段值。4、學(xué)生練習(xí)5、強調(diào)選項卡控件:舉例第118頁/共146頁第117頁/共146頁5.3.5窗體和控件屬性

1、屬性的作用?

決定對象的特征和外觀,對象可以是窗體和控件,它們都有很多屬性。

2、

怎樣查看窗體和控件的屬性?它們有哪些屬性呢?屬性對話框,一定注意你選擇的是誰的屬性

第119頁/共146頁第118頁/共146頁3、屬性對話框包括5個選項按鈕:格式、數(shù)據(jù)、事件、其它和全部,它們的作用是什么呢(1)格式屬性:改變窗體和控件的外觀(2)數(shù)據(jù)屬性:設(shè)置控件和窗體顯示的數(shù)據(jù)源,以及輸入數(shù)據(jù)、更新數(shù)據(jù)時的限制規(guī)則;

注意:窗體的數(shù)據(jù)來源叫記錄源,控件的數(shù)據(jù)來源與記錄中的某個字段關(guān)聯(lián)。(3)其它屬性:名稱屬性是用來標識不同的控件,在程序中可通過名稱來識別、表示控件,不同的控件名稱不同(4)事件:是發(fā)生在對象上的某個操作或動作,有哪些事件呢?

第120頁/共146頁第119頁/共146頁5.4美化窗體

作業(yè)完成課后習(xí)題完成未完成的寒假作業(yè),下次檢查寒假作業(yè)做4套上機模擬題,按你計劃執(zhí)行第121頁/共146頁第120頁/共146頁第6章報表6.1.1報表定義和功能定義:報表是把表或查詢中的記錄數(shù)據(jù)按既定規(guī)則打印輸出格式化的數(shù)據(jù)信息。報表功能有那些?舉例6.1.2報表有幾種視圖?

第122頁/共146頁第121頁/共146頁6.1.3報表的組成(一份報表包括多頁)1、報表頁眉:用來設(shè)置報表的標題,報表頁眉的內(nèi)容只能在報表第一頁打印顯示一次,主要用于封面。2、頁面頁眉:顯示記錄的字段名,報表的每頁都會顯示頁眉的內(nèi)容3、主體節(jié):顯示記錄的字段值,其字段值需要通過文本框或其它控件來顯示,所以要建立控件同字段值的綁定4、頁面頁腳:一般顯示本頁的頁碼或總的頁數(shù),每頁都顯示。5、報表頁腳:用來顯示整份報表的匯總說明,只顯示在報表的最后6、組頁眉和組頁腳:用于分組顯示記錄,同時對分組記錄進行排序或統(tǒng)計分析。第123頁/共146頁第122頁/共146頁6.1.4報表分為幾類?各自的特點是什么?6.2怎么創(chuàng)建報表?1、自動報表創(chuàng)建自動創(chuàng)建縱欄式和表格式報表2、向?qū)?chuàng)建報表向?qū)Э梢詫︼@示記錄排序或分組圖表向?qū)撕炏驅(qū)?/p>

第124頁/共146頁第123頁/共146頁3、利用設(shè)計視圖創(chuàng)建報表

優(yōu)勢有那些?

報表有屬性嗎?

怎么查看報表對象屬性呢?各個節(jié)有屬性嗎?怎么查看?設(shè)計報表或各個節(jié)的格式就是設(shè)計相應(yīng)對象的屬性值。

自動套用格式的使用要注意當前選中的是整個報表或是某個節(jié),自動套用格式可一次性更改選中對象上的文字樣式等外觀屬性。第125頁/共146頁第124頁/共146頁6.3.3報表中控件的使用注意:報表中控件顯示的數(shù)據(jù)都和記錄中的字段值關(guān)聯(lián),所以要設(shè)置控件的數(shù)據(jù)來源。

1、直接拖字段到報表中

2、或通過控件的數(shù)據(jù)屬性,設(shè)定控件的數(shù)據(jù)來源應(yīng)用1:向報表中添加分頁符控件應(yīng)用2:添加頁碼應(yīng)用3:繪制線條應(yīng)用4:添加日期和事件

應(yīng)用5:添加計算控件第126頁/共146頁第125頁/共146頁6.3.4創(chuàng)建基于參數(shù)的查詢6.3.5創(chuàng)建子報表6.3.6報表的排序和分組6.4預(yù)覽和打印報表第127頁/共146頁第126頁/共146頁第7章數(shù)據(jù)訪問頁7.1.1數(shù)據(jù)訪問頁是Access中一個特殊的數(shù)據(jù)庫對象,它產(chǎn)生的是頁面文件或稱為web頁,文件擴展名是.html,瀏覽器可以打開此頁面文件并顯示在屏幕上用戶瀏覽。7.1.2有幾種視圖?7.1.3數(shù)據(jù)訪問頁的數(shù)據(jù)來源有哪些?來自ACCESS數(shù)據(jù)庫、excel工作表、電子表格、圖表或非ACCESS數(shù)據(jù)庫等7.2創(chuàng)建數(shù)據(jù)訪問頁自動創(chuàng)建:向?qū)?chuàng)建:注意數(shù)據(jù)源有表、查詢、SQL語句設(shè)計視圖:第128頁/共146頁第127頁/共146頁7.3編輯數(shù)據(jù)訪問頁7.3.1為數(shù)據(jù)訪問頁添加控件7.3.2美化和完善數(shù)據(jù)訪問頁7.3.3給數(shù)據(jù)訪問頁超鏈接文字添加超鏈接圖片添加超鏈接第129頁/共1

溫馨提示

  • 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)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論