À có lẽ mình biết lỗi rồi! Mình lúc đầu tạo một combo bằng wizard sau đó mình xoá đi tạo textbox xem sao. Nó báo lỗi giống lúc đầu, bạn chỉ giùm mình cách lập trình khi click vào combo thì xuất hiện MaKH,TenKH,DT để lựa chọn. Sau khi lựa chọn thì kết quả sẽ hiển thị những nhân viên có mã giống với mã trong combo đó. Giống như đề bài mình nói đó nhưng chỉ thay cái ô textbox bằng combo thôi.
Xem bài của bạn, theo mình thấy:
- record source của form không nhất thiết phải dùng Select. lấy đầy đủ danh sách là được rồi:
DSLamviec - Sự kiện TxtTenKH_beforeupdate của bạn phải là:
Mã:
Private Sub TxtTenKH_BeforeUpdate(Cancel As Integer)
DoCmd.ApplyFilter "", "[TenKH] = [Forms]![Form1]![TxtTenKH]"
End Sub
- cbotungay và cbodenngay: bạn đặt format là shortdate nhưng input mask lại là kiểu nhập của long date.
- Fields tên khách hàng của bạn không có một quy chuẩn, nên rất khó tạo điều kiện để tìm kiếm. Trong trường hợp bạn tạo cboTenKH, nếu bạn có hàng ngàn khách hàng thì dò tìm trong cboTenKH đến bao giờ mới thấy. Bạn nên đặt textbox và tìm kiếm theo ký tự đại diện thì hay hơn.
Theo mình: fields tên khách hàng bạn nên tách làm 2 fields: tenkh và diạchi, để tìm theo điều kiện tên khách hàng.
điều kiện ngày cũng vậy: bạn đặt là textbox thì chỉ việc gõ từ ngày đến ngày là được rồi.
Bạn nên đặt thêm một nút
tìm kiếm.
Còn nếu bạn vẫn dùng combobox thì đặt ApplyFilter trong sự kiện afterupdate của combox.
Xin lỗi nhé, mấy hôm nay mình bận quá. không thể chỉnh sửa lại file cho bạn được.
Bạn thử theo hướng trên xem sao. Nếu vẫn chưa được, tiếp tục lên diễn đàn mọi người sẽ giúp. (mình cũng học chính từ diễn đàn)