iT邦幫忙

2017 iT 邦幫忙鐵人賽
DAY 3
2
自我挑戰組

Access VBA的眉眉角角系列 第 3

Access VBA 的眉眉角角Day3: 關於流程控制與資料處理

  • 分享至 

  • xImage
  •  

一般程式設計時,多多少少都會用到流程控制,不外乎就是For..Next、While..Wend、Do…Loop等,而這些在VBA上也都有,當處理Access的資料時,是非常有用的,筆者較為習慣使用Do…Loop的方式處理資料,其常用的語法如下:

Sub 遍歷資料示範()

'使用SQL語法查詢所需資料
strSQL = "" & _
"SELECT A.* " & vbCrLf & _
"FROM InventoryOfProperty AS A " & vbCrLf & _
"WHERE (((A.STATUS_ID)=4)) " & vbCrLf & _
"ORDER BY A.CATEGORY; "

'使用OpenRecordset方式將資料提出
Set m = CurrentDb.OpenRecordset(strSQL)

'如果有資料存在
If m.EOF = False Then
    '處理方式
    
    '列出資料筆數於Debug視窗
    m.MoveLast
    Debug.Print "資料筆數:" & m.RecordCount & "筆"
    '切到第一筆資料
    m.MoveFirst
    Do
        '處理此筆資料
        Debug.Print m("CATEGORY") & ": " & m("MARK") & "/" & m("MODEL") _
                    & "/" & m("TYPE") & "(" & m("S/N") & ")"
        '切到下一筆資料,然後再處理資料
        m.MoveNext
    '直到沒有資料存在
    Loop Until m.EOF

'如果沒有資料存在
Else
    '處理方式
    
    Debug.Print "無資料!"

End If

End Sub

以上的方式,於Do…Loop中,還可以再使用If等判斷式,來進行不同處理方式,亦可於Do…Loop中帶出變數,再套用到另一個OpenRecordset的SQL語句中,帶出另外的查詢資料,再使用另外的Do…Loop方式來處理新的查詢資料,以此方式來達到處理多個查詢資料的需求,各位可以依照自已的需求來進行調整,以上範例供各位參考。


上一篇
Access VBA 的眉眉角角Day2: 使用「查詢」產生SQL語法
下一篇
Access VBA 的眉眉角角Day4: 將SQL語法放入VBA中使用
系列文
Access VBA的眉眉角角30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言