-
Không chọn được nhiều Nhân viên từ subform
huuduy.duy > 19-09-18, 03:12 PM
Chào các anh, chị
Cho em hỏi, em muôn tạo ra Phiếu Yêu càu đào tạo, Phiếu Yêu cầu này dựa trên kế hoạch đào tạo, Mỗi phiếu yêu cầu bao gồm có các nội, danh sách nhân viên cần đào tạo.
1. Form nhập liệu em thiết kế như Form frmPhieuYenCau, nhưng khi em chọn danh sách nhân viên cần đào tạo thì không chọn được nhiều người. Nhờ các anh chị giúp em khắc phục.
2. Phần sfrmNVCanDaoTao, có thể chọn rất là nhiều nhân viên (có khi vài trăm người), như thiết kế của em thì chọn rất là tốn thời gian, cho em hỏi, có cách nào để việc chọn danh sách nhân viên được thuận tiện hơn không ? Nếu được nhờ các anh chị giúp em
Trân trọng cảm ơn!
http://www.mediafire.com/file/9s69fepiez...accdb/file
-
RE: Không chọn được nhiều Nhân viên từ subform
NguyenDungAnh > 19-09-18, 06:24 PM
kiểm tra xem quan hệ giữa main - sub có phải quan hệ 1-nhiều chưa -
RE: Không chọn được nhiều Nhân viên từ subform
cpucloi > 19-09-18, 07:57 PM
Bạn thiết kế kiểu kết hợp UnBround - Bround Form (cái này mình chưa bao giờ làm cả).
Theo mình, bạn nên đưa thiết kế theo dạng Bround Form cho tiện (nếu như không tái sử dụng form này vào việc khác nữa).
Việc sử dụng Bround Form thì Access đã hỗ trợ rất nhiều, kể cả bẫy lỗi (đối với UnBround thì ngược lại) -
RE: Không chọn được nhiều Nhân viên từ subform
tt1212 > 19-09-18, 08:03 PM
Dung msql lọc ra bạn -
RE: Không chọn được nhiều Nhân viên từ subform
ongke0711 > 19-09-18, 08:52 PM
- Đúng như bạn cpuloi đã đề cập. Đối với SubForm dạng Datasheet (hoặc Continuous) để chọn được nhiều dòng bắt buộc phải dùng Bound Form. Nếu bạn không muốn Bound thẳng vô table nguồn thì bạn có thể tạo table tạm rồi Bound Subform vô table đó, sau khi nhập liệu xong thì dùng lệnh Insert Into để Append các records trong table tạm vào table đích cần cập nhật.
- Về việc chọn nhiều nhân viên một lúc cho đỡ tốn thời gian thì tôi có một cách bạn có thể tham khảo như hình bên dưới: chọn nhiều nhân viên xong đẩy qua danh sách bên phải, nếu ok thì lưu. Bạn tự ngâm cứu cách thiết kế trước đi nhé. Dùng 2 Listbox. Hình như trong diễn đàn cũng có hướng dẫn cách làm này rồi thì phải.
-
RE: Không chọn được nhiều Nhân viên từ subform
tranthanhan1962 > 19-09-18, 09:21 PM
(19-09-18, 08:52 PM)ongke0711 Đã viết: - Đúng như bạn cpuloi đã đề cập. Đối với SubForm dạng Datasheet (hoặc Continuous) để chọn được nhiều dòng bắt buộc phải dùng Bound Form. Nếu bạn không muốn Bound thẳng vô table nguồn thì bạn có thể tạo table tạm rồi Bound Subform vô table đó, sau khi nhập liệu xong thì dùng lệnh Insert Into để Append các records trong table tạm vào table đích cần cập nhật.
Nói chung chỉ có combobox chỉ cho phép chọn mỗi dòng/lần chọn còn mấy thứ dạng danh sách khác như subform (kể cả Bound Subform hoặc Unbound Subform) thậm chí listbox vẫn có thể chọn nhiều dòng/lần. Chỉ là vấn đề xử lý. Có thể dùng thêm một field kiểu yes/no để xử lý việc chọn nhiều dòng, sau khi cho xong phải có code xử lý bỏ chọn toàn bộ các dòng đã chọn.
- Về việc chọn nhiều nhân viên một lúc cho đỡ tốn thời gian thì tôi có một cách bạn có thể tham khảo như hình bên dưới: chọn nhiều nhân viên xong đẩy qua danh sách bên phải, nếu ok thì lưu. Bạn tự ngâm cứu cách thiết kế trước đi nhé. Dùng 2 Listbox. Hình như trong diễn đàn cũng có hướng dẫn cách làm này rồi thì phải. -
RE: Không chọn được nhiều Nhân viên từ subform
ongke0711 > 19-09-18, 09:45 PM
(19-09-18, 09:21 PM)tranthanhan1962 Đã viết: Nói chung chỉ có combobox chỉ cho phép chọn mỗi dòng/lần chọn còn mấy thứ dạng danh sách khác như subform (kể cả Bound Subform hoặc Unbound Subform) thậm chí listbox vẫn có thể chọn nhiều dòng/lần. Chỉ là vấn đề xử lý. Có thể dùng thêm một field kiểu yes/no để xử lý việc chọn nhiều dòng, sau khi cho xong phải có code xử lý bỏ chọn toàn bộ các dòng đã chọn.
ý bạn duy không phải chọn nhiều dòng hay một dòng trong combobox mà là có thể nhập liệu nhiều dòng trong cái SubF này. còn việc anh nói Subform dạng Unbound mà có thể nhập nhiều dòng thì em chưa làm ra được.
-
RE: Không chọn được nhiều Nhân viên từ subform
mrsiro > 19-09-18, 10:27 PM
Theo cách của ongke là mình thấy chuẩn rồi đấy, dùng table tạm là nguồn cho subform. Nếu ko muốn thay đổi cái giao diện của mainform thì thiết kế thêm 1 form chuyên dùng cho việc chọn (có thể tái sử dụng form này cho nhiều chỗ), giao diện form chọn thì thiết kế 2 listbox, đẩy dữ liệu từ listbox trái sang listbox phải, thiết kế thêm nút lưu, khi ấn nút này tự động thêm toàn bộ record trong listbox phải vào table tạm, đồng thời requery luôn cái form phiếu yêu cầu kia. Thế là tự động subform có thêm toàn bộ record vừa chọn. -
RE: Không chọn được nhiều Nhân viên từ subform
tranthanhan1962 > 19-09-18, 11:26 PM
(19-09-18, 09:45 PM)ongke0711 Đã viết:
À hiểu rồi! sorry! tại tiêu đề là "Không chọn được nhiều Nhân viên từ subform" nên hiểu nhầm. Form Unbound chỉ cho 1 dòng new duy nhất nên làm cách thông thường không nhập được nhiều dòng là phải thôi. Muốn xử lý nhập được nhiều dòng phải chơi chiêu. Ví dụ table có 5 field, muốn sử dụng nhập cho x dòng thì phải có x*5 control tương ứng. Dùng for next để xử lý, có điều vụ này vượt ngưỡng huuduy.duy. Thực ra, access đã hỗ trợ bound form, sướng quá không có gì mà không xử lý được. Ai lại đi sử dụng unbound form để làm khó mìnhý bạn duy không phải chọn nhiều dòng hay một dòng trong combobox mà là có thể nhập liệu nhiều dòng trong cái SubF này. còn việc anh nói Subform dạng Unbound mà có thể nhập nhiều dòng thì em chưa làm ra được.
-
RE: Không chọn được nhiều Nhân viên từ subform
huuduy.duy > 28-09-18, 11:47 PM
(19-09-18, 08:52 PM)ongke0711 Đã viết: - Đúng như bạn cpuloi đã đề cập. Đối với SubForm dạng Datasheet (hoặc Continuous) để chọn được nhiều dòng bắt buộc phải dùng Bound Form. Nếu bạn không muốn Bound thẳng vô table nguồn thì bạn có thể tạo table tạm rồi Bound Subform vô table đó, sau khi nhập liệu xong thì dùng lệnh Insert Into để Append các records trong table tạm vào table đích cần cập nhật.
- Về việc chọn nhiều nhân viên một lúc cho đỡ tốn thời gian thì tôi có một cách bạn có thể tham khảo như hình bên dưới: chọn nhiều nhân viên xong đẩy qua danh sách bên phải, nếu ok thì lưu. Bạn tự ngâm cứu cách thiết kế trước đi nhé. Dùng 2 Listbox. Hình như trong diễn đàn cũng có hướng dẫn cách làm này rồi thì phải.
1. Em đã làm theo dạng Listbox, như gợi ý của anh, nhưng mỗi khi bấm qua lại thì nó CHỚP CHỚP, khắc phục như thế nào ạ
2. Phần code nút Lưu,
2.1 Các dữ liệu ở Main form vào tblPhieuYeuCau,
2.2 Còn phần lstDSDaoTao thì lưu vào tblNhanVienDaDaoTao (ID, MaPhieuYeuCau, MSNV , MaCV, MaPB, GhiChu), Nhưng mỗi khi Lưu dữ liệu thì nó cập nhật tất cả các MaPhieuYeuCau đã tồn tại trước đó vào tblNhanVienDaDaoTao thay vì chỉ lấy 1 mã MaPhieuYeuCau
Link tải file: http://www.mediafire.com/file/6csa51r77b...7.zip/file
[img]Mã:' Cap nhat vao Bang Nhan vien Can Dao Tao
db.Execute "INSERT INTO tblNhanVienDaDaoTao (MSNV,MaCV,MaPB,GhiChu,MaPhieuYeuCau)" & _
"SELECT tblNhanVienTemp.MSNV, tblNhanVienTemp.MaCV,tblNhanVienTemp.MaCV,tblNhanVienTemp.GhiChu,tblPhieuYeuCau.IDPYC " & _
"FROM tblNhanVienTemp,tblPhieuYeuCau " & _
"WHERE tblNhanVienTemp.fldFlag = 0"http://[/img] [img]
http://[/img]
Nhờ các anh chị khắc phục giúp em