<< Chapter < Page | Chapter >> Page > |
Chẳng hạn ta có thể hiển thị trên lưới thông tin về các mặt hàng cùng với mã loại hàng của nó:
Dim cn As ADODB.Connection
Dim rs As ADODB.Recordset
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Provider = "Microsoft.Jet.OLEDB.3.51"
cn.ConnectionString = "F:\Data\DBHH.mdb"
cn.Open
rs.Source = "SELECT MaHang, TenHang, DVTinh”&_
“TenLoai FROM THangHoa, TLoaiHang WHERE “&_
“THangHoa.MaLoai = TLoaiHang.MaLoai"
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.Open
Set grdHH.DataSource = rs
End Sub
Kết quả thực thi của chương trình này như sau:
Hình 11.4: Sử dụng Datagrid để hiển thị dữ liêu từ Recordset*
*: Microsoft DataGrid Control 6.0 (OLEDB): Name: grdHH.
Thêm mới mẩu tin
-Mở Recordset
-Thi hành phương thức AddNew
-Gán giá trị cho các trường trong mẩu tin của Recordset
-Lưu lại mẩu tin bằng cách thi hành phương thức Update (hay UpdateBatch).
Cập nhật mẩu tin
-Mở Recordset
-Thực hiện câu lệnh truy vấn để nhận về các mẩu tin thích hợp.
-Di chuyển đến mẩu tin cần cập nhật lại giá trị.
-Gán lại giá trị cho các trường.
- Thi hành phương thức Update (hay UpdateBatch tùy thuộc vào LockType).
Lưu ý:Chế độ khóa mẩu tin mặc định trong ADO là chỉ đọc, vì vậy ta phải đổi thuộc tính LockType của đối tượng Recordset sang chế độ soạn thảo trước khi thi hành cập nhật hay thêm mới mẩu tin.
Xác định tập mẩu tin trả về từ cơ sở dữ liệu được lưu ở đâu (Server hay Client, Server là mặc định). Thuộc tính cũng giống thuộc tính CursorLocation của đối tượng Connection.
Khi chúng ta dùng con trỏ phía Client, ta có khả năng ngắt kết nối với Server cơ sở dữ liệu mà vẫn tiếp tục làm việc với dữ liệu. Cách này cho phép ứng dụng trở nên linh hoạt hơn bởi vì nhiều người dùng có thể làm việc với cùng một dữ liệu tại một thời điểm nếu như họ không có nối kết với server.
Để ngắt nối kết với Server, ta quy định thuộc tính ActiveConnection của đối tượng Recordset là Nothing.
Ví dụ:
Dim cn As ADODB.Connection
Private Sub Form_Load()
Set cn = New ADODB.Connection
cn.Provider = "Microsoft.Jet.OLEDB.3.51"
cn.ConnectionString = "F:\Data\GiangDay.mdb"
cn.Open
End Sub
Public Function GetList (strState As String) _
As ADODB.Recordset
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn
rs.CursorLocation = adUseClient
rs.LockType = adLockBatchOptimistic
rs.CursorType = adOpenKeyset
rs.Open strState
Set rs.ActiveConnection = Nothing
Set GetList = rs
Set rs = Nothing
End Function
Để thi hành cùng một hành động trên một mẩu tin, ta sửa đổi lại các thuộc tính của đối tượng Recordset.
rs.LockType = adLockBatchOptimistic
rs.CursorType = adOpenKeyset
Chúng ta thiết lập giá trị các thuộc tính lại như trên để xác nhận rằng Recordset có thể nối kết lại để cập nhật về sau.
Sau đó, ta sẽ thiết lập một hàm nhận Recordset ngắt kết nối làm tham biến để tạo một đối tượng Recordset khác cập nhật dữ liệu.
Public Sub WriteData(rsDis As ADODB.Recordset)
Dim rs As ADODB.Recordset
Set rs = New ADODB.Recordset
Set rs.ActiveConnection = cn
Notification Switch
Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?