Download presentation
Presentation is loading. Please wait.
Published bySukarno Gunawan Modified 6年之前
1
資料控制項與資料存取物件 資料庫控制項 ( Adodc或DATA ) 提供的功能有限 半自動 方便,使用者不需要額外撰寫程式
功能較完整 需要撰寫程式碼 半自動 完全手動 二者可以交互使用,但不建議
2
資料控制項與資料存取物件 資料庫控制項 ( Adodc) 直接設定ConnectionString與RecordSource屬性
設定ADO物件後將Recordset物件指定給資料庫控制項(Adodc)
3
資料控制項與資料存取物件 顯示元件 如TEXT ADO物件 設定產生Connection與 Recordset物件
4
UI範例 設定DataSource與 DataField屬性 Command1_click
5
ADO ADODC範例 Private Sub Command1_Click() '連結資料庫
Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\VB6\DB\Book.mdb" cn.Open '取得資料集 Set rs = New ADODB.Recordset rs.Open "書籍", cn, adOpenStatic ‘ 設定ADO物件取得資料集 ‘ 要設定成adOpenStatic Set adoBook.Recordset = rs End Sub
6
ADO直接顯示範例 Private Sub Command1_Click() '連結資料庫
Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" _ & "Data Source=C:\VB6\DB\Book.mdb" cn.Open '取得資料集 Set rs = New ADODB.Recordset rs.Open "書籍", cn, adOpenStatic ' 設定連結控制項的屬性 Set Text1.DataSource = rs Text1.DataField = "書名" Set Text2.DataSource = rs Text2.DataField = "作者" Set Text3.DataSource = rs Text3.DataField = "分類" Set Text4.DataSource = rs Text4.DataField = "出版社“ End Sub
7
ADO物件對資料庫的操作 操作項目: 資料錄的移動 資料錄的編輯 新增資料錄 刪除資料錄 搜尋資料錄 篩選資料錄 資料排序
對象都是目前紀錄(Current Record)
8
資料的移動 使用Move方法 語法:Recordset.Move skipRecords, Start
+表示向最後一筆資料方向移動 -表示向第一筆資料方向移動 Start:移動的起始位置,預設為目前紀錄 adBookmarkFirst,以第一筆紀錄為起始點 adBookmarkLast,以最後一筆紀錄為起始點 注意移動過程可能會有超過BOF或EOF的錯誤狀況產生
9
範例
10
範例 ‘要指定給datagrid一定要設定成adOpenStatic Private Sub Form_Load() ' 連結資料庫
Set cn = New ADODB.Connection cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _ & "Data Source=C:\VB6\DB\Book.mdb" cn.Open ' 取得資料集 Set rs = New ADODB.Recordset rs.Open "書籍 ", cn, adOpenStatic ‘ DataGrid控制項取得資料集以顯示記錄 ‘要指定給datagrid一定要設定成adOpenStatic Set DataGrid1.DataSource = rs End Sub
11
範例 ' .......Click 按鈕:前一筆 時所觸發的事件程序 Private Sub cmdPrevious_Click()
rs.MovePrevious ' 若已移動到檔案的開頭 If rs.BOF = True Then rs.MoveFirst End If End Sub ' Click 按鈕:下一筆 時所觸發的事件程序 Private Sub cmdNext_Click() rs.MoveNext ' 若已移動到檔案的結尾 If rs.EOF = True Then rs.MoveLast End If End Sub
12
編輯紀錄 Supports方法 判斷目前的資料庫(Recordset物件)是否可以編輯 語法:
Boolean=recordset.Supports(CursorOptions) 其中CursorOptions可以是 adUpdate:更新 adAddnew:新增 adDelete:刪除 adMovePrevious:向前移動 adBookmark:標定Bookmark
13
範例 If rs.supports(adUpdate) then ret=msgbox(“可以進行更新作業”,49,“更新訊息”) Else
End if
14
資料更新 Update方法 可以對資料庫(Recordset物件)進行資料更新 語法:
recordset.Update [欄位名稱],[新欄位值] 或 Recordset(“欄位名稱”)=值 Recordset.update 注意欄位名稱的寫法與資料型態
15
範例6-6 更改book.mdb資料庫中書籍資料表中目前紀錄的 書名欄位值 rs.Update “書名”, Text1.text 欄位值
欄位名 欄位值
16
新增資料 Addnew方法 可以對資料庫(Recordset物件)進行資料新增作業 語法:
recordset.Addnew [欄位名稱],[新欄位值] 或 Recordset.addnew recordset(“欄位名稱”)=值 Recordset.update 注意欄位名稱的寫法與資料型態
17
範例 在book.mdb資料庫中的書籍資料表中新增一筆紀錄 (只新增一個欄位) rs.Addnew “書名”, Text1.text
18
範例 在book.mdb資料庫中的書籍資料表中新增一筆紀錄 (新增多個欄位) rs.Addnew rs!書碼=Text1.text
….. rs.Update
19
刪除資料 Delete方法 可以對資料庫(Recordset物件)進行資料刪除作業 刪除目前紀錄 語法: Recordset.Delete
20
範例 rs.Delete rs.Movenext If rs.eof then rs.movelast End if 目前紀錄會消失
目前紀錄再度出現 Do Until rs.eof rs.Delete rs.Movenext Loop 刪除所有紀錄
21
搜尋作業 從資料庫中找到符合條件的資料 Find方法 找出資料庫(Recordset物件)中符合條件的第一筆記錄 語法:
Recordset.Find 條件,[Skiprows],[SearchDirection],[start] 找不到資料時會變成EOF或BOF狀態,所以可以藉此 判定是否有找到資料
Similar presentations