Tìm trong:Webe-CHÍP

Bộ gõ (kiểu Vni/Telex/Viqr)Tắt (Alt+T)Mở (Alt+M)

 
Trang chủ ĐÓ HỎI, ĐÂY TRẢ LỜI TT 334

Lọc danh sách trong VB6

Đó hỏi: Xin e-CHÍP chỉ giúp cho em cách làm sao cho khi đánh vào một text box từ nào đó thì list box sẽ hiện lên một danh sách có những từ gần giống (tương tự như từ điển Lạc Việt, KZot,...). Em đang xài VB6.

<dora.y2k@>

Đây trả lời: Để lọc danh sách phải sử dụng một query có điều kiện Where dựa trên nội dung của text box và field có dữ liệu cần lọc. Ví dụ, trong VB6, bạn tạo một project mới theo kiểu Standard EXE. Trên form Form1 mặc định, vẽ một text box có tên Text1, một list box có tên List1. Dữ liệu trong List1 được lấy từ database NWIND.MDB có sẵn trong thư mục cài đặt VB6. Bạn gõ vào đoạn mã 1.

Bạn nhấn F5 để chạy thử. Mỗi lần gõ một chữ cái, danh sách sẽ được lọc, đồng thời tự động tìm đến mục có từ đầu tiên (nếu có) giống với từ đang gõ (hình 1). Bạn lưu ý, trong dòng lệnh đầu tiên của thủ tục Text1_Change, ngay sau InStr(CompanyName là dấu phẩy, một dấu nháy đơn và một dấu nháy kép; ngay sau dấu & cuối cùng là một dấu nháy kép và một dấu nháy đơn.

Đoạn mã 1

Option Explicit
Private Declare Function SendMessage Lib "User32" Alias "SendMessageA" (ByVal _
        hWnd As Long, ByVal wMsg As Integer, ByVal wParam As String, _
        lParam As Any) As Long
Const LB_FINDSTRING = &H18F
Private Sub Form_Load()
     TaoList ("")
End Sub
Private Sub Text1_Change()
    TaoList ("InStr(CompanyName,'" & Text1.Text & "') <> 0")
    List1.ListIndex = SendMessage(List1.hWnd, LB_FINDSTRING, Text1, ByVal Text1.Text)
End Sub
Sub TaoList(sDieuKien)
    Dim db As Database, rs As Recordset
    Dim sSQL As String
    Set db = OpenDatabase("C:\Program Files\Microsoft Visual Studio\VB98\NWIND.MDB")
    sSQL = "SELECT CompanyName " & "FROM Customers " & _
               IIf(sDieuKien = "", "", "WHERE " & sDieuKien & " ") & _
               "ORDER BY CompanyName;"
    Set rs = db.OpenRecordset(sSQL)
    With List1
        .Clear
        If Not rs.EOF Then
             rs.MoveFirst
        End If
        Do While Not rs.EOF
            .AddItem rs!CompanyName
            rs.MoveNext
        Loop
    End With
End Sub

Hình 1 - Lọc danh sách và tự động tìm

CHƯƠNG CAN CHÍP

Cài Windows XP và Vista trên cùng 1 máy

Đó hỏi: Hướng dẫn giúp em cài Vista và XP trên cùng một máy, em đã cài Vista sau cùng nhưng vẫn không có menu dualboot, có cách nào khác để cài không?
<maikhongquenaa12@>

Đây trả lời: Bạn có thể cài Windows và Vista trên cùng 1 máy theo 2 cách dưới đây:
1. Đầu tiên bạn cài Windows XP, sau đó bạn vào XP để cài Windows Vista - lưu ý là bạn bắt buộc phải cài Windows Vista vào phân vùng NTFS và không được cài đè vào thư mục của Windows XP – từ đĩa DVD. Chương trình cài Vista sẽ tự động dò tìm hệ điều hành đang có trên máy để tạo menu Dual boot. Cài 2 Windows theo cách này đơn giản hơn nhưng mỗi khi có 1 hệ điều hành bị trục trặc thì việc cài lại phức tạp hơn và dễ có nguy cơ phải cài lại cả 2 Windows. Muốn xóa bớt 1 Windows cũng không đơn giản chút nào.
2. Bạn dùng Partition Magic tạo 2 partition trong vùng Primary rồi lần lượt active từng partition để cài từng hệ điều hành (khi một partition được active thì partition còn lại sẽ tự động ẩn) như cài trong 2 máy khác nhau. Sau đó, bạn cài Boot Magic (có trong bộ Partition Magic) trong 1 partition FAT của vùng Extanded để tạo menu Dual boot hay chạy Pqboot.exe (cũng có trong bộ Partition Magic) để chỉ định partition khởi động trong môi trường DOS. Tham khảo trang Web http://www.echip.com.vn/echiproot/html/2006/305tt/hoidap.html để biết thêm thông tin.
Cài 2 Windows theo cách này thì phức tạp hơn, khi cần chuyển qua lại 2 hệ điều hành cũng mắc công hơn nhưng bù lại 2 Windows sẽ hoàn toàn độc lập không ảnh hưởng lẫn nhau và việc cài đặt cũng như xóa từng hệ điều hành rất dễ dàng.
LÊ HOÀN

[Đầu trang]