Đối tượng RecordSet

Một phần của tài liệu Giáo trình tin học Lập trình với Microsoft Visual Basic 6.0 (Trang 98 - 103)

1. Kỹ thuật DAO

1.3Đối tượng RecordSet

Recordset là đối tượng dùng để miêu tả tập hợp các bản ghi của một bảng, của một query hoặc tập các bản ghi kết quả của việc thi hành một câu lệnh SQL nào

đó.

Lớp các đối tượng con của Recordset được thể hiện qua sơđồ sau:

Khai báo

Set rs=db.OpenRecordset(<Name>)

Trong đó:

- Set rs = db.OpenRecordset là lệnh để tạo ra tập hợp các bản ghi từ CSDL db gán vào biến kiểu recordset rs;

- <Name> là một xâu ký tự chỉ ra nguồn dữ liệu sẽ trả về cho Recordset. Xâu này có thể là tên một bảng, một Query hoặc một câu lệnh SQL;

Mỗi biến Recordset khi làm việc, phải được chỉ ra Database xuất xứ của nó (phải được tham chiếu từ một biến kiểu Database đã được khai báo). Sau đây là các vắ dụ:

Vắ dụ 1:

Gán tập hợp các bản ghi từ một bảng vào biến Recordset (ở đây là bảng

canbo).

Dim rs As DAO.Recordset

Vắ dụ 2:

Gán tập hợp các bản ghi từ một câu lệnh chọn dữ liệu SQL vào biến Recordset (ởđây là các thông tin hoten, ngaysinh của tất cả các cán bộnữ từ bảng canbo).

Dim rs As DAO.Recordset

Set rs = db.OpenRecordset("SELECT hoten, ngaysinh FROM canbo WHERE gioitinh = False")

Một số thuộc tắnh của Recordset

Thuộc tắnh Name

Trả về xâu ký tự trong tham số <name> của lệnh gọi Recordset. Vắ dụ: lệnh sau sẽ cho biết xâu ký tự tạo nguồn dữ liệu cho Recordset là gì?

MsgBox rs.Name

Thuộc tắnh AbsolutePosition

Cho biết vị trắ bản ghi hiện tại (được tắnh từ 0). Trong trường hợp không có bản ghi nào trên recordset hoặc con trỏ bản ghi đang nằm ở EOF- sẽ không thể

lấy được giá trị thuộc tắnh này. Do vậy để sử dụng thuộc tắnh này thường phải đi kèm thuộc tắnh kiểm tra có tồn tại bản ghi nào hay không (RecordCount > 0) và con trỏ bản ghi có ở cuối tệp chưa (EOF = False).

Thuộc tắnh RecordCount

Cho biết tổng số bản ghi trả về trên Recordset Thuộc tắnh EOF

Cho biết con trỏ bản ghi hiện tại có nằm ở EOF hay không? Nếu có giá trị

thuộc tắnh này là True, trái lại là False. Thuộc tắnh Fields

Dùng tham chiếu tới các trường (Fields) trên tập hợp các bản ghi mà Recordset trả về. Thực tế Field cũng là một đối tượng và cũng có bộ thuộc tắnh và các phương thức của nó. Với Field của Recordset thông thường người ta hay sử dụng thuộc tắnh Value. Nếu không chỉ định thuộc tắnh cụ thể nào cho Field, VB vẫn hiểu ngầm định đó là Value.

Vắ dụ: Hiển thị giá trị trường hoten trong Recordset rs

Msgbox rs.Fields("hoten").Value (adsbygoogle = window.adsbygoogle || []).push({});

'hoặc

Msgbox rs.Fields("hoten")

Một số phương thức của Recordset

Phương thức Close

Để đóng Recordset, giải phóng bộ nhớ. Chỉ thực hiện hành động này khi không làm việc với Recordset nào đó.

Các phương thức di chuyển bản ghi của Recorset

Phương thức MoveFirts

Để chuyển con trỏ về bản ghi đầu tiên Phương thức MoveLast

Để di chuyển con trỏ về bản ghi cuối cùng Phương thức MoveNext

Dịch đến bản ghi kề sau Phương thức MovePrevious

Dịch đến bản ghi kề trước

Vắ dụ 3:

Vắ dụ sau duyệt và hiển thị toàn bộHoten của bảng canbo

Set rs = db.OpenRecordset("canbo") If rs.RecordCount > 0 Then

rs.MoveFirst

While rs.EOF = False

MsgBox rs.Fields("hoten").Value rs.MoveNext

Wend End If

Phương thức AddNew, Update

Để thêm mới một bản ghi vào Recordset. Qui trình thêm một bản ghi mới như

sau:

1. Ra lệnh Addnew

2. Gán giá trị cho các trường của bản ghi mới 3. Ra lệnh Update

Dưới đây là vắ dụ thêm mới một hồ sơ cán bộ mới vào bảng canbo.

Vắ dụ 4:

Dim rs As DAO.Recordset

Set rs = db.OpenRecordset("canbo")

'--- 'Ra lệnh thêm mới bản ghi '

rs.AddNew

'--- (adsbygoogle = window.adsbygoogle || []).push({});

'Gán giá trị cho các trường của bản ghi mới '

rs.Fields("canboID") = "CB00565" rs.Fields("hoten") = "Nguyễn Sơn Hải" rs.Fields("ngaysinh") = #2/11/1975# rs.Fields("gioitinh") = True rs.Fields("chucvuID") = "CV002" '--- 'Ra lệnh ghi lại dữ liệu ' rs.Update

Phương thức Edit, Update

Phương thức Edit để sửa dữ liệu một bản ghi nào đó trên recordset. Qui trình

để sửa một bản ghi như sau:

1. Định vị tới bản ghi cần sử trên recordset 2. Ra lệnh Edit

3. Gán giá trị mới cho các trường cần sửa 4. Ra lệnh Update Dưới đây là vắ dụ về sửa hồ sơ cán bộ có mã CB000565 Vắ dụ 5: Dim rs As DAO.Recordset '--- 'Định vị tới bản ghi cần sửa '

Set rs = db.OpenRecordset("SELECT * FROM canbo WHERE canboID='CB0565'") If rs.RecordCount > 0 Then rs.MoveFirst '--- 'Ra lệnh sửa bản ghi ' rs.Edit '--- 'Thực hiện sửa các trường dữ liệu cần thiết '

rs.Fields("hoten") = "Nguyễn Văn Hải" rs.Fields("ngaysinh") = #22/11/1975# '--- 'Ra lệnh ghi lại dữ liệu vừa sửa ' rs.Update End If Phương thức Delete

Để xoá bản ghi hiện tại ra khỏi Recordset. Khi đó bản ghi hiện tại sẽ bị xoá bỏ

khỏi CSDL. Cần thận trọng mỗi khi ra lệnh này. Thông thường các lệnh một nút Xoá bản ghi của một mẫu nhập liệu (nhập vào biến Recordset rs) như sau:

Vắ dụ 6:

Private Sub cmDelete_Click() Dim tbao

tbao = MsgBox("Đã chắc chắn xoá chưa?", vbYesNo + vbCritical) If tbao = vbYes Then

rs.Delete rs.MoveNext End If

End Sub

Một phần của tài liệu Giáo trình tin học Lập trình với Microsoft Visual Basic 6.0 (Trang 98 - 103)