VBA編程基礎(chǔ)-常量、變量、運算符和表達(dá)式.ppt_第1頁
VBA編程基礎(chǔ)-常量、變量、運算符和表達(dá)式.ppt_第2頁
VBA編程基礎(chǔ)-常量、變量、運算符和表達(dá)式.ppt_第3頁
VBA編程基礎(chǔ)-常量、變量、運算符和表達(dá)式.ppt_第4頁
VBA編程基礎(chǔ)-常量、變量、運算符和表達(dá)式.ppt_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

全國計算機等級考試 Access數(shù)據(jù)庫程序設(shè)計(二級),萬紅波 煙臺大學(xué),VBA編程基礎(chǔ),常量、變量、運算符和表達(dá)式; 流程控制語句; 過程調(diào)用和參數(shù)傳遞; 常用操作的實現(xiàn)方法; VBA的數(shù)據(jù)庫編程;,1.1 數(shù)據(jù)類型,程序的主要目的是處理各種數(shù)據(jù),現(xiàn)實存在的數(shù)據(jù)是各種各樣的,比如有整數(shù)、文本數(shù)據(jù)等等; 在表的創(chuàng)建過程中,涉及到字段的數(shù)據(jù)類型,字段的數(shù)據(jù)類型決定了字段可以存儲什么樣的數(shù)據(jù);字段的數(shù)據(jù)類型是Access內(nèi)部的數(shù)據(jù)類型; VBA中也定義了各種數(shù)據(jù)類型,用來在程序中存放不同的數(shù)據(jù);,1.1 數(shù)據(jù)類型,1.1 數(shù)據(jù)類型-變體數(shù)據(jù)類型,變體類型除了定長字符串類型、用戶自定義類型外,可以包含其他任何類型的數(shù)據(jù); 如果沒有顯式聲明,變量的默認(rèn)類型是變體類型;,1.2 變量,變量就是存放數(shù)據(jù)的容器,在程序運行中存放數(shù)據(jù),并且數(shù)據(jù)可以發(fā)生變化; 變量的名字由字符、數(shù)字、下劃線(_)構(gòu)成,變量命名大小寫不“敏感”;,1.2 變量顯式定義變量,顯式變量:先定義變量,后使用 Dim 變量名 As 變量類型 Dim ii As Integer 定義ii為整型變量 Dim s As String*10 定義s為定長字符串 Dim t 沒有As部分,默認(rèn)為Variant類型 可以加入Option Explicit語句,強制要求所有變量必須先定義后使用;,1.2 變量隱式變量,變量沒有直接定義,借助將一個值指定給變量名的方式來建立變量; MyVar=532 默認(rèn)是Variant類型,值為532 可以使用類型說明字符來指明隱含變量的類型 MyVar%=23 MyDouble#=23.34,1.2 變量作用域局部范圍,變量定義在模塊的過程的內(nèi)部,Private Sub OK_Click() Dim i As Integer i = 9 MsgBox “i=“ & i End Sub,1.2 變量作用域模塊范圍,變量定義在模塊的所有過程之外的起始位置,模塊的所有子過程和函數(shù)都可以使用;,Dim i As Integer Private Sub OK_Click() i = 9 MsgBox “i=“ & i End Sub,1.2 變量作用域全局范圍,變量定義在標(biāo)準(zhǔn)模塊的所有過程之外的起始位置,用Public . As 定義的變量屬于全局范圍; Public i As Integer 全局范圍的變量,在類模塊和標(biāo)準(zhǔn)模塊中都可以訪問; 在類模塊中訪問標(biāo)準(zhǔn)模塊中的全局變量 標(biāo)準(zhǔn)模塊名.全局變量名,1.3 數(shù)據(jù)類型之間的轉(zhuǎn)換,把數(shù)據(jù)轉(zhuǎn)換成特定的類型,Dim bb As Boolean bb = CBool(“true“),1.4 用戶自定義數(shù)據(jù)類型,可以建立包含一個或多個VBA標(biāo)準(zhǔn)數(shù)據(jù)類型的用戶自定義數(shù)據(jù)類型 用戶自定義類型的聲明,必須放在標(biāo)準(zhǔn)模塊中,Type 數(shù)據(jù)類型名 As As End Type,1.4 用戶自定義數(shù)據(jù)類型例子,在標(biāo)準(zhǔn)模塊asd中,聲明用戶自定義類型 Public Type Student txtNo As String * 7 txtName As String txtSex As String * 1 txtAge As Integer End Type,在類模塊中,定義用戶自定義類型變量 Private Sub OK_Click() Dim stu As asd.Student stu.txtNo = “2929333“ stu.txtName = “張三“ stu.txtSex = “男“ stu.txtAge = 20 MsgBox “stu.txtName“ & stu.txtName End Sub,1.4 用戶自定義數(shù)據(jù)類型例子,在類模塊中,定義用戶自定義類型變量 Private Sub OK_Click() Dim stu As asd.Student With stu .txtNo = “2929333“ .txtName = “張三“ .txtSex = “男“ .txtAge = 20 End With MsgBox “stu.txtName“ & stu.txtName End Sub,1.5 數(shù)組,數(shù)組:包含一種數(shù)據(jù)類型的一組數(shù)據(jù) Dim 數(shù)組名(下標(biāo)下限 to 下標(biāo)上限) 缺省情況下,數(shù)組下標(biāo)下限為0,可以使用“Option Base 1”將數(shù)組的默認(rèn)下標(biāo)下限由0改為1 Dim NewArray(10) As Integer NewArray(0) NewArray(10),1.5 數(shù)組,二維數(shù)組的定義 Dim aa(5,5) As Integer aa(0,0) a(0,1) a(0,2).a(0,5).a(5,5) 動態(tài)數(shù)組 先用Dim顯式定義數(shù)組但不指明元素數(shù)目,然后用ReDim關(guān)鍵字來決定元素數(shù)目; Dim MyArray() As Long . ReDim MyArray(10),練習(xí)題,以下哪個選項定義了10個整型數(shù)構(gòu)成的數(shù)組,數(shù)組元素為NewArray(1)至NewArray(10) A) Dim NewArray(10)As Integer B) Dim NewArray(1 To 10)As Integer C) Dim NewArray(10) Integer D) Dim NewArray(1 To 10) Integer,練習(xí)題,語句Dim NewArray(10) As Integer的含義是 A)定義了一個整型變量且初始值為10 B)定義了10個整數(shù)構(gòu)成的數(shù)組 C)定義了11個整數(shù)構(gòu)成的數(shù)組 D)將數(shù)組的第10元素設(shè)置為整型,1.6 引用窗體或報表中控件的屬性值,引用窗體或報表中控件(通用方式) Forms!窗體名稱!控件名稱.屬性名稱 Reports!窗體名稱!控件名稱.屬性名稱 引用自身窗體上的控件 Me.控件名稱.控件屬性,定義控件類型變量 Dim txtName As Control 用Set引用控件 Set txtName = Forms!testForm!txtName MsgBox txtName.Value txtName.Value = “Test“,1.7 符號常量,Const 符號常量名稱=常量值 定義全局符號常量,在標(biāo)準(zhǔn)模塊中 Global Const PI=3.1415 Public Const PI=3.1415,1.8 系統(tǒng)常量、內(nèi)部常量,Access啟動時就建立的系統(tǒng)常量 比如:True,False,Yes,No,Off,Null 內(nèi)部常量:VBA提供的一些預(yù)定義的內(nèi)部符號常量;,MsgBox “提示信息“, vbInformation, “窗口標(biāo)題“ DoCmd.OpenReport “教師“, acViewPreview,1.9 運算符,VBA中,使用各種運算符來完成對數(shù)據(jù)的運算和處理 算術(shù)運算符 關(guān)系運算符 邏輯運算符 連接運算符,1.9 運算符算術(shù)運算符,加法 + 減法 - 乘法 * 除法 / 整數(shù)除法 求模運算 Mod 乘冪 ,Dim MyValue MyValue = 10 Mod 4 MyValue = 10 Mod 2 MyValue = -10 Mod 2 MyValue = -12.7 Mod -5 MyValue = 3 2 MyValue = 10.2 4.9 MyValue = 10 3,整數(shù)除法,操作數(shù)的小數(shù)部分直接舍去,如果結(jié)果有小數(shù)也要舍去; 求模運算Mod,操作數(shù)的小數(shù)部分四舍五入后變成整數(shù)再運算;余數(shù)的正負(fù)跟被除數(shù)相關(guān);,1.9 運算符關(guān)系運算符,相等 = 不等 大于 小于 = 小于等于 =,Dim MyValue MyValue = (10 4) MyValue = (#8/8/2006# = #9/8/2008#),比較運算的結(jié)果為邏輯值:True(真)或False(假),1.9 運算符邏輯運算符,邏輯運算符對兩個邏輯量進(jìn)行邏輯運算 AND 邏輯與 OR 邏輯或 NOT 邏輯非,Dim MyValue MyValue = (10 4 And 11 2) MyValue = (10 2) myvlaue = Not (4 = 3),1.9 運算符連接運算符,字符串連接運算符 & 強制將兩個表達(dá)式做字符串連接 + 當(dāng)兩邊的表達(dá)式都是字符串的時候,才將兩個字符串連接成一個字符串,Dim s As String Dim ss As String s = 2 & 3 ss = 2 + 3,1.10 運算符的優(yōu)先級,優(yōu)先級: 算術(shù)運算符連接運算符關(guān)系運算符邏輯運算符 算術(shù)運算符 和邏輯運算符的優(yōu)先級,低,高,1.11 常用標(biāo)準(zhǔn)函數(shù),VBA提供了大量的標(biāo)準(zhǔn)函數(shù),可以在程序中調(diào)用; 數(shù)學(xué)函數(shù) 字符串函數(shù) 日期/時間函數(shù) 類型轉(zhuǎn)換函數(shù),1.11 常用標(biāo)準(zhǔn)函數(shù)數(shù)學(xué)函數(shù),取整函數(shù) Int() Fix() 參數(shù)為正數(shù)時,兩者相同;參數(shù)為負(fù)數(shù)時候,Int返回小于等于參數(shù)值的第一個負(fù)數(shù),F(xiàn)ix返回大于等于參數(shù)值的第一個負(fù)數(shù);,Dim a, b As Integer a = Int(-3.23) b = Fix(-3.23) MsgBox “a=“ & a & “b=“ & b,1.11 常用標(biāo)準(zhǔn)函數(shù)數(shù)學(xué)函數(shù),隨機數(shù)函數(shù) Rnd(),產(chǎn)生大于等于0,小于1的單精度數(shù); 數(shù)值表達(dá)式的值0,每次產(chǎn)生隨機數(shù);默認(rèn)值 數(shù)值表達(dá)式的值=0,產(chǎn)生最近生成的隨機數(shù);,練習(xí)題,有如下語句: s=Int(100*Rnd) 執(zhí)行完畢后,s的值是 A) 0,99的隨機數(shù) B) 1,99的隨機數(shù) C) 0,100的隨機數(shù) D) 1,100的隨機數(shù),1.11 常用標(biāo)準(zhǔn)函數(shù)字符串函數(shù),字符串檢索函數(shù) InStr(Start,Compare) Start和Compare都是可選參數(shù); 檢索Str2在字符串Str1中最早出現(xiàn)的位置,字符串中第一個字符的位置為1;,Dim str1, str2 As String Dim i As Integer str1 = ““ str2 = “ytu“ i = InStr(str1, str2) MsgBox i,1.11 常用標(biāo)準(zhǔn)函數(shù)字符串函數(shù),字符串長度函數(shù) Len() 返回字符串中所包含的字符的個數(shù),對于定長字符串來說,返回定義時的長度;,Dim str1 As String * 10 Dim str2 As String str1 = “abcd“ str2 = “abcd“ Dim i1, i2 As Integer i1 = Len(str1) i2 = Len(str2),1.11 常用標(biāo)準(zhǔn)函數(shù)日期/時間串函數(shù),Date 返回當(dāng)前系統(tǒng)日期 Time 返回當(dāng)前系統(tǒng)時間 Now 返回當(dāng)前系統(tǒng)日期和時間,Dim d As Date d = Now

溫馨提示

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

評論

0/150

提交評論