Thuộc tính RECORDSET

Một phần của tài liệu GIÁO TRÌNH ACCESS – CHƯƠNG 8: MODULES _LẬP TRÌNH pps (Trang 117 - 125)

X. ĐỐI TƯỢNG TRUY CẬP DỮ LIỆU 1) Các đôi tượng trong đối tượng DBEngine

9) Thuộc tính RECORDSET

 Ý nghĩa : Là bộ mẫu tin trong Access. Access không tạo sẵn biến đối tượng Recordset. Để tạo biến đối tượng này, ta phải dùng lệnh khai báo và lệnh set như sau

 Cú pháp :

Dim doiTuongRecordset As Recordset Set doituongrecordset =

doituongDatabase.OpenRecordset(nguon DuLieu)

THÀNH PHẦN PHẦN

MÔ TẢ

NguonDuLie u

Biểu thức chuỗi có giá trị là tên Table, tên Query hay câu lệnh SQL

10) Thuộc tính AbsolutePosition

Thuộc tính này trả về một số nguyên nói lên vị trí của mẫu tin hiện tại, bắt đầu từ 0 đến N-1 với N là tổng số mẫu tin có trong bộ mẫu tin. Trong trường hợp khi bộ mẫu tin không có mẫu tin nào thì thuộc tính này sẽ trả về -1.

Thí dụ : In ra thứ tự các mẫu tin trong bảng sinh viên trên tổng số các mẫu tin.

Sub FindPosition()

Dim rstsv as Recordset Dim cMsg as string Set db = Currentdb() Set rstsv = db.OpenRecordset(“sinhvien”,dbOpenDynaset) Rstsv.movelast Rstsv.movefirst

Do while Not rstsv.EOF

Cmsg = rstsv.AbsolutePosition+1_ &”record:”&rstsv.RecordCount &chr(13) & “tiep tuc nua hay khong?”

If MsgBox(cmsg,

vbyesno+vbquestion) = vbNo Then Exit Do

Rstsv.MoveNext Loop

End Sub

11) Thuộc tính BookMark

 Ý nghĩa : chứa một giá trị chuỗi dùng để nhận diện vị trí con trỏ mẫu tin trong bộ mẫu tin.  Cú pháp :

DoituongRecordset.BookMark

Thí dụ : Sử dụng thuộc tính BookMark để lưu lại mẫu tin hiện hành trước khi quét lần lượt qua mẫu tin và sau đó quay trở lại đúng mẫu tin đó.

Sub UseBookmark() Dim db as database Dim rstsv as Recordset Dim vnPosition as Variant Set db = Currentdb()

Set rstsv =

db.OpenRecordset(“sinhvien”,dbOpenDynaset )

vnPosition = rstsv.Bookmark Debug.Print “Ma so truoc khi di chuyen”&rstsv![Masv]

Do while Not rstsv.EOF

Degug.Print rstsv![Masv]

Rstsv.MoveNext Loop

Rstsv.Bookmark = vnPosition Debug.Print “Ma so sau khi di chuyen:”&rstsv![masv]

End Sub

Ý nghĩa : Thuộc tính LastModified chứa giá trị BookMark của mẫu tin gần nhất mới vừa thêm vào hay mới sửa đổi. Bằng cách gán thuộc tính LastModified cho thuộc tính BookMark của bộ mẫu tin thì con trỏ mẫu tin sẽ di chuyển đến mẫu tin mới vừa được thêm.

Cú pháp :

DoituongRecordset.LastModified 13) Thuộc tính RecordsetClone

Thuộc tính recoredsetClone của một biểu mẫu dung để chỉ đến bộ mẫu tin nằm bên dưới của biểu mậu(dữ liệu nguồn của biểu mẫu). thuộc tính này thường được sử dụng khi chúng ta muốn thực hiện hành động trực tiếp đến bộ mẫu tin nguồn của biểu mẫu và sau đó chúng sẽ được đồng bộ hóa dữ liệu ngay lập tức.

Thí dụ : trên biểu mẫu sinh viên, chúng ta xây dựng nút tìm kiếm theo masv được nhập vào từ điều khiển có tên txtMasv.

Private Sub cmdFinf_click()

Dim rst as Recordset

Set rst =Me.recordsetClone

Rst.FindFirst “Masv =” &Me!txtmasv &””

If rst.NoMatch then

Msgbox Me!txtmasv &”khong tim thay “,vbInformation Else Me.Bookmark = rst.Bookmark End if End Sub 14) Truy vấn tham số

Các truy vấn tham số của Access rất mạnh. Chúng cho phép người sử dụng chỉ định ra các tham số lúc chạy.Khả năng này rất hữu íchkhi người sử dụng muốn đưa tham số cho truy vấn từ giá trị của các điều khiển trên biểu mẫu. Muốn sử dụng truy vấn tham số thì chúng ta phải tạo ra trước một truy vấn có khai báo tham số và sau đó sử dụng biến đối tượng QueryDef để truyền tham số cho truy vấn bằng thuộc tính Paramaters.

Thí dụ : tạo một truy vấn lọc danh sách các sinh viên có ngày sinh nằm trong một khoảng thời gian được nhập vào từ hai điều khiển trên Form là txttungay và txtdenngay. Sub RunParameterQuery() Dim db as database Dim rst as Recordset Dim qd as Querydef Set db = Currentdb()

Set qd = db.Querydefs(“qlocSinhvien”) Qd.Parameters(“tungay”) = Me!txttungay Qd.Parameters(“Denngay”) = Me!txtdenngay Set rst = qd.OpenRecordset Do while Not rst.EOF

Degug.Print rst![Masv], rst![hocbong]

Rst.MoveNext Loop

End Sub

Một phần của tài liệu GIÁO TRÌNH ACCESS – CHƯƠNG 8: MODULES _LẬP TRÌNH pps (Trang 117 - 125)

Tải bản đầy đủ (PDF)

(139 trang)