• Thứ Ba, 01/12/2009 10:18 (GMT+7)

    Kỹ thuật truy vấn

    Câu hỏi :
    Tôi có một file Excel gồm hai cột HỌ TÊN và MÃ SỐ rất dài. Tôi muốn dùng VB6.0 để tạo ứng dụng với chức năng tìm MÃ SỐ bằng cách nhập HỌ TÊN. Xin hướng dẫn. 

     

    Trả lời :
    Trong mã nguồn viết bằng ngôn ngữ VB 6.0, có nhiều cách khác nhau để truy xuất dữ liệu trong các bảng Excel, trong đó cách tổng quát nhất và dễ dàng nhất là xem file *.xls là 1 database và từng sheet trong file là 1 bảng dữ liệu, rồi dùng các đối tượng ADO của Microsoft để truy xuất dữ liệu trong file theo yêu cầu. Cụ thể, nếu bạn đã tạo 1 file Excel có tên là c:\YourData.xls, trong file này bạn đã tạo dữ liệu trong sheet đầu tiên có tên là Sheet1, dữ liệu gồm 2 cột A và B, hàng đầu miêu tả tên field lần lượt là hoten và maso, hàng thứ 2 trở đi chứa tuần tự các dữ liệu cần quản lý.

     Qui trình điển hình để xây dựng ứng dụng VB 6.0 tìm mã số theo họ tên như sau:
     1. Chạy VB 6.0, tạo Project ứng dụng dạng 'Standard EXE' đơn giản.
     2. Khi Form giao diện ứng dụng được hiển thị, hãy thiết kế Form như hình 3.
     3. Đặt tên cho 2 textbox lần lượt là txtHoten, txtMaso. Đặt tên cho button là btnSearch.
     4. Chọn menu Project.References để hiển thị cửa sổ Reference, duyệt tìm vào chọn mục Microsoft ActiveX Data Objects 2.8 Library rồi Ok để thêm thư viện này vào Project ứng dụng.
     5. Nhấn đúp chuột trên button để tạo thủ tục xử lý sự kiện click chuột trên button rồi viết code cho nó như sau:
     
     'thủ tục xử lý click chuột trên button Search
     Private Sub btnSearch_Click()
     'khai báo các biến cần dùng
     Dim cn As New ADODB.Connection
     Dim rs As New ADODB.Recordset
     'thiết lập các thông số cho connection
     With cn
     .Provider = 'Microsoft.Jet.OLEDB.4.0'
     .ConnectionString = 'Data Source= c:\YourData.xls;' & 'Extended Properties=Excel 8.0;'
     .Open
     End With
     
     'thiết lập lệnh truy vấn theo yêu cầu
     With rs
     Set .ActiveConnection = cn
     .Source = 'SELECT * FROM [Sheet1$] where hoten = '' & txtHoten.Text & '''
     .LockType = adLockOptimistic
     .CursorType = adOpenKeyset
     .Open
     End With
     'hiển thị mã số tìm được lên textbox tương ứng
     txtMaso.Text = rs.Fields('Maso')
     'đóng các đồi tượng đã dùng
     rs.Close
     cn.Close
     Set rs = Nothing
     Set cn = Nothing
     End Sub
     6. Chọn menu Run.Start để chạy thử Form vừa xây dựng.
    Chuyên mục: Lập trình