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