Thực tế ta thường phải trả lời câu hỏi: “Trong bảng CSDL có bản ghi R hay không ?” Đối tượng con Recorset của đối tượng ADO Data Control có một phương thức tên là
Find sẽ giúp ta trả lời được câu hỏi đó.
Thực hành: Cho người dùng nhập vào họ tên của một người trong một textbox, Chương trình sẽ thông báo là “Tìm thấy” cùng với điểm của môn Toán hoặc thông báo là “Không tìm thấy” người này trong bảng CSDL.
Các bước tiến hành:
• Thiết kế giao diện
Như phần 5, nhưng xoá các textbox và command button, Thay bằng một textbox có tên là txtHoVaTen và một command button có tên là cmdTim, Caption là &Tìm
Ngôn ngữ lập trình Visual Basic
78
Giao diện tìm kiếm
• Viết code (Như hình dưới đây)
Toàn bộ code chương trình
• Nhấn F5 để chạy chương trình.
Giải thích các câu lệnh:
Ngôn ngữ lập trình Visual Basic
79
(Bắt đầu tìm từ bản ghi đầu tiên)
• adoBangDiem.Recordset.Find “HoVaTen = '” & txtHoVaTen.Text & ”' ” → Thực hiện tìm kiếm trong bảng CSDL có Họ và tên bằng với giá trị nằm trong txtHoVaTen. Ghi chú là do trường HoVaTen là trường kiểu Text nên giá trị cần so sánh phải thêm vào dấu nháy đơn ở 2 đầu như trên. Còn nếu so sánh với trường số thì không cần.
• If adoBangDiem.Recordset.EOF = False Then … → Sau khi thực thi phương
thức Find thì có thể tìm thấy hoặc không. Nếu thấy thì thuộc tính EOF (End Of File = hết tệp) sẽ có giá trị là False, trái lại sẽ có giá trị là True. Như vậy, để biết là có tìm thấy hay không ta chỉ việc kiểm tra thuộc tính này sau phương thức Find.Loại bỏ (Xoá) một bản ghi khỏi bảng CSDL
Để xoá một bản ghi khỏi bảng CSDL, có thể sử dụng phương thức Delete của đối tượng con Recordset trong điều khiển ADO Data Control. Khi gọi phương thức này thì bản ghi hiện hành sẽ bị xoá. Về trực quan, bản ghi hiện hành có biểu tượng mũi tên đang chỉ tới. Có thể xoá một hoặc nhiều bản ghi bằng cách đặt câu lệnh SQL dạng như “Delete…” cho thuộc tính RecordSource của điều khiển ADO Data Control, tuy nhiên để đơn giản, phần hướng dẫn sau đây sẽ trình bày cách xoá một bản ghi thoả mãn một điều kiện nào đó.
Thực hành: Cho người dùng nhập vào số báo danh của một người trong một textbox và chương trình sẽ thực hiện xoá bản ghi có SoBD bằng với Số báo danh này.
Các bước tiến hành:
• Thiết kế giao diện:
Giao diện chương trình và tên các control
Ngôn ngữ lập trình Visual Basic
80
Toàn bộ code chương trình
• Chạy chương trình : Nhấn F5. Nhập số báo danh cần xoá và chọn nút “Xoá”
Ngôn ngữ Lập trình Visual Basic
81
Một số Ghi chú:
• Trường SoBD trong bảng CSDL khi thiết kế ta đặt kiểu là Text (Xâu ký tự), do vậy trong phương thức tìm kiếm Find ta cũng phải thêm dấu nháy đơn ở hai đầu.
• Vì phương thức Delete của đối tượng con Recordset sẽ thực hiện xoá ngay bản ghi hiện hành, do vậy để xoá bản ghi cần xoá thì trước hết ta phải di chuyển con trỏ bản ghi về bản ghi cần xoá đó bằng phương thức find (Tìm kiếm). Khi dùng phương thức find, nếu có bản ghi phù hợp thì phương thức này sẽ dừng lại và bản ghi đó trở thành bản ghi hiện hành.
• Nói chung, việc xoá một bản ghi trong CSDL thường dựa vào trường khoá, bởi vì tính duy nhất của nó. Còn nếu xoá bản ghi dựa vào trường không phải là khoá (Ví dụ trường DiemToan) thì rất có thể xoá phải bản ghi không đúng như yêu cầu, mặc dù vẫn có thể tiến hành tìm kiếm và xoá bình thường.