• 沒有找到結果。

第 18 章 ADO 程式設計

N/A
N/A
Protected

Academic year: 2021

Share "第 18 章 ADO 程式設計"

Copied!
1
0
0

加載中.... (立即查看全文)

全文

(1)

18 章 ADO 程式設計

Access 資料庫應用系統內,可以使用 ADO 物件來處理資料庫,若 ADO 物件搭配 MyODBC 驅動程式,則可以在 Access 內直接與 MySQL 連線並處理資料。為了方便讀者自行在Access 內處理 MySQL 資料庫,本章 將介紹ADO 物件操作資料庫之常用方法與程式設計技巧,範例程式請參閱 acsMySQL 資料庫。

18-1 ADO 簡介 18-1-1 ADO 基礎

ADO 為 Activex Data Object 之縮寫字,它提供系統發展人員許多強而 有力的工具,透過微軟之OLEDB 系統介面,可直接存取、編輯和更新來至 於各式各樣的資料源。ADO 之用途簡述如下:

 使用 SQL 指令操作資料庫

 透過 Internet 存取遠端資料

 操作郵件系統之信息

 將資料庫資料轉存為 XML 格式資料

 存取 XML 格式資料

 檢視和更新資料表內資料

 執行參數式查詢

 執行預儲程序(Stored Procedures)

 建立暫存表來處理過渡資料

 執行交易處理

 以動態模式過濾和排序資料

 以離線方式處理遠端資料 18-1-2 前置處理

執行 ADO 物件方法時,必須先將 ADO 物件方法引入在程序檔內,引 用方法簡述如下:

 任選一個表單,將選用表單開啟在設計模式

 點取主功能表之【檢視】→【程式碼】,將設計介面切換至程式編輯畫面。

 點取主功能表之【工具】→【引用程式項目】,開啟【引用項目】選用方塊,

如圖18-1 所示。

 請 捲 動 垂 直 捲 軸 , 分 別 選 取 【 Microsoft DAO 3.6 Object Library 】 、

Microsoft ActiveX Data Object 2.7 Library 】 及 【 Microsoft DataGrid Control 6.0】。

(2)

 點取【優先權】移動鍵,將【Microsoft DAO 3.6 Object Library】移至無法 再行變更之位置,將【Microsoft ActiveX Data Object 2.7 Library】移至

【Microsoft DAO 3.6 Object Library】後端。

 點取【確定 】,結束引用項目工作畫面。

18-1 引用項目工作畫面 18-2 ADO 指令簡介

18-2-1 資料庫連線

ADO 與其它資料庫連結時,可以使用下列兩種方式,可以指定在伺服 端或主控端處理資料,本章只說明第一種連線之語法。

 直接以連線物件連結(ADODB.Connection)

 透過 DSN 來連線

為了方便各個應用程式介面共用開啟之連線,可在模組介面新增一個 模組,系統自動取名為“Module1”。在 Module1 內建立一組專屬連線用之程 序或函數,相關程式碼詳述如后。本章引述程式碼時,程式碼內以單引號前 導之字串均屬註解,讀者在編輯指令時,可加以省略。

1. 在 Module1 模組開頭宣告共用變數

Public adCon As New ADODB.Connection ‘宣告公用連線物件變數 Public adRs As New ADODB.Recordset ‘宣告公用紀錄集物件變數

(3)

2. 檢查連線物件狀態

Public Sub checkCon(i As Integer) On Error GoTo chkcon_err:

If i = 1 Then ‘傳入 1 表示要開啟連線,0 表示要關閉連線

If Not adCon.state = adStateOpen Then Call openCon() ‘開啟連線 Else

Call closeCon ‘關閉連線 End If

Exit Sub chkcon_err:

MsgBox Err.Description ‘提示連線錯誤說明 End Sub

3. 開啟連線公用程序 Public Sub openCon()

On Error GoTo opnCon_err_end:

Dim cn_str As String

cn_str = DRIVER = {MySQL ODBC 3.51 Driver};" & _ "SERVER = localhost;" & _

" DATABASE = mysal;" & _

"User = 帳號; Password = 密碼; OPTION=3"

‘以上為設定連線字串,帳號及密碼請填入有經 MySQL 授權之對應字串 If Not adCon.state = adStateOpen Then

adCon.CursorLocation = adUseClient adCon.ConnectionString = cn_str adCon.Open ‘開啟連線

End If Exit Sub

opnCon_err_end:

MsgBox Err.Description End Sub

註:adUseClient 係將游標控制權設定在主控端,若使用adUseServer 則在伺 服端,可用於宣告公用連線。由於MyODBC 對 ADO 物件部份指令不 支援,因此MySQL 發行公司建議用戶採用 adUseClient。

4. 關閉連線公用程序 Public Sub closeCon()

(4)

If adCon.state = adStateOpen Then

adCon.Close ‘若為開啟狀態,則關閉連線 Set adCon = Nothing

End If End Sub

18-2-2 開啟紀錄集

1. 指令語法

紀錄集物件變數.Open 參數一,參數二,參數三,參數四 其中

紀錄集物件變數:預存記錄變數 Open:ADO 開啟物件方法

參數一:SQL 指令,通常是由 Select 前導之敘述,

參數二:已開啟之連線物件變數,

參數三:紀錄集開啟模式,可選項之常數如表18-1 所示,

參數四:讀寫模式,選項常數如表18-2 所示。

18-1 紀錄集開啟模式常數表

模式選項常數 特性與用法

adOpenForwardOnly 紀錄只能往前捲動,不能倒捲 用於只瀏覽但不修改資料

adOpenStatic 紀錄可以前後捲動,可開啟為唯讀或讀寫模式

不反應同一紀錄集其他使用者所作之資料變更,

adOpenKeyset 此特性介於Static 和 Dynamic 之間,適用於大型紀 錄集但只有少數紀錄符合鍵值條件時;可偵測游標 控制權內之紀錄變更,但無法正確反映其原來之順 序;他人所作之變更也無法偵測,除非重新開啟記 錄集

adOpenDynamic 所有紀錄之變更均能立即偵測,但是連線物件設為

交易模式時,他人所作之變更,必須在執行 Commit 指令之後才能偵測得知

18-2 讀寫模式常數表

模式選項常數 特性與用法

(5)

adLockReadOnly 不允許資料更新

adLockBatchOptimistic 批次更新,允許離線處理資料,允許他人同步存 取資料;下達BatchUpdate 指令後,資料才加以鎖

adLockPessimistic 資料鎖定後,他人無法更新;下達Edit 指令後,

資料即鎖定

adLockOptimistic 允許他人更新資料;下達Edit 指令時,資料不鎖 定,等到下達Update 指令資料才被鎖定

2. 開啟紀錄集公用程序

Public Function openRs(rstr As String) AS ADODB.Recordset

‘宣告開啟紀錄集函數,接收參數為 SQL 字串,回傳資料設為紀錄集物

On Error Goto openRs_err

If adRs.state = adStateOpen Then adRS.Close

‘將前次開啟之紀錄集物件關閉

adRs.Open rstr, adCon, adOpenDynamic, adLockBatchOptimistic

‘開啟紀錄集

adRs.MarshalOptions = adMarshalModifiedOnly Set adRs.ActiveConnection = Nothing ‘將紀錄離線 Set openRs=adRS ‘傳回開啟之紀錄集

Exit Function openRS_er:

. Msgbox Err.Description End Function

註:將紀錄集離線,資料置於主控端處理,如此可減輕伺服器之負荷。離線 之紀錄集隨時都可以重新連線,連線指令為:

Set adRs.ActiveConnection =adCon 3. 關閉紀錄集

Public Sub closeRs()

If adRs.state = adStateOpen Then

adRs.Close ‘若紀錄集仍開啟,則予以關閉 Set adRs = Nothing

End If End Sub

18-2-3 資料處理

(6)

為方便介紹資料處理指令,請讀者仿照圖18-2 建立一個表單,表單取 名為客戶資料登錄作業,在表單內分別加入八個文字方塊及五個指令按鈕,

物件名稱可以介面提示文字同名。

18-2 ADO 資料處理範例表單 以下介紹以ADO 處理資料之程序和指令:

1. 連線及開啟資料表

搭配表單之On Open 事件程序,指令如下:

Private Sub Form_Open(Cancel As Integer) Dim str As String

Call checkCon(1) ‘檢查是否已連線

str = ”Select * From cuinfo” ‘設定紀錄集 SQL 指令 Call openRs(str) ‘開啟紀錄集

End Sub

關閉表單時,搭配On Close 事件程序將資料寫回伺服端,指令如下:

Private Sub Form_Close() adRs.Filter = "" ‘將過濾器關閉

Set adRs.ActiveConnection = adCon ‘重新連線

adRs.Filter = adFilterPendingRecords ‘將過濾器設為被異動部份 adRs.UpdateBatch ‘寫回異動紀錄

adRs.Close ‘關閉紀錄集 Set adRs = Nothing

End Sub 2. 新增紀錄

(7)

2.1 指令:adRs.Addnew ……adRs.Update

2.2 實作:搭配按鈕【新增 】之 On Click 事件程序,指令如下:

With adRs

.AddNew ‘新增空白紀錄

!CU_No = Me!CU_No ‘將控制項資料存入紀錄 ……….’處理其它欄位

.Update ‘將紀錄寫入記憶體紀錄集 End With

3. 查詢紀錄

3.1 搜尋記錄指令語法

指令語法:紀錄集‧Filter = “比對欄位” “關係運算子” “比對條件”

其中

關係運算子:可指定為=、>=、<=,或<>(表示不等於);

比對條件:屬字串型資料時,須在資料前後加上引號;若屬日期型資料 , 須在資料前後加上#符號;數值型資料則可以直接串接。

範例:adRs.Filter = "CU_No ='" & Me!CU_No & "'"

判斷未找到紀錄:adRs.EOF。

在搜尋記錄前,最好先執行adRs.Filter=””(或是 adRs.Filter =

adFilterNone),將前一次過濾條件解除,否則會將前一次之搜尋結果當資 料來源,因而造成部分資料漏失。使用Filter 方法時,可搭配表 18-3 之常數 來過濾資料。

18-3 Filter 方法過濾結果常數表

常數選項 說 明

adFilterAffectedRecords 選出最近異動過之紀錄,包括以刪除、批次更新、

取消更新處理過之紀錄

adFilterConflictingRecords 選出最近以批次更新處理失敗之紀錄 adFilterFetchedRecords 選出最近被置於快取之紀錄

adFilterNone 許消最近使用之過濾條件並回複所有記錄

adFilterPendingRecords 取出最近被異動但尚未寫回伺服端之記錄,必須 搭配批次更新指令

3.2 實作

搭配按鈕【查詢 】之On Click 事件程序,指令如下 Private Sub 查詢_Click()

(8)

adRS.Filter = “CU_No = ‘” & Me![CU_No] & “’” ‘設定過濾條件 If adRS.EOF Then

MsgBox "未找到該筆紀錄"

Else

Me!CU_No = adRs!CU_No ‘將欄位資料寫入控制項 ………….’(加入其他欄位)

End If End Sub 3.3 說明

查詢紀錄時,先在表單之CU_No 文字方塊輸入查詢條件,然後按下

【查詢 】按鈕,若找到紀錄則立即顯示在表單上,否則提示「未找到該筆紀錄」

4. 刪除記錄 4.1 指令語法

adRs.Delete 4.2 實作

搭配按鈕【刪除 】之On Click 事件程序,指令如下:

Private Sub 刪除 _Click() Dim rps

Dim Style

Style = vbYesNo + vbCritical + vbDefaultButton2 rps = MsgBox("刪除紀錄嗎?", Style, "刪除紀錄") If rps = vbYes Then

adRs.Delete End If End Sub 5. 修改/儲存紀錄 5.1 指令語法

adRs.Update 5.2 實作

搭配表單按鈕【儲存 】之On Click 事件程序,指令如下:

(9)

Private Sub 儲存_Click()

adRs.Filter = "" ‘清除過濾條件

adRs.Filter = "CU_No ='" & Me!CU_No & "'" ‘設定過濾條件 If Not adRs.EOF Then ‘若找到該類紀錄

With adRs

!CU_No = Me!CU_No ‘將控制項資料寫回欄位 ……….’處理其它藍欄位 .Update ‘更新紀錄

End With End If End Sub 5.3 說明

當需要編輯或修改特定紀錄時,必須先查詢紀錄,找到記錄後再加以 編輯,然後按【儲存 】鈕,將紀錄存檔。前述之儲存動作,乃將編輯結果儲存 在主控端之紀錄集內,實際上伺服端還是保持原來的資料。

6. 更新記錄 6.1 指令語法

adRs.UpdateBatch 6.2 實作

搭配【更新 】按鈕之On Click 事件程序,指令如下:

Private Sub 更新_Click()

adRs.Filter = "" ‘取消過濾條件 Set adRs.ActiveConnection = adCon ‘重新連線

adRs.Filter = adFilterPendingRecords ‘設定過濾條件為被異動之紀錄 adRs.UpdateBatch ‘更新紀錄

Set adRs.ActiveConnection =Nothing ‘離線 End Sub

6.3 說明

若資料已更新,臨時反悔而要放棄已更新結果,可搭配adRs.CancelBatch 指令,即可將最近一次以UpdateBatch 更新之紀錄放棄更新。

18-2-4 批次更新、轉檔及刪除

(10)

本節介紹之程序範例,讀者可在表單內加入一個指令按鈕,然後將相關指令 加入該指令按鈕之On Click 事件程序內。

1. 直接在連線物件執行 SQL 指令

指令語法:adCon.Execute SQL 指令

範例:以銷貨金額轉應收帳為例,更新資料指令如下:

Dim str AS String

str=” Select spbill.SP_Blno, spbill.CU_No, splist.PD_No, splist.SP_Qty,” & _

“cuquoat.UN_Price, splist!SP_Qty*cuquoat!UN_Price AS Amount, “ & _

“splist.TR_Note FROM cuquoat Inner Join (spbill Inner Join splist ON “ & _

“spbill.SP_Blno = splist.SP_Blno) ON (cuquoat.CU_No = spbill.CU_No) “ &

_ “ AND (cuquoat.PD_No = splist.PD_No);”

adCon.Execute str 2. 搭配交易處理方法

adCon.BeginTrans ‘開啟一個交易程序 adCon.Execute str ‘執行資料更新交易 adCon.CommitTrans ‘確認交易結果

若交易過程發生錯誤,需要將所有記錄捲回原來狀態,則需搭配下列指 令:

On Error Goto Tran_err:

adCon.BeginTrans adCon.Execute str adCon.CommitTrans Exit Sub

Tran_err:

adCon.RollBackTrans ‘捲回起始狀態 3. 使用紀錄集操作方法

仍以銷貨金額轉應收帳為例,使用ADO 物件紀錄集操作指令如下:

Dim rs1 As New ADODB.Recordset, rs2 As New ADODB.Recordset Dim str1 As String, str2 As String, cu AS String

str1=” Select spbill.SP_Blno, spbill.CU_No, splist.PD_No, splist.SP_Qty,” & _

“cuquoat.UN_Price, splist!SP_Qty*cuquoat!UN_Price AS Amount, “ & _

“splist.TR_Note FROM cuquoat Inner Join (spbill Inner Join splist ON “ & _

“spbill.SP_Blno = splist.SP_Blno) ON (cuquoat.CU_No = spbill.CU_No) “ & _

“And (cuquoat.PD_No = splist.PD_No) Where (((splist.TR_Note) Is Null)) ” & _

(11)

“ Order By spbill.CU_No;”

‘設定以關聯方式連結兩個紀錄集之 SQL 指令

rs1.Open str1, adCon, adOpenDynamic, adLockBatchOptimistic

’開啟異動紀錄集

rs1.MarshalOptions = adMarshalModifiedOnly Set rs1.ActiveConnection = Nothing

str2 = “Select * From rcpay Order By CU_No;”

rs2.Open str2, adCon, adOpenDynamic, adLockBatchOptimistic

‘ 開啟主控紀錄集

rs2.MarshalOptions = adMarshalModifiedOnly Set rs2.ActiveConnection = Nothing

With rs1

Do While Not .EOF

cu=!CU_No ‘取出異動紀錄集鍵值 With rs2

.Filter=””

.Filter = “CU_No = ‘” & cu & “’” ’搜尋主控紀錄集合乎鍵值之紀錄 If Not .EOF Then

!CR_Spamt = !CR_Spamt + rs1!Amount

‘將異動檔資料以累加方式轉入主控檔 !CR_Upamt =!CR_Upamt + rs1!Amount

.Update ‘更新紀錄

rs1!TR_Note = ‘T’ ‘異動檔加上轉檔註記 rs1.Update

End If End With

.MoveNext ‘異動檔紀錄指標下移一筆 Loop

End With

rs1.Filter = "" ‘取消過濾條件 Set rs1.ActiveConnection = adCon ‘重新連線

rs1.Filter = adFilterPendingRecords ‘過濾條件設為異動未寫回部份 rs1.UpdateBatch ‘更新紀錄

rs2.Filter = ""

Set rs2.ActiveConnection = adCon rs2.Filter = adFilterPendingRecords rs2.UpdateBatch

. rs1.Close ‘關閉紀錄集

(12)

. rs2.Close

18-2-5 紀錄及欄位操作指令說明

1. 搜尋紀錄指令:adRs.Filter

指令語法:紀錄集‧Filter = “比對欄位” “關係運算子” “比對條件”

說明:使用方法見前節說明。

2. 移動紀錄指令

移次筆,語法:adRs.MoveNext 移上筆,語法:adRs.MovePrevious 第一筆,語法:adRs.MoveFirst 最末筆,語法:adRs.MoveLast

前述指令通常須搭配迴圈指令來使用,指令語法為:

Do While Not adRs.EOF ………..Loop ‘若還未至檔案末端 Do While Not adRs.BOF ………..Loop ‘若還未至檔案前端 3. 計算紀錄筆數

語法:adRs.RecordCount,回傳結果為長整數。

應用範例:If adRs.RecordCount = 0 ‘表示資料表無任何紀錄 4. 計算欄位數

語法:adRs.Fields.Count,回傳結果為整數,通常可搭配 For 迴圈使用。

應用範例:

For i =0 To adRs.Fields.Count – 1 adRs(i) = 資料處理指令

Next i

5. 欄位資料處理

可選用下列任意型式:

 指定欄名:adRs (“欄名”),adRs.Fields(“欄名”),adRs.Fields.Item(“

欄名”) 皆可。

 指定欄序:adRs (i),adRs.Fields (i),adRs.Fields.Item(i),i 從 0 起算。

 取出欄值

範例: 變數=adRs(i),或 adRs!欄名

 存回欄值

範例: adRs(i)=變數,或 adRs!欄名=變數

 搭配 For 迴圈取出每個欄位資料

(13)

For i = 0 To adRs.Fields.Count – 1 變數=adRs(i)

………..

Next i 6. 取得欄名

語法:adRs(i).Name

18-3 DataGrid 物件簡介 18-3-1 DataGrid 物件應用

ADO 物件可以搭配 DataGrid 物件,直接瀏覽伺服端的紀錄集資料。設 計應用程式介面時,可在表單內插入一個DataGrid 控制項,然後將開啟的紀 錄集連結至此控制項,即可瀏覽整個紀錄集的資料。以下以一個ADO 泛用查 詢表單為例,說明DataGrid 物件之引用方式和相關指令語法。

1. 首先建立一個取名為【DBGrid 應用表單】之表單,依序加入下列控制項。

2. 組合方塊一:取名為 tblDa,標籤抬頭提示為【資料表】。

3. 組合方塊二:取名為 qrySQL,標籤抬頭提示為【SQL】。

實 際 應 用 時 , 可 在 此 方 塊 內 輸 入 前 導 字 元 為 “Select” 、 “ Show” 或

“Describe”之 SQL 指令。

4. 指令按鈕一:取名為 tblCmd,標籤抬頭提示為【查閱資料表】。

5. 指令按鈕二:取名為 qryCmd,提示抬頭為【查閱 SQL】。

6. DataGrid 控制項:取名為 dtlData,加入方式如下:

點選主功能表之【插入】、【ActiveX 控制項(c)】

下拉【ActiveX 控制項】選項功能表,點選【Microsoft DataGrid Control, Version 6.0】,如圖 18-3 所示,然後按【確定】。

7. 當表單出現 DataGrid 控制項後,請以滑鼠調整控制項大小至適當尺寸,

將控制項取名為dtlData。

(14)

18-3 DataGrid 控制項引用示意圖

8. 點開【表單】事件屬性之 On Open 程序編輯視窗,加入下列指令,此程序 用於開啟連線物件,以及指定資料表組合方塊之資料來源。

Private Sub Form_Open(Cancel As Integer) Call checkCon(1)

Dim tst As String

tstr = "Show Tables From mysal”

‘設定顯示 mysal 資料庫之資料表 SQL 指令

adRs.Open tstr, adCon, adOpenStatic, adLockBatchOptimistic

‘以紀錄集型式擷取伺服端回傳結果 tstr = ""

With adRs

Do While Not .EOF If tstr = "" Then tstr = adRs (0)

‘回傳結果之第一個欄位內含資料表名,可將資料表名組成字串,資 料表間須以“;”間隔

Else

tstr = tstr & ";" & adRs(0) End If

.MoveNext Loop

End With

tblDa.RowSourceType = "Value List"

‘tblDa 控制項資料來源型式設為值清單,若來源為資料表,則"Value List" 須改為"Table/Query"

tblDa.RowSource = tstr ‘tblDa 控制項資料來源設為資料表字串 End Sub

9. 點開【查閱資料表 】事件屬性之 On Click 程序編輯視窗,加入下列指令:

Private Sub tblCmd_Click()

(15)

Dim str As String

If IsNull(tblDa) Then Exit Sub ‘假如未選入資料表名則跳離 str = "Select * From " & Me!tblDa & ";" ‘組合 SQL 指令

Call openRs(str) ‘開啟紀錄集

Set dtlData.DataSource = adRs ‘dtlData 物件資料來源設為紀錄集 End Sub

10. 點開【查閱 SQL 】事件屬性之 On Click 程序編輯視窗,加入下列指令:

Private Sub qryCmd_Click() Dim str As String

If IsNull(qrySQL) Then Exit Sub ‘假如未輸入 SQL 指令則跳離 str = Me!qrySQL ‘取出 SQL 指令

Call openRs(str)

Set dtlData.DataSource = adRs End Sub

11. 點開【表單】事件屬性之 On Close 程序編輯視窗,然後加入下列指令,此程序用 於關閉紀錄集。

Private Sub Form_Close(Cancel As Integer) adRs.Close

End Sub

12. 完成之表單介面如圖 18-4 所示。

(16)

18-4 ADO 應用表單測試結果

18-3-2 DataGrid 屬性說明

DataGrid 控制項常用屬性說明如下:

1. DataSource:設定連結資料來源

語法:Set 控制項物件名稱.DataSource = 紀錄集物件 2. Columns:控制項欄位集合

語法:控制項物件名稱.Columns(i),i 從 0 起算。

3. Columns(i).Value:控制項欄位資料

取值:變數=控制項物件名稱.Columns(i).Value 存值:控制項物件名稱.Columns(i).Value=變數 4. Columns(i).Width:控制項欄位寬度

語法:控制項物件名稱.Columns(0).Width=230(以 twis 為單位)

連結MySQL 紀錄集時,可使用下列指令來調整適當的欄寬:

控制項物件名稱.Columns(i).Width = adRs(i).DefinedSize * 38 註:38 為倍率。

5. Columns(i).Caption:控制項欄位抬頭

語法:控制項物件名稱.Columns(0).Caption=”客戶編號”

6. HeadFont.Size:控制項欄位抬頭字體大小 語法:控制項物件名稱.HeadFont.Size =10 7. Font.Size:控制項欄位資料字體大小

語法:控制項物件名稱.Font.Size = 10

(17)

8. AllowAddNew/ AllowDelete/ AllowUpdate:允許新增/刪除/更新 語法:控制項物件名稱.AllowAddNew = True

控制項物件名稱.AllowDelete = False 9. AllowArrows:方向鍵移動屬性

語法:控制項物件名稱.AllowArrows = True|False 設為True,允許以方向鍵在欄位間或紀錄間移動 設為False,方向鍵用於控制項之移動

10. WrapCellPointer:方向鍵移動捕捉屬性

語法:控制項物件名稱.WrapCellPointer = True|False 設為True,方向鍵在控制項內之紀錄間移動

設為False,方向鍵無法在上下紀錄間移動 11. TabAction:Tab 鍵屬性

語法:控制項物件名稱.TabAction = 0|1|2

設為0(dbgControlNavigation),Tab 鍵用於控制項之移動)

設為1(dbgColumnNavigatio) ,Tab 鍵用於欄位間移動,當移動會造成 紀錄改變時,則移至下一個控制項。

設為2(dbgGridNavigation) ,和 1 類似,但有設定 WrapCellPointer 時,

則不移至其它控制項。

以上屬性8 ~ 11,可在控項屬性欄之其它部分來指定屬性值。若新增/刪 除/更新屬性設為 True 時,必須在表單內加入一個更新指令按鈕,然後在 On Click 事件屬性加入更新指令,將資料寫回伺服端,此部分請讀者自行處理。

18-4 常用流程控制指令 1 選擇型-決策判斷

指令語法:

樣式一(單選型):

If 條件式

資料處理指令區塊 End If

樣式二(二選一):

If 條件式

資料處理指令區塊 A

(18)

Else

資料處理指令區塊 B End If

樣式三(多選一):

If 條件式 A

資料處理指令區塊 A Else

If 條件式 B

資料處理指令區塊 B Else

……….

End If

……….

End If

樣式四(多選一):

Select Case 條件式 Case 條件值 A

資料處理指令區塊 A Case 條件值 B

資料處理指令區塊 B

Case ……….

………

End Select 2 迴圈型

指令語法:

Do While Not adRs.EOF 資料處理指令區塊

adRs.Movenext ‘移動紀錄指標 Loop

若要強制跳離迴圈,可搭配 Exit Do 指令。

3 計數迴圈型 指令語法:

For i = 0 To 上限次數

(19)

資料處理指令區塊 Next i

若要強制跳離迴圈,可搭配 Exit For 指令。

應用範例:

For i = 0 To adRs.Fields.Count - 1 Na = adRs(i) ‘取得欄名

Next i

參考文獻

相關文件

並存入百事可樂企業內部網站的 伺服 並存入百事可樂企業內部網站的 IBM RS/6000 伺服 器資料庫。然後,主管與分析師可以使用上型電腦

… 按下確定即可產生 DataSet (資料集),再利用 DataAdapter 中 Fill 方法即可將所設定的查詢內 容填入 DataSet 當中..

z按下確定即可產生 DataSet (資料集),再 利用 DataAdapter 中 Fill 方法即可將所設 定的查詢內容填入 DataSet 當中.. DataGrid

 可利用 HTML 控制項 中的 Table 控制項進 行排版動作.  (最好將 Table

第四章 直角座標與二元一次方程式.

第四章 直角座標與二元一次方程式.

三、參加「大專校院社團評選」之社團,應於完成線上報名後,上傳核章後之 社團評選報名表(附件 1-1)、社團組織章程、社團簡介文字資料、校內 社團評選紀錄等

• 可編程實體實物(Programmable physical objects),是指 一些可以讓人們設計及運行程序的物件,通常是一些電子 設備..