Thủ Thuật Access
[Hỏi] Liên kết comboBox với subform để điền dữ liệu giống nhau vào table - Phiên bản có thể in

+- Thủ Thuật Access (http://thuthuataccess.com/forum)
+-- Diễn đàn: Access Cơ Bản (http://thuthuataccess.com/forum/forum-5.html)
+--- Diễn đàn: Forms (http://thuthuataccess.com/forum/forum-8.html)
+--- Chủ đề: [Hỏi] Liên kết comboBox với subform để điền dữ liệu giống nhau vào table (/thread-10766.html)



Liên kết comboBox với subform để điền dữ liệu giống nhau vào table - vuthaiha90 - 03-12-18

Em chào các bác ạ, em có chương trình thế này, đang đến đoạn chấm công bị bí, xin nhờ các bác hướng dẫn thêm ạ: Có combobox để chọn Mã phòng ban, chọn xong liệt kê danh sách cán bộ trong phòng, chọn tên cán bộ cần chấm công, thì bên dưới điền mỗi số ngày nghỉ phép trong tháng vào thôi, còn những trường như "Tháng, Năm, Mã phòng" thì em muốn do mình chọn bên trên rồi thì tự nó điền vào "Table Chấm Công" được không ạ, em search thì chỉ có table và quan hệ chứ không có query hay form nên không học hỏi được cách làm, chứ em thấy người ta làm chấm công theo bộ phận theo tháng kiểu đó được. Vậy cho em xin hỏi em thiết kế table thiếu hay nhầm hay tạo quan hệ sai mà làm không ra ạ. em xin cảm ơn các bác


RE: Liên kết comboBox với subform để điền dữ liệu giống nhau vào table - ongke0711 - 03-12-18

- Nhìn chung cái file của bạn là còn phải sửa lại nhiều nhiều lắm.  007
- Để tự động điền Tháng, Năm từ Mainform vào Subform thì bạn chỉ cần dùng Link Master/Child 2 fields đó giữa 2 form là được rồi. Bạn tự ngâm cứu liên kết Master/Child nhé.
- Đối với form Chấm công theo cách của bạn thì chỉ cần lưu Mã CB làm Key, không cần lưu thêm Mã PB chi vì sau này khi cần báo cáo chỉ cần Join với table Cán Bộ là lấy ra mã PB rồi.
- Khi thiết kế Form nhập liệu, nhập liệu table nào thì lấy table đó làm Control Source cho Form luôn tránh join với các table khác mà không có nhập liệu gì cho table đó. Vd: Control Source frm Cham Cong của bạn dính vô trường hợp này.


RE: Liên kết comboBox với subform để điền dữ liệu giống nhau vào table - vuthaiha90 - 04-12-18

(03-12-18, 08:40 PM)ongke0711 Đã viết: - Nhìn chung cái file của bạn là còn phải sửa lại nhiều nhiều lắm.  007
- Để tự động điền Tháng, Năm từ Mainform vào Subform thì bạn chỉ cần dùng Link Master/Child 2 fields đó giữa 2 form là được rồi. Bạn tự ngâm cứu liên kết Master/Child nhé.
- Đối với form Chấm công theo cách của bạn thì chỉ cần lưu Mã CB làm Key, không cần lưu thêm Mã PB chi vì sau này khi cần báo cáo chỉ cần Join với table Cán Bộ là lấy ra mã PB rồi.
- Khi thiết kế Form nhập liệu, nhập liệu table nào thì lấy table đó làm Control Source cho Form luôn tránh join với các table khác mà không có nhập liệu gì cho table đó. Vd: Control Source frm Cham Cong của bạn dính vô trường hợp này.

"liên kết Master/Child" em lúc đầu nghĩ chỉ được 1 trường, giờ em add 4 trường: MaPhongBan (subform1) và Thang, Nam, MaCanBo (subform2) là đã giải quyết được. Đúng là bỏ MaPhongBan trong tblChamCong đi cũng được với form nhập liệu chọn chính tblChamCong là ok. Nhưng cho em hỏi có cách nào nếu mình chọn xong Mã Phòng Ban mới hiện subform MaPhongBan để chọn tiếp MaCanBo, chọn xong mới hiện subform ChamCong không ạ, hiện tại hiện hết lên thì do chưa chọn nên toàn hiện Error nó xấu, còn trường Thang va Nam do đặt defaut là Month(date()) và year(date()) nên không bị


RE: Liên kết comboBox với subform để điền dữ liệu giống nhau vào table - ongke0711 - 05-12-18

Việc ẩn hiện subform không khó nhưng thay vì làm vậy tôi nghĩ bạn nên phân tích, thiết kế lại cái form sao cho việc nhập liệu đơn giản nhất, nhanh nhất để người dùng ít rồi bởi nhiều subF trong đó, không biết nên thao tác nào trước.
Vd: khi chọn mã PB từ combox sẽ liệt kê các nhân viên trong subF, bạn chỉ việc click vô NV nào đó rồi nhập số ngày nghỉ kế bên. Hoặc thêm 1 combo chọn NV để rút gọn thêm nữa cái danhh sách. Nói chung chỉ cần 1 Subf để nhập liệu.


RE: Liên kết comboBox với subform để điền dữ liệu giống nhau vào table - vuthaiha90 - 05-12-18

(05-12-18, 01:25 PM)ongke0711 Đã viết: Việc ẩn hiện subform không khó nhưng thay vì làm vậy tôi nghĩ bạn nên phân tích, thiết kế lại cái form sao cho việc nhập liệu đơn giản nhất, nhanh nhất để người dùng ít rồi bởi nhiều subF trong đó, không biết nên thao tác nào trước.
Vd: khi chọn mã PB từ combox sẽ liệt kê các nhân viên trong subF, bạn chỉ việc click vô NV nào đó rồi nhập số ngày nghỉ kế bên. Hoặc thêm 1 combo chọn NV để rút gọn thêm nữa cái danhh sách. Nói chung chỉ cần 1 Subf để nhập liệu.

Vâng, em đang làm theo hướng combobox chọn phòng, xong chọn tên nhân viên, và điền số ngaỳ nghỉ nếu có vào. Nhưng lại đến đoạn tính số ngày đi làm thì không biết làm query, em cho tblcanbo,tblphongban,tblchamcong vào nhưng nó chỉ tính được số ngày đi làm của những người có nghỉ phép chứ không được cả cơ quan, mong các bác giúp em đoạn này. Em cảm ơn
P/s: File mới em đây ạ


RE: Liên kết comboBox với subform để điền dữ liệu giống nhau vào table - ongke0711 - 05-12-18

Bạn nên làm theo cách cũ là chấm công tháng nào thì sẽ chạy lẹnh Append toàn bộ nhân viên vô table chấm công với các thông tin như: MaNV, năm, tháng, số ngày làm việc trong tháng đó luôn.