-
Sub Form tự động điền các record
haidc > 02-12-17, 01:58 PM
Mình có 1 chương trình Quản lý Lệnh sản xuất gồm 1 Main Form và Sub Form. Sau khi nhập các thông tin như : Số lệnh, ngày tháng, ca, Tổ, sản lượng ...v.v trên Main Form thì xuống Sub Form tiếp tục nhập tên các cá nhân trong Tổ tham gia sản xuất ca đấy đồng thời sản lượng làm được chia đều cho tất cả công nhân của Tổ. Mình thiết kế được và Form chạy bình thường nhưng khó khăn ở đây là :
Tổ sản xuất gồm nhiều công nhân (gần 70 người) nên mỗi lần nhập trong Sub Form phải nhập gần 70 record và phải dùng máy tính tay chia trước sản lượng cho số công nhân trong Tổ do đó mất nhiều thời gian và không chuyên nghiệp lắm.
Việc chia đều sản lượng dù chưa làm nhưng mình nghĩ có thể làm được thông qua cú pháp SetValue nhưng việc điền các công nhân của Tổ vào Sub Form thì gặp khó khăn. Mình có thử dùng Append Query để mỗi khi nhập từ Main Form nhảy xuống Sub Form thì query tự động chép toàn bộ công nhân của Tổ vào Sub Form nhưng không khả quan.
Mong các bác có cao kiến gì giúp đỡ dùm mình. Cảm ơn tất cả các bác đã đọc bài.
File demo của mình đây https://www.fshare.vn/file/CTUIQVZ2XAEU -
RE: Sub Form tự động điền các record
lmthu > 02-12-17, 03:16 PM
Mình có góp ý như sau:
Bạn làm 1 bảng tính Excel gồm 70 dòng có 5 cột tương ứng với 5 field: Sopphieu (để liên kết với mainform), Congnhan, Ten, Sanluong_ct, Ghichu. Nhập từ Excel và cài công thức để chia sản lượng cho từng người trước (cái này thì Excel làm nhanh và hay hơn Access nhiều) lưu bảng tính này thành 1 file. Sau đó dùng lệnh DoCmd.TransferSpreadsheet để nhập bảng tính Excel vào subform frm_Lenh boc xep_ctiet -
RE: Sub Form tự động điền các record
haidc > 02-12-17, 05:15 PM
(02-12-17, 03:16 PM)lmthu Đã viết: Mình có góp ý như sau:
Bạn làm 1 bảng tính Excel gồm 70 dòng có 5 cột tương ứng với 5 field: Sopphieu (để liên kết với mainform), Congnhan, Ten, Sanluong_ct, Ghichu. Nhập từ Excel và cài công thức để chia sản lượng cho từng người trước (cái này thì Excel làm nhanh và hay hơn Access nhiều) lưu bảng tính này thành 1 file. Sau đó dùng lệnh DoCmd.TransferSpreadsheet để nhập bảng tính Excel vào subform frm_Lenh boc xep_ctiet
Cảm ơn bạn nhiều nhưng mình thực hiện thử thì nó import dữ liệu từ file Excel soạn sẵn vào table nhưng nó không cập nhật ngay mà phải chuyển record trên Main Form sang record khác rồi quay lại nó mới có hiệu lực. Chưa kể là ô nhập "Sản lượng" là trên Main Form, nếu mình chia sản lượng trước trên Excel rồi lưu file Excel lại xong mở Access lên chạy Form nhập liệu đâm ra làm 2 thao tác.
Dù sao ý tưởng của bạn cũng hay. -
RE: Sub Form tự động điền các record
tranthanhan1962 > 02-12-17, 06:27 PM
(02-12-17, 03:16 PM)lmthu Đã viết: Mình có góp ý như sau:
Hì hì! Hướng dẫn access sau mà lạng qua excel nữa bạn.
Bạn làm 1 bảng tính Excel gồm 70 dòng có 5 cột tương ứng với 5 field: Sopphieu (để liên kết với mainform), Congnhan, Ten, Sanluong_ct, Ghichu. Nhập từ Excel và cài công thức để chia sản lượng cho từng người trước (cái này thì Excel làm nhanh và hay hơn Access nhiều) lưu bảng tính này thành 1 file. Sau đó dùng lệnh DoCmd.TransferSpreadsheet để nhập bảng tính Excel vào subform frm_Lenh boc xep_ctiet
Hỗ trợ cho bạn haidc:[url=http://thuthuataccess.com/forum/user-8562.html][/url]
1/Tạo một select query tbl_So lieu boc xep_ctiet_Tam, query này có đầy đủ field của tbl_So lieu boc xep_ctiet. và nguồn query là table tbl_Nhanvien (để lấy toàn bộ danh sách nhân viên.
2/Không sử dụng form frm_Lenh boc xep_Ctrl để tao danh sách mà dùng form frm_Lenh boc xep để tạo danh sách nhằm mục đích lấy giá trị textbox Sophieu từ form frm_Lenh boc xep gán cho field Sophieu trên query tbl_So lieu boc xep_ctiet_Tam.
3/Tạo SQL append query lấy dữ liệu từ query tbl_So lieu boc xep_ctiet_Tam append vào table tbl_Số liệu bốc xếp_ctiet. -
RE: Sub Form tự động điền các record
haidc > 02-12-17, 07:39 PM
Mình cũng đã thử giải pháp Append Query và kết quả cũng như trên. Mình đặt sự kiện LostFocus cho field cuối cùng trên MainForm là chạy AppendQuery nhưng nó ko nối vào. Nhưng qua Lệnh kế rồi quay lại thì khi LostFocus nó nối vào. Mình đoán là do chưa đủ các thông tin nên AppendQuery ko biết nối record nào. Khi chuyển qua Lệnh khác rồi quay lại các thông tin trên MainForm đã hoàn chỉnh nên AppendQuery chạy được. -
RE: Sub Form tự động điền các record
ongke0711 > 03-12-17, 08:19 PM
(02-12-17, 07:39 PM)haidc Đã viết: Mình cũng đã thử giải pháp Append Query và kết quả cũng như trên. Mình đặt sự kiện LostFocus cho field cuối cùng trên MainForm là chạy AppendQuery nhưng nó ko nối vào. Nhưng qua Lệnh kế rồi quay lại thì khi LostFocus nó nối vào. Mình đoán là do chưa đủ các thông tin nên AppendQuery ko biết nối record nào. Khi chuyển qua Lệnh khác rồi quay lại các thông tin trên MainForm đã hoàn chỉnh nên AppendQuery chạy được.
Cách làm thì cũng giống như anh tranthanhan1962 đã hướng dẫn tức là dùng Append Query để thêm danh sách công nhân hàng loạt nhưng bạn vấn đề là đặt ở sự kiện nào để nó thực thi mà không bị lỗi gì.
Theo cách tôi làm:
- Sẽ thêm 1 nút [Phân bổ], khi bấm nút này sẽ chạy lệnh nối danh sách, cập nhật [Sophieu], [Sanluong_ct] cho table của Sub form và tất nhiên trước khi chạy sẽ kiểm tra các thông tin trên Main form bắt buộc phải có như: [Sopieu], [Ngày], [Tổ BX], [Soluong], v.v… Sau đó lưu thông tin Main form xuống Table rồi mới nối dữ liệu cho Sub form được.
- Nếu bạn không muốn tạo thêm nút [Phân bổ] thì dùng sự kiện On Lost Forcus của textbox [Soluong] để chạy code của nút [Phân bổ].
Tôi chỉ làm demo những code cơ bản để ra kết quả như bạn yêu cầu, chưa có bẫy lỗi gì cả nhé.
Link demo: http://www.mediafire.com/file/gv676ic9m9...sua%29.mdb -
RE: Sub Form tự động điền các record
haidc > 03-12-17, 10:16 PM
(03-12-17, 08:19 PM)ongke0711 Đã viết:
(02-12-17, 07:39 PM)haidc Đã viết: Mình cũng đã thử giải pháp Append Query và kết quả cũng như trên. Mình đặt sự kiện LostFocus cho field cuối cùng trên MainForm là chạy AppendQuery nhưng nó ko nối vào. Nhưng qua Lệnh kế rồi quay lại thì khi LostFocus nó nối vào. Mình đoán là do chưa đủ các thông tin nên AppendQuery ko biết nối record nào. Khi chuyển qua Lệnh khác rồi quay lại các thông tin trên MainForm đã hoàn chỉnh nên AppendQuery chạy được.
Cách làm thì cũng giống như anh tranthanhan1962 đã hướng dẫn tức là dùng Append Query để thêm danh sách công nhân hàng loạt nhưng bạn vấn đề là đặt ở sự kiện nào để nó thực thi mà không bị lỗi gì.....
www.mediafire.com/file/gv676ic9m9fydh3/Boc_xep%28sua%29.mdb
Biết lấy gì mà đền ơn bác bây giờ. Bác hơi lộn 1 chỗ, thay vì chia Sản lượng bác làm chia Số lượng))). Nhưng ko sao mình đã sửa lại. Chỉ 1 đoạn code của bác đã giải quyết sạch sẽ vấn đề. Thú thật là viết code thì mình chỉ làm được mấy đoạn nhỏ, chủ yếu là cho chạy thử thấy sai thì mày mò thử các kiểu xem có được hay không. Bác có ở SG ko để mình mời bác 1 chầu cafe.
p/s: Mình có gửi mail cho bác nhờ giúp vấn đề này nhưng hình như lâu bác ko check email thì phải. Một lần nữa cảm ơn bác nhiều. -
RE: Sub Form tự động điền các record
haidc > 05-02-18, 06:17 AM
Bác ongke0711 cho phép làm phiền thêm 1 điểm này nữa. Form frm_Lenh san xuat trong file bác gửi những nút di chuyển các record phía dưới không hiểu sao nút record Next và record Previous nó không tác động lên các record của main form mà lại di chuyển các record ở sun form. Nôm na là khi bấm qua record khác nó nhảy lần lượt qua hết các record ở sub form xong mới qua record kế tiếp ở main form. Trường hợp này cũng hơi lạ, mình tạo nút mới luôn nhưng nó vẫn vậy. Bác có thể xem qua giúp mình được không ?
Cảm ơn bác trước. -
RE: Sub Form tự động điền các record
ongke0711 > 05-02-18, 12:09 PM
Tôi thấy nó vẫn di chuyển theo Record của main form mà bạn.
Bạn vô Record Source của main form, bỏ table "tbl_SoLieuBocXep_ctiet" đi nhé. Nó không cần thiết cho main Form. -
RE: Sub Form tự động điền các record
haidc > 05-02-18, 04:36 PM