<< 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

Set rs = new adodb.recordset

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.

Cập nhật và thêm mới mẩu tin

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.

Thuộc tính cursorlocation

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.

Recordset ngắt kết nối

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

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Giáo trình visual basic. OpenStax CNX. Jul 29, 2009 Download for free at http://cnx.org/content/col10777/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Giáo trình visual basic' conversation and receive update notifications?

Ask