Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
[Help] Áp dụng query lọc dữ liệu nhập vào form
#1
Mình muốn làm form nhập dữ liệu kiểu này mà chưa biêt làm ntn nên nhờ các bác giúp đỡ.

Bang "thongtin" chứa thông tin về tỉnh, huyện, xã được nhập trước
bảng Customer chứa thông tin được nhập từ form Customer
mình muốn nhập tỉnh, huyện, xã lấy thông tin từ bảng "thongtin" và dùng combobox

Trên form Customer
đầu tiên chọn tỉnh;
sau khi chọn tỉnh đến chọn huyện thì chỉ những huyện thuộc tỉnh đó mới hiện ra trong danh sách chọn
chọn xã: trong combobox chỉ hiện xã thỏa mãn điều kiện tỉnh, huyện
cuối cùng là tạo ID

mình có làm file đính kèm nhờ các bác giúp đỡ.

Cảm ơn nhiều.
link file:  https://drive.google.com/file/d/0B7Qiq_T...sp=sharing
Chữ ký của amazonvn82 amazonvn82,gia nhập Thủ Thuật Access từ 07-08 -15.
Reply
Những người đã cảm ơn
#2
Mở database của bạn ra mình tá hỏa tam tinh. Trong relationships không biết ở đâu mà có 3 table lạ hoắc (MSysNavPaneGroupCategories, MsysNavPaneGroups, MSysNavPaneGroupToObjects). Bạn nên tạo lại một database mới cho riêng mình.
1/ Nên tạo các table tỉnh, huyện, xã riêng với primary key cho từng table rồi tạo relationships cụ thể. Ví dụ table Tinh có field: MaTinh, TenTinh; table Huyen có field: MaHuyen, TenHuyen, MaTinh; table Xa có field: MaXa, TenXa, MaHuyen. Các field xanh đậm là khóa chính, các field đỏ là khóa ngoại
2/ Trên form Customer vẫn giữ các control của các field đầy đủ. Các combobox lọc phải tạo riêng có control source là Unbound. Giả sử bạn có 3 Combo: LocTinh, LocHuyen, LocXa.
LocTinh có row source: SELECT Tinh.MaTinh, Tinh.TenTinh FROM Tinh;
LocHuyen co row source: SELECT Huyen.MaHuyen, Huyen.TenHuyen, Huyen.MaTinh FROM Huyen WHERE (((Huyen.MaTinh)=[Forms]![Customer]![LocTinh]));
LocXa có row source: SELECT Xa.MaXa, Xa.TenXa, Xa.MaHuyen FROM Xa WHERE (((Xa.MaHuyen)=[Forms]![Customer]![LocHuyen]));
Nguyên tắc lọc là combobox đơn vị nào thì có row source là query lọc của table đơn vị đó theo điều kiện của combobox table cha.
3 Xử lý các code để chạy bộ lọc:
Thiết đặt lại record source cho Form Customer : SELECT Customer.ID, Customer.Tinh, Customer.Huyen, Customer.Xa, Customer.ngay, Customer.tenhang, Customer.soluong FROM Customer WHERE (((Customer.Tinh)=[Forms]![Customer]![LocTinh]) AND ((Customer.Huyen)=[Forms]![Customer]![LocHuyen]) AND ((Customer.Xa)=[Forms]![Customer]![LocXa]));
Code:

Mã:
Private Sub LocHuyen_AfterUpdate()
    LocXa.Requery
    Me.Requery
End Sub

Private Sub LocTinh_AfterUpdate()
    Lochuyen.Requery
    LocXa.Requery
    Me.Requery
End Sub

Private Sub LocXa_AfterUpdate()
    Me.Requery
End Sub

Chúc bạn thành công.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn amazonvn82 , maidinhdan , Noname , Châu Gia Nguyễn
#3
(16-10-15, 12:12 AM)tranthanhan1962 Đã viết: Mở database của bạn ra mình tá hỏa tam tinh. Trong relationships không biết ở đâu mà có 3 table lạ hoắc (MSysNavPaneGroupCategories, MsysNavPaneGroups, MSysNavPaneGroupToObjects). Bạn nên tạo lại một database mới cho riêng mình.
1/ Nên tạo các table tỉnh, huyện, xã riêng với primary key cho từng table rồi tạo relationships cụ thể. Ví dụ table Tinh có field: MaTinh, TenTinh; table Huyen có field: MaHuyen, TenHuyen, MaTinh; table Xa có field: MaXa, TenXa, MaHuyen. Các field xanh đậm là khóa chính, các field đỏ là khóa ngoại
2/ Trên form Customer vẫn giữ các control của các field đầy đủ. Các combobox lọc phải tạo riêng có control source là Unbound. Giả sử bạn có 3 Combo: LocTinh, LocHuyen, LocXa.
LocTinh có row source: SELECT Tinh.MaTinh, Tinh.TenTinh FROM Tinh;
LocHuyen co row source: SELECT Huyen.MaHuyen, Huyen.TenHuyen, Huyen.MaTinh FROM Huyen WHERE (((Huyen.MaTinh)=[Forms]![Customer]![LocTinh]));
LocXa có row source: SELECT Xa.MaXa, Xa.TenXa, Xa.MaHuyen FROM Xa WHERE (((Xa.MaHuyen)=[Forms]![Customer]![LocHuyen]));
Nguyên tắc lọc là combobox đơn vị nào thì có row source là query lọc của table đơn vị đó theo điều kiện của combobox table cha.
3 Xử lý các code để chạy bộ lọc:
Thiết đặt lại record source cho Form Customer : SELECT Customer.ID, Customer.Tinh, Customer.Huyen, Customer.Xa, Customer.ngay, Customer.tenhang, Customer.soluong FROM Customer WHERE (((Customer.Tinh)=[Forms]![Customer]![LocTinh]) AND ((Customer.Huyen)=[Forms]![Customer]![LocHuyen]) AND ((Customer.Xa)=[Forms]![Customer]![LocXa]));
Code:

Mã:
Private Sub LocHuyen_AfterUpdate()
    LocXa.Requery
    Me.Requery
End Sub

Private Sub LocTinh_AfterUpdate()
    Lochuyen.Requery
    LocXa.Requery
    Me.Requery
End Sub

Private Sub LocXa_AfterUpdate()
    Me.Requery
End Sub

Chúc bạn thành công.

Mình mê và tự nghiên cứu access. Bài hướng dẫn này mình rất cần, nhưng còn gà quá, không hiểu hết. Mong các Pro vui lòng hướng dẫn rõ cách làm ở đoạn này dùm. Mình Cám ơn nhiều!
Thiết đặt lại record source cho Form Customer : SELECT Customer.ID, Customer.Tinh, Customer.Huyen, Customer.Xa, Customer.ngay, Customer.tenhang, Customer.soluong FROM Customer WHERE (((Customer.Tinh)=[Forms]![Customer]![LocTinh]) AND ((Customer.Huyen)=[Forms]![Customer]![LocHuyen]) AND ((Customer.Xa)=[Forms]![Customer]![LocXa]));

Code:
Chữ ký của Châu Gia Nguyễn Châu Gia Nguyễn,gia nhập Thủ Thuật Access từ 03-11 -15.
Reply
Những người đã cảm ơn
#4
Mình gửi file, nhờ các Pro làm giúp, cám ơn các Pro nhiều.
https://www.mediafire.com/#y6o0rmw9m1u4z
Chữ ký của Châu Gia Nguyễn Châu Gia Nguyễn,gia nhập Thủ Thuật Access từ 03-11 -15.
Reply
Những người đã cảm ơn
#5
Mình đã làm được rồi, cám ơn anh tranthanhan1962 nhiều. Nhờ Mode xóa bớt nội dung của tôi ở trên cho gọn diễn đàn. Xin cảm ơn!
Chữ ký của Châu Gia Nguyễn Châu Gia Nguyễn,gia nhập Thủ Thuật Access từ 03-11 -15.
Reply
Những người đã cảm ơn
#6
(26-11-15, 07:40 PM)Châu Gia Nguyễn Đã viết: Mình đã làm được rồi, cám ơn anh tranthanhan1962 nhiều. Nhờ Mode xóa bớt nội dung của tôi ở trên cho gọn diễn đàn. Xin cảm ơn!
Mình xem trong database1 bạn gửi. nhưng mình thầy khi chọn combobox huyện thì lại có hộp thoại xuất hiện và phải điền thông tin mã tỉnh vào. có cách nào mà lọc huyện từ giá trị đã chọn ở combobox tỉnh ko. không phải nhập tay giá trị tỉnh nữa.
Chữ ký của amazonvn82 amazonvn82,gia nhập Thủ Thuật Access từ 07-08 -15.
Reply
Những người đã cảm ơn
#7
(28-02-16, 06:48 PM)amazonvn82 Đã viết: Mình xem trong database1 bạn gửi. nhưng mình thầy khi chọn combobox huyện thì lại có hộp thoại xuất hiện và phải điền thông tin mã tỉnh vào. có cách nào mà lọc huyện từ giá trị đã chọn ở combobox tỉnh ko. không phải nhập tay giá trị tỉnh nữa.
Bạn có thể dùng hàm Dlookup để xử lý.
Chữ ký của tranthanhan1962 Kết quả cuối cùng của một đời người, không phải bạn có được bao nhiêu tiền bạc, tài sản. Mà bạn còn bao nhiêu người bạn  thumbs up
ღღღღღTài sản của tranthanhan1962 (View All Items) ღღღღღ
Reply
Những người đã cảm ơn maidinhdan
#8
(28-02-16, 06:48 PM)amazonvn82 Đã viết:
(26-11-15, 07:40 PM)Châu Gia Nguyễn Đã viết: Mình đã làm được rồi, cám ơn anh tranthanhan1962 nhiều. Nhờ Mode xóa bớt nội dung của tôi ở trên cho gọn diễn đàn. Xin cảm ơn!
Mình xem trong database1 bạn gửi. nhưng mình thầy khi chọn combobox huyện thì lại có hộp thoại xuất hiện và phải điền thông tin mã tỉnh vào. có cách nào mà lọc huyện từ giá trị đã chọn ở combobox tỉnh ko. không phải nhập tay giá trị tỉnh nữa.

(28-02-16, 09:03 PM)tranthanhan1962 Đã viết:
(28-02-16, 06:48 PM)amazonvn82 Đã viết: Mình xem trong database1 bạn gửi. nhưng mình thầy khi chọn combobox huyện thì lại có hộp thoại xuất hiện và phải điền thông tin mã tỉnh vào. có cách nào mà lọc huyện từ giá trị đã chọn ở combobox tỉnh ko. không phải nhập tay giá trị tỉnh nữa.
Bạn có thể dùng hàm Dlookup để xử lý.

Bạn đã giải quyết được vấn đề của mình chưa, chia sẻ cho mình flie của bạn được không, mình cũng đang cần, cảm ơn bạn
Chữ ký của nguyendaivuong Xin chào, mình là nguyendaivuong, Tham gia http://thuthuataccess.com/forum từ ngày 22-05 -15.
Reply
Những người đã cảm ơn
#9
(28-09-16, 09:46 AM)nguyendaivuong Đã viết:
(28-02-16, 06:48 PM)amazonvn82 Đã viết:
(26-11-15, 07:40 PM)Châu Gia Nguyễn Đã viết: Mình đã làm được rồi, cám ơn anh tranthanhan1962 nhiều. Nhờ Mode xóa bớt nội dung của tôi ở trên cho gọn diễn đàn. Xin cảm ơn!
Mình xem trong database1 bạn gửi. nhưng mình thầy khi chọn combobox huyện thì lại có hộp thoại xuất hiện và phải điền thông tin mã tỉnh vào. có cách nào mà lọc huyện từ giá trị đã chọn ở combobox tỉnh ko. không phải nhập tay giá trị tỉnh nữa.

(28-02-16, 09:03 PM)tranthanhan1962 Đã viết:
(28-02-16, 06:48 PM)amazonvn82 Đã viết: Mình xem trong database1 bạn gửi. nhưng mình thầy khi chọn combobox huyện thì lại có hộp thoại xuất hiện và phải điền thông tin mã tỉnh vào. có cách nào mà lọc huyện từ giá trị đã chọn ở combobox tỉnh ko. không phải nhập tay giá trị tỉnh nữa.
Bạn có thể dùng hàm Dlookup để xử lý.

Bạn đã giải quyết được vấn đề của mình chưa, chia sẻ cho mình flie của bạn được không, mình cũng đang cần, cảm ơn bạn

Mình chưa làm được bạn ơi. bận nhiều việc quá nên không có thời gian tìm hiểu nữa. hix. mặc dù rất đam mê access
Chữ ký của amazonvn82 amazonvn82,gia nhập Thủ Thuật Access từ 07-08 -15.
Reply
Những người đã cảm ơn


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Tự động hiện Form khi loading hết thời gian ChiMai 1 20 11 Giờ trước
Bài mới nhất: ongke0711
  [Help] Cập nhật combobox 2 từ combobox 1 (dữ liệu ở nhiều bảng) votinh.tq 6 197 22-11-16, 11:34 PM
Bài mới nhất: votinh.tq
Photo [Hỏi] Mở Form trên access 2007 báo lỗi jason 5 186 22-11-16, 09:23 AM
Bài mới nhất: jason
  [Hỏi] Làm sao để ấn định Null cho trường Date khi sử dụng Class Module Minh Tiên 8 612 18-11-16, 09:29 AM
Bài mới nhất: MinhnHang
  Query hiện lên trên form? feeling 4 160 09-11-16, 09:49 PM
Bài mới nhất: toancvp

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ