access
Download
Skip this Video
Download Presentation
進階資料處理 第十六章 淺談 Access 程式設計

Loading in 2 Seconds...

play fullscreen
1 / 45

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


  • 181 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about '進階資料處理 第十六章 淺談 Access 程式設計' - vinaya


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
slide2
大綱
  • 程式設計概念
  • 認識 Access 的 VBA 程式設計
  • SQL 語言
slide3
程式設計概念
  • 事件驅動
    • 當系統發生某件事情時(滑鼠、鍵盤被按下某個按鍵),才能夠驅動某一個程式模組執行動作
    • 依照使用者不同的動作做出相對的回應
  • 物件導向
    • 把所有的東西都當作物件(表單、報表、控制項)
    • 物件將他自己的屬性與動作封裝在物件內部,依照外在環境的變化做出適當的回應
    • 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 編輯器
slide9
基本的程式設計觀念
  • 程式執行的方式是由上而下,一行一行執行的
  • 每一行程式執行時,是由左到右執行的,執行完後就跳到下一行的開頭,再由左到右執行
  • 程式是一種電腦的語言,跟人的語言一樣有一定的文法和用字,而這些都是人創造出來與電腦溝通用的。
    • 程式裡面的特殊用字稱為『關鍵字』Keyword
    • 程式的文法稱為『語法』
slide10
VBA 變數宣告與資料型別
  • 變數
    • 類似數學裡面的『代數』
    • F(x)=3x2+4x+7
    • 為了敘述計算流程所使用的符號
    • 實際的計算結果端視程式執行時變數的『值』而定
  • 變數宣告的語法Dim 變數名稱 As 資料型別
    • 變數名稱不能夠與 VBA 的關鍵字相同
    • 不可以使用標點符號或空白,第一個字元不可以是數字,可以使用中文
    • 變數名稱的長度限制為 255 個字元
slide14
算數運算運算子
  • 加:+
  • 減:-
  • 乘:*
  • 除:/
  • 整數除法:\
    • 7 \ 2 = 3
  • 指數:^
    • 7 ^ 2 = 49
  • 取餘數:MOD
    • 7 MOD 2 = 1
slide15
連接運算子
  • 將兩個字串連接在一起
  • name & “您好!”
  • 也可以用 name + “您好!”
slide16
比較運算子
  • 等於: =
  • 大於: >
  • 小於: <
  • 大於等於: >=
  • 小於等於: <=
  • 不等於: <>
  • 比較兩物件是否相同: Is
    • A Is B
  • 比較兩物件是否相似: Like
    • “Jo*” Like “John”
slide18
常用符號
  • 指定
    • 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)
slide19
型別轉換
  • 在一個運算式之中混和不同型別的變數
  • 自動型別轉換
    • 原則:將精準度低的轉換成精準度高的
      • 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
slide20
型別轉換
  • 強制型別轉換
    • 轉成布林: CBool(運算式)
    • 轉成 Byte: CByte(運算式)
    • 轉成金錢: CCur(運算式)
    • 轉成日期: CDate(運算式)
    • 轉成十進位: CDec(運算式)
    • 轉成整數: CInt(運算式)
    • 轉成長整數: CLng(運算式)
    • 轉成單精度: CSng(運算式)
    • 轉成倍精度: CDbl(運算式)
    • 轉成字串: CStr(運算式)
slide21
流程控制判斷結構
  • If 條件式 Then程式區段一End If
  • If 條件式 Then程式區段一Else程式區段二End If
slide24
流程控制判斷結構
  • Select Case 運算式或變數Case 條件式一 程式區段一Case 條件式二 程式區段二…End Select
slide26
流程控制迴圈
  • 在條件的控制下重複執行某件工作
access1
Access 事件
  • 事件的發生觸發程式的執行
  • 事件的種類
    • 資料事件
    • 鍵盤事件
    • 錯誤與時間事件
    • 滑鼠事件
    • 篩選事件
    • 列印事件
    • 焦點事件
    • 視窗事件
slide34
類別模組使用範例由事件觸發程序
  • 在表單 OnClose 事件加掛一個類別模組,於表單關閉時蹦出對話方塊,確認表單關閉。
  • vbOK, vbCancel, vbOKCancel 常數
  • 以 DoCmd 物件方法執行巨集指令
  • 範例:ex3-2.mdb
slide37
自訂事件
  • 自訂一個 MyTimer 物件類別模組
    • 每一秒鐘發出一次 Second 事件
    • 倒數完成發出 TimeIsUp 訊息
  • 範例 ex3-4.mdb
  • Private Sub Class_Initialize() 物件被建立時發生
  • Private Sub Class_Terminate() 物件被毀滅時發生
slide38
類別模組使用範例存取表單屬性與控制項
  • Me 指表單自己
  • Me![控制項]
  • Me.屬性名稱
  • Me![控制項].屬性名稱
    • Me![Text1].Name
  • 範例:ex3-2-5.mdb
slide40
類別模組自訂屬性
  • 用 Dim、Public、Private 定義屬性
  • 用 Property Get 撰寫取得屬性值的方法
    • Property Get 屬性名稱() As 屬性資料型態…屬性名稱 = 屬性值[Exit Property] …End Property
  • 用 Property Let 或 Property Set 設定屬性值
    • Property Let 只能設定資料型態的屬性,不能設定物件型態的屬性
slide41
類別模組自訂屬性
  • Property Let 屬性名稱(傳入參數 As 資料型態) … [Exit Property] …End Property
  • Property Set 屬性名稱(傳入參數 As 資料型態) … [Exit Property] …End Property
slide42
標準模組
  • 標準模組
    • 物件\模組 之中的模組
  • 建立自訂函數
    • 範例:在報表之中使用自訂函數,顯示國字的數字
slide43
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

slide44
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

slide45
SQL 語言
  • Structural Query Language
  • 結構化查詢語言
  • 以統一的語法存取資料庫
ad