Đối tượng kiểu Recordset

Một phần của tài liệu Bài giảng access (Trang 111 - 114)

Dim DB As database, rec As RecordSet Set DB = CurrentDB

5.4.3 Đối tượng kiểu Recordset

™ Các phương thức của đối tượng kiểu Recordset

.Open : tương tự phương thức OpenRecordset của DAO, dùng để tạo RecordSet, thực hiện kết nối (hiện hoặc ngầm). Cách sử dụng:

<Tên biến Recordset>.Open[<Nguồn>],[<Kết nối>],[<Kiểu con trỏ>],[<Kiểu khóa>][,<Tuỳ chọn>]

Trong đó :

9 Nguồn: tên bảng, văn bản SQL hay tên biến kiểu Command.

9 Kết nối (ActiveConnection): Xác định kết nối của Recordset, là xâu kí tự như kiểu dòng kết nối.

9 Kiểu con trỏ (CursorType): có thể nhận một trong các giá trị sau:

Giá trị Ý nghĩa

adOpenForwardOnly Con trỏ chỉ có thể di chuyển về phía trước, ngầm định. adOpenKeyset Không nhìn thấy những thay đổi do người khác thực hiện, di

chuyển 2 chiều.

adOpenDynamic Quan sát được những thay đổi của những người dùng khác. Có thể thêm, sửa, xóa. Có thể di chuyển hai chiều mà không cần lưu giữ bookmark.

9 Kiểu khóa (LockType): chỉđịnh cách xử lí đối với những truy nhập của người khác khi ta mở Recordset:

Giá trị Ý nghĩa

adLockReadOnly Không cập nhật được dữ liệu, ngầm định. adLockPessimistic Khóa bản ghi khi người dùng sửa.

adLockOptimistic Khóa bản ghi khi sử dụng phương thức Update

Có thể không xác định các tham số chỉ kết nối, kiểu con trỏ và kiểu khóa mà gán trực tiếp vào các thuộc tính ActiveConnection, CursorType và LockType.

9 Tùy chọn (Options): Cách thức mà hệ thống đánh giá tham số nguồn:

Giá trị Ý nghĩa

adCmdText Hệ thống coi nguồn là văn bản của một command

adCmdTable ADO sinh ra một truy vấn để trả về tất cả các dòng của một bảng có tên chỉ bởi nguồn.

Bài giảng Lập trình trong Access adCmdStoredProc Nguồn là thủ tục.

adCmdUnknown Kiểu của nguồn chưa xác định, ADO sẽ tự xác định lấy.

Các phương thức di chuyển con trỏ: giống Recordset của DAO

.MoveFirst | .MoveLast | .MoveNext | .MovePrevious

Tìm kiếm:

.Find: chuyển con trỏđến bản ghi đầu thỏa mãn điều kiện (nếu có), đến cuối tệp EOF (nếu không có).

Các phương thức: .AddNew, .Delete, .Edit, .Update, .Close giống như trong DAO. ™ Các thuộc tính của đối tượng kiểu Recordset

.ActiveConnetion, CursorType, LockType

.Filter: bộ lọc của recordset, có ích khi tìm kiếm với điều kiện phức tạp. Khi không muốn lọc nữa, gán <tên biến Recordset>.Filter = adFilterNone.

Ví dụ: Viết thủ tục trên form cho phép tìm kiếm thông tin nhân viên theo điều kiện And

Form trên gồm có các điều khiển sau:

Điều khiển Thuộc tính Giá trị của thuộc tính Name Label1 Nhãn (Label)

Caption Tìm kiếm thông tin nhân viên Name LstKetqua Hộp liệt kê (ListBox)

Bài giảng Lập trình trong Access

RowSource để trống (sẽ gán trong chương trình) Hộp văn bản (TextBox) Name Text0

Hộp văn bản Name Text2 Name Command4 Nút lệnh Caption Tìm Name Command5 Nút lệnh Caption Thoát

Th tc click chut ca nút Command4:

Private Sub Command4_Click() Dim cn As Connection

Dim rs As ADODB.Recordset Dim tieuchuan As String

Dim dkhoten As String, dkma As String Dim loc As String

Set cn = CurrentProject.Recordset Set rs = New ADODB.Recordset With rs

.CursorType = adOpenKeyset .LockType = adLockOptimistic

.Open "nhan vien", cn, , , adCmdTable End With

dkma = IIf(Not IsNull(Text0),"manv like '*" & Text0 & "*","") dkhoten = IIf(Not IsNull(Text2),"hoten like '*" & Text2 & "*","")

tieuchuan = IIf(dkma<>"",dkma & IIf(dkhoten<>"","and","")& dkhoten,dkhoten) rs.Filter = tieuchuan

If rs.EOF then

LstKetqua.RowSource = "" LstKetqua.Requery

MsgBox "Khong co nhan vien nao thoa man" Exit Sub

End If rs.Close cn.Close

loc = "select manv, hoten, luong, diachi from nhanvien where" & tieuchuan LstKetqua.RowSource = loc

Bài giảng Lập trình trong Access

LstKetqua.requery LstKetqua.Visible = True End Sub

Th tc load Form:

Private Sub Form_Load LstKetqua.Visible = False End Sub

Một phần của tài liệu Bài giảng access (Trang 111 - 114)