Bài toán tìm và lọc dữ liệu

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 115 - 118)

1. Kỹ thuật DAO

1.9Bài toán tìm và lọc dữ liệu

Lọc và tìm kiếm là dạng bài toán cơ bản trong lập trình CSDL. Nguyên tắc hoạt động của dạng bài toán này là như nhau, sẽ chỉ khác về yêu cầu, giao diện sử dụng.

Vắ dụ dưới đây là một bài toán lọc ra danh sách cán bộ của một phòng ban nào

Cách làm:

Bước 1: Thiết kế giao diện form như sau:

Bước 2: thiết lập các thuộc tắnh phù hợp cho các điều khiển như sau:

Điu khin Data1

- Thuộc tắnh DatabaseName Ố hãy trỏ tới tệp CSDL Quản lý lương;

- Thuộc tắnh Visible = False (để ẩn điều khiển Data này khi chạy chương trình).

- Thuộc tắnh DataSource Ố chọn nguồn dữ liệu sẽ hiển thị lên DbGrid (chọn Data1);

Bước 3: viết lệnh cho form như sau:

Private Sub Form_Load()

Dim rs As DAO.Recordset '--- 'mở tệp CSDL gán vào biến db ' Set db = OpenDatabase(Data1.DatabaseName) '--- 'mở danh sách các phòng ban và đẩy lên Combo1 '

Set rs = db.OpenRecordset("phongban") While rs.EOF = False

Combo1.AddItem rs.Fields("tenphongban").Value rs.MoveNext

Wend

End Sub

Private Sub Combo1_Click()

'---

'thủ tục này xảy ra sau khi chọn một phòng ban từ combo1 ' Dim strSQL As String 'Bước 1 --- 'xác định câu lệnh SQL để lọc ra danh sách cán bộ thỏa mãn 'phòng ban đã chọn ở Combo1 '

strSQL = "SELECT canbo.hoten, chucvu.tenchucvu " _

+ " FROM (canbo INNER JOIN chucvu ON canbo.chucvuID = " _ + " chucvu.chucvuID) INNER JOIN phongban ON = " _

+ " canbo.phongbanID = phongban.phongbanID " _

+ " WHERE phongban.tenphongban = '" + Combo1.Text + "'"

'Bước 2---

'gán cấu lệnh SQL trên cho Data1 '

Data1.RecordSource = strSQL

'---

'Lệnh này thực hiện đổ dữ liệu từ Data1 lên DbGrid '

Data1.Refresh

Chú ý

Việc viết ra câu lệnh SQL đúng là rất khó, đòi hỏi lập trình viên phải có nhiều kinh nghiệm. Để làm tốt được việc này, nên thiết kế một query ở chế độ design view; rồi sử dụng tắnh năng Copy, Paste để dán câu lệnh SQL mà query đã tạo lên nơi soạn thảo lệnh VB và chỉnh sửa cho phù hợp. Thông thường sửa mệnh đề WHERE của câu lệnh. (adsbygoogle = window.adsbygoogle || []).push({});

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 115 - 118)