Access
This presentation is the property of its rightful owner.
Sponsored Links
1 / 45

進階資料處理 第十六章 淺談 Access 程式設計 PowerPoint PPT Presentation


  • 131 Views
  • Uploaded on
  • Presentation posted in: General

進階資料處理 第十六章 淺談 Access 程式設計. 鄧姚文 [email protected] http://w3.im.knu.edu.tw/~joseph. 大綱. 程式設計概念 認識 Access 的 VBA 程式設計 SQL 語言. 程式設計概念. 事件驅動 當系統發生某件事情時(滑鼠、鍵盤被按下某個按鍵),才能夠驅動某一個程式模組執行動作 依照使用者不同的動作做出相對的回應 物件導向 把所有的東西都當作物件(表單、報表、控制項) 物件將他自己的屬性與動作封裝在物件內部,依照外在環境的變化做出適當的回應

Download Presentation

進階資料處理 第十六章 淺談 Access 程式設計

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Access

進階資料處理第十六章 淺談Access程式設計

鄧姚文

[email protected]

http://w3.im.knu.edu.tw/~joseph


Access

大綱

  • 程式設計概念

  • 認識 Access 的 VBA 程式設計

  • SQL 語言


Access

程式設計概念

  • 事件驅動

    • 當系統發生某件事情時(滑鼠、鍵盤被按下某個按鍵),才能夠驅動某一個程式模組執行動作

    • 依照使用者不同的動作做出相對的回應

  • 物件導向

    • 把所有的東西都當作物件(表單、報表、控制項)

    • 物件將他自己的屬性與動作封裝在物件內部,依照外在環境的變化做出適當的回應

    • DAO: Data Access Object

      • 將資料包裝成物件


Access vba

認識 Access 的 VBA 程式設計

  • VBA

    • Visual Basic for Application

    • Microsoft 自 Office97 開始推出 VBA

    • 以 VBA 控制 Office 套件中所有的元件,整合各種應用程式(Word、Excel、Access、PowerPoint)

  • VBE

    • Visual Basic Editor

    • 內建於 Office 套件中的 VBA 編輯器


Hello world vba step1

Hello World!您的第一個 VBA 程式,Step1


Step2

Step2


Step 3

Step 3


Step 4

Step 4


Access

基本的程式設計觀念

  • 程式執行的方式是由上而下,一行一行執行的

  • 每一行程式執行時,是由左到右執行的,執行完後就跳到下一行的開頭,再由左到右執行

  • 程式是一種電腦的語言,跟人的語言一樣有一定的文法和用字,而這些都是人創造出來與電腦溝通用的。

    • 程式裡面的特殊用字稱為『關鍵字』Keyword

    • 程式的文法稱為『語法』


Access

VBA 變數宣告與資料型別

  • 變數

    • 類似數學裡面的『代數』

    • F(x)=3x2+4x+7

    • 為了敘述計算流程所使用的符號

    • 實際的計算結果端視程式執行時變數的『值』而定

  • 變數宣告的語法Dim 變數名稱 As 資料型別

    • 變數名稱不能夠與 VBA 的關鍵字相同

    • 不可以使用標點符號或空白,第一個字元不可以是數字,可以使用中文

    • 變數名稱的長度限制為 255 個字元


Access

資料型別數值類


Access

資料型別


Hello world inputbox

Hello World! 第二版使用 InputBox 取得輸入


Access

算數運算運算子

  • 加:+

  • 減:-

  • 乘:*

  • 除:/

  • 整數除法:\

    • 7 \ 2 = 3

  • 指數:^

    • 7 ^ 2 = 49

  • 取餘數:MOD

    • 7 MOD 2 = 1


Access

連接運算子

  • 將兩個字串連接在一起

  • name & “您好!”

  • 也可以用 name + “您好!”


Access

比較運算子

  • 等於:=

  • 大於:>

  • 小於:<

  • 大於等於:>=

  • 小於等於:<=

  • 不等於:<>

  • 比較兩物件是否相同:Is

    • A Is B

  • 比較兩物件是否相似:Like

    • “Jo*” Like “John”


Access

邏輯運算子


Access

常用符號

  • 指定

    • A = 2^10

    • A = A + 1

  • 註解

    • A = A + 1‘ 將變數 A 的值加 1

  • 字串符號

    • name = “Joseph”

  • 日期符號

    • today = #2003/5/23#

  • 接續下一行(使用底線符號)

    • x = (y^4 + 4*y^3 – 3*y^2 + 2*y) / _ (2*z^3 + 3*z^2)


Access

型別轉換

  • 在一個運算式之中混和不同型別的變數

  • 自動型別轉換

    • 原則:將精準度低的轉換成精準度高的

      • Dim x As Integer, y As Double, z As Doublex = 2y = 3.5z = x + y‘ 將x轉成Double後與y相加

    • 浮點數轉成整數會四捨五入

      • Dim x As Integer, y As Doubley = 2.5x = y‘ x 的值為 3


Access

型別轉換

  • 強制型別轉換

    • 轉成布林: CBool(運算式)

    • 轉成 Byte: CByte(運算式)

    • 轉成金錢: CCur(運算式)

    • 轉成日期: CDate(運算式)

    • 轉成十進位: CDec(運算式)

    • 轉成整數: CInt(運算式)

    • 轉成長整數:CLng(運算式)

    • 轉成單精度:CSng(運算式)

    • 轉成倍精度:CDbl(運算式)

    • 轉成字串: CStr(運算式)


Access

流程控制判斷結構

  • If 條件式 Then程式區段一End If

  • If 條件式 Then程式區段一Else程式區段二End If


Access

流程控制判斷結構

  • Select Case 運算式或變數Case 條件式一程式區段一Case 條件式二程式區段二…End Select


Access

流程控制迴圈

  • 在條件的控制下重複執行某件工作


Access1

Access 事件

  • 事件的發生觸發程式的執行

  • 事件的種類

    • 資料事件

    • 鍵盤事件

    • 錯誤與時間事件

    • 滑鼠事件

    • 篩選事件

    • 列印事件

    • 焦點事件

    • 視窗事件


Access

資料事件


Access

資料事件


Access

視窗事件


Access

類別模組使用範例由事件觸發程序

  • 在表單 OnClose 事件加掛一個類別模組,於表單關閉時蹦出對話方塊,確認表單關閉。

  • vbOK, vbCancel, vbOKCancel 常數

  • 以 DoCmd 物件方法執行巨集指令

  • 範例:ex3-2.mdb


Access

自訂事件

  • 自訂一個 MyTimer 物件類別模組

    • 每一秒鐘發出一次 Second 事件

    • 倒數完成發出 TimeIsUp 訊息

  • 範例 ex3-4.mdb

  • Private Sub Class_Initialize() 物件被建立時發生

  • Private Sub Class_Terminate() 物件被毀滅時發生


Access

類別模組使用範例存取表單屬性與控制項

  • Me 指表單自己

  • Me![控制項]

  • Me.屬性名稱

  • Me![控制項].屬性名稱

    • Me![Text1].Name

  • 範例:ex3-2-5.mdb


Access

類別模組自訂屬性

  • 用 Dim、Public、Private 定義屬性

  • 用 Property Get 撰寫取得屬性值的方法

    • Property Get 屬性名稱() As 屬性資料型態…屬性名稱 = 屬性值[Exit Property]…End Property

  • 用 Property Let 或 Property Set 設定屬性值

    • Property Let 只能設定資料型態的屬性,不能設定物件型態的屬性


Access

類別模組自訂屬性

  • Property Let 屬性名稱(傳入參數 As 資料型態)…[Exit Property]…End Property

  • Property Set 屬性名稱(傳入參數 As 資料型態)…[Exit Property]…End Property


Access

標準模組

  • 標準模組

    • 物件\模組 之中的模組

  • 建立自訂函數

    • 範例:在報表之中使用自訂函數,顯示國字的數字


Access

Public Function CnConvert1(number As Integer) As String

If (IsNull(number)) Then

MsgBox "錯誤:傳入值為負值或傳入Null值"

Else

Select Case number

Case 0

CnConvert1 = "零"

Case 1

CnConvert1 = "壹"

Case 2

CnConvert1 = "貳"

Case 3

CnConvert1 = "參"

Case 4

CnConvert1 = "肆"

Case 5

CnConvert1 = "伍"

Case 6

CnConvert1 = "陸"

Case 7

CnConvert1 = "柒"

Case 8

CnConvert1 = "捌"

Case 9

CnConvert1 = "玖"

End Select

End If

End Function

Ex3-3.mdb


Access

Public Function CnConvert(number As Long) As String

Dim number_string As String

Dim number_len As Integer

Dim result As String

Dim i As Integer

result = ""

number_string = CStr(number)

number_len = Len(number_string)

If (number_len > 7) Then

MsgBox "數字過大無法轉換"

GoTo line

End If

For i = 1 To number_len

Select Case i

Case 1

result = CnConvert1(number Mod 10) + " 元整" + result

Case 2

result = CnConvert1((number Mod 100) \ 10) + " 拾 " + result

Case 3

result = CnConvert1((number Mod 1000) \ 100) + " 佰 " + result

Case 4

result = CnConvert1((number Mod 10000) \ 1000) + " 仟 " + result

Case 5

result = CnConvert1((number Mod 100000) \ 10000) + " 萬 " + result

Case 6

result = CnConvert1((number Mod 1000000) \ 100000) + " 拾 " + result

Case 7

result = CnConvert1((number Mod 10000000) \ 1000000) + " 佰 " + result

End Select

Next

CnConvert = result

line:

End Function

Ex3-3.mdb


Access

SQL 語言

  • Structural Query Language

  • 結構化查詢語言

  • 以統一的語法存取資料庫


  • Login