Không tự động cập nhật + adOpenDynamic : mẩu tin tạo trên máy chủ.. + adOpenKeySet : không tự động cập nhật các mẩu tin bị xoá hay thêm bởi các người dùng đang sử dụng chung RecordSet..
Trang 11, Sử dụng Connection để kết nối CSDL :
1.1, Khai Báo :
- Khai báo và cấp vùng nhớ luôn
Dim cnn As New ADODB.Connection
- Khai báo và cấp khi sử dụng
Dim cnn As ADODB.Connection
….
Set cnn = New ADODB.Connection
1.2, Thuộc tính ConnectionString : khai báo trình Provider và CSDL
VD : Dim cnn As New ADOBD.Connection
cnn.ConnectionString = “Provider = Microsoft.Jet.OLEDB.4.0;” & _ “ DataSource = “ & App.Path & “CSDL.MDB”
Trang 21.3, Thuộc tính CursorLocation : quy định con trỏ liên kết dữ liệu sẽ được tạo tại máy chủ hay máy trạm
- adUseClient : [3] dữ liệu được tạo ra tại máy trạm
- adUseServer : [2] dữ liệu tạo trên máy chủ
1.4, Hành động Open : nhằm thực hiện việc kết nối ứng dụng với
nguồn cơ sở dữ liệu
1.5, Thuộc tính State : dùng khi kết nối để kiểm tra việc kết nối có
thành công hay không
- adStateOpen : [1] kết nối đang mở
- adStateClosed : [0] kết nối đang đóng
Trang 32, Mở RECORDSET :
<Recordset>.Open [Source], [ActiveConnection], [CursorType], [LockType], [Options]
- Source : nội dung truy xuất ( Table, Query, SQL…)
- ActiveConnection : nội dung khai báo ConnectionString hay một
Connection đang mở
- CursorType : phân loại RecordSet với các giá trị sau :
+ adOpenStatic : mẩu tin tạo tại máy con Không tự động cập nhật
+ adOpenDynamic : mẩu tin tạo trên máy chủ Tự động cập nhật
+ adOpenKeySet : không tự động cập nhật các mẩu tin bị xoá hay thêm bởi các người dùng đang sử dụng chung RecordSet Không truy cập được những mẩu tin bị xoá do người dùng khác và các thay đổi do
người khác vẫn được hiển thị
+ adOpenForewardOnle : chỉ di chuyển bằng MoveNext
Trang 42, Mở RECORDSET :
- LockType : xác định cách khoá dữ liệu khi cập nhật mẩu tin
+ adLockReadOnly : [1] chỉ cho phép đọc (luôn luôn khoá)
+ adLockOptimistic : [2] chỉ khoá khi cập nhật mẩu tin
+ adLockBatchOptimistic : [3] giống [2] nhưng cho phép cập nhật
đồng thời nhiều mẩu tin
+ adLockPessimistic : [4] mẩu tin sẽ khoá ngay khi thực hiện Update
hay AddNew chỉ dùng khi CursorLocation là adUseServer
- Options : xác định kiểu của Source, có thể bỏ qua nhưng nếu khai báo thì
phải tương ứng kiểu của Source không thì sẽ lỗi
+ adCmdTable : khi Source là Table hay Query
+ adCmdText : khi Source là truy vấn SQL
+ ađCmStoreProc : khi là Stored Procedure trong SQL SERVER
Trang 52.1, Truy xuất RecordSet :
< Tên RecordSet >.Fields(“< tên field >”).Value
Hay
< Tên RecordSet>!<tên field>
Hay
< Tên RecordSet >.Fields(Index)
2.2, Thuộc tính của RecorSet :
-RecordCount : tổng số mẩu tin trong RecordSet
-AbsolutePosition : vị trí mẩu tin hiện hành
-BOF, EOF : vị trí đầu và cuối trong cấu trúc RecordSet
Trang 63, Hiển Thị Dữ Liệu Trong RecordSet :
- Các đối tượng hiển thị cơ bản : Label, TextBox, CheckBox, Image, nhóm ActiveX Control (DataList, DataGrid, MSHFlexGrid)
- Thuộc tính kết nối : DataSource, DataField
Các ActiveX có thêm :
+ RowSource : RecordSet cung cấp giá trị liệt kê
+ ListField : tên Field muốn điều khiển hiển thị
+ BoundColumn : tên Field cập nhật giá trị (trùng với DataField)
4, Di chuyển bản ghi bằng hành động Move
- <tên Record>.Move numRec
NumRec : số bản ghi cần nhảy qua (mang giá trị âm và dương)
- MoveFirst, MovePrevious, MoveNext, MoveLast
Trang 75, Thêm, Xoá, Cập Nhật/Không Cập Nhật dữ liệu :
5.1, Hành động thêm, xoá, cập nhật mẩu tin :
- AddNew : nhập thêm mẩu tin mới
- Delete : xoá mẩu tin hiện hành trên RecordSet
- Update/CancelUpdate : cập nhật/không cập nhật Dùng khi
LockType là adLockOptimistic hay adLockPessimistic
- UpdateBatch/CancelBatch : cập nhật/không cập nhật các thay đổi trên RecordSet khi LockType là adLockBatchOptimistic
5.2, Cơ chế cập nhật dữ liệu tự động của RecordSet với LockType :
- adLockOptimistic : cập nhật vào nguồn ngay khi thay đổi
- adLockBatchOptimistic : chỉ cập nhật vào nguồn khi gọi thực hiện hành động UpdateBatch
Trang 86, Sự kiện MoveComplete :
6.1, Khai báo
Dim WithEvents rst As ADODB.RecordSet
Thời điểm phát sinh : khi mẩu tin hiện hành thay đổi
6.2, Sử dụng sự kiện MoveComplete :
- Hiển thị vị trí mẩu tin hiện hành qua AbsolutePosition
- kiểm soát mờ/ hiện chức năng di chuyển qua lại giữa các mẩu tin
- Cho biết tình trạng mẩu tin hiện hành thông qua EditMode
+ adEditNone : [0] mẩu tin trong trạng thái bình thường
+ adEditProcess : [1] tình trạng chỉnh sửa chưa cập nhập
+ adEditAdd : [2] tình trạng thêm mới chưa cập nhật
+ adEditDelete : [3] tình trạng đánh dấu huỷ