Xuân Thanh > 17-04-20, 12:34 AM
(16-04-20, 11:39 PM)huuduy.duy Đã viết: Dạ, đối với anh thì dễ, nhưng đối với em, em lôi nó ra được rồi, nhưng bổ sung thêm thì bị lỗi. Nhờ anh giúp ạ
huuduy.duy > 17-04-20, 10:07 AM
(17-04-20, 12:31 AM)ongke0711 Đã viết:Cảm ơn anh nhiều !(16-04-20, 04:10 PM)huuduy.duy Đã viết: Do yêu cầu công việc phải chọn nhiều nhân viên từ Danh sách nhân viên chung, nên em thay Subform thành Listbox để chọn nhân viên qua lại giữ 2 Listbox.
Phần Form Phiếu Yêu cầu đào tạo: sẽ cập nhật thông tin như:
1/ Người yêu cầu, nội dung yêu cầu, Thời gian đào tạo, Nơi đào tạo, .. cập nhật vào bảng tblPhieuYeuCau
2/ Mỗi phiếu Yêu cầu như vậy sẽ chọn ra danh sách nhân viên từ 1 danh sách nhân viên chung của Cty cần đào tạo theo nội dung đó và ghi bảng tblNhanVienDaDaoTao.
Em lầm đến đoạn gọi Phiếu Yêu cầu lên để bổ sung thêm nhân viên cần đào tạo thì bị lỗi. Nhờ anh xem giúp
Trân trọng cảm ơn
Link
** Ngoài cách sử dụng Listbox, thì mình có thể sủ dụng Subform có checkbox để check những nhân viên cần chọn được không anh
Cái Form đặc thù của em áp dụng cách làm như file demo của anh cũng không khác biệt gì nhiều ở qui trình xử lý, chỉ là khác nhau trong phần nạp dữ liệu thôi.
Khi bấm nút [Sửa], sẽ nạp thông tin của PYC đó vào frmNhapPYC:
- Nạp tblNhanVien vào tblNhanVienTemp.
- Select query từ tblNhanVienDaDaoTao để lấy ra số nhân viên đã đăng ký theo số PYC đang gọi (fldFlag = True).
- Dùng vòng lặp Recordset để cập nhật fldFlag=True của các nhân viên trong tblNhanVienTemp.
- Xong.
Ngoại trừ cách dùng vòng lặp Recordset, có thể dùng hàm gộp các MSNV thành chuỗi rồi dùng câu lệnh SQL "UPDATE ... SET...", có thể tốc độ xử lý sẽ nhanh hơn. Em tự test thử đi nhé.
VD: UPDATE tblNhanVienTemp SET fldFlag = True WHERE MSNV IN ('S00234','S00695','S01234')
Anh thấy em tận dụng thuộc tính Tag của control để lưu câu lệnh SQL cũng sáng tạo đó. Lưu ý là chỉ có thể lưu tối đa 2.048 ký tự (byte) thôi nhé.
Lưu ý: anh có ghi chú trong demo ở trên là phải chú ý đặt tên (name) của textbox trên Form phải trùng với tên Field trong Table cần lấy dữ liệu thì các hàm GetRecord(), UpdateRecord() mới chạy đúng.
Link file đã sửa: http://www.mediafire.com/file/khx6yy982u...accdb/file
Còn về việc dùng SubForm có checkbox chọn nhân viên thì cũng gần tương tự cách xử lý trên. Chú ý là có thêm comboBox chọn Phòng ban để giới hạn việc phải kéo lên xuống danh sách nhân viên quá dài. (Giống như cái ListBox bên phải Form em đang làm).
huuduy.duy > 18-04-20, 04:23 PM
(17-03-20, 02:02 PM)ongke0711 Đã viết: Kỹ thuật huỷ lưu dữ liệu sau khi nhập liệu cho Form ở dạng Main - SubForm.
-------------------------------------------------------------------------------------------------------------------------------
[php]Sub NapPhieuNhap()
Dim db As DAO.Database
'Dim rs As DAO.Recordset, rs2 As DAO.Recordset '-->Khai báo toàn cuc
Dim strSQL As String, strSQL2 As String
Set db = CurrentDb
Select Case arrArgs(0)
Case "Add"
strSQL = "SELECT * FROM tblNhapXuat WHERE 1=2"
strSQL2 = "SELECT 'Xóa' As Xoa,* FROM tblNhapXuat_CT WHERE 1=2"
..............................
ongke0711 > 18-04-20, 05:54 PM
(18-04-20, 04:23 PM)huuduy.duy Đã viết: Ở đoạn code trên chổ Where 1=2 cho em hỏi 1 đó là cái gì vậy a. Trong bảng tblNhapXuat_CT này em không thấy có field nào là 1 hết
If Not Is Null (dk1) Then
strSQL = strSQL & dk1
End If
If Not Is Null (dk2) Then
strSQL = strSQL & dk2
End If
dotrung > 05-08-21, 12:09 AM
ongke0711 > 05-08-21, 10:26 AM
(05-08-21, 12:09 AM)dotrung Đã viết: Dotrung đã làm theo đúng các của anh OngKe0711 nhưng file chạy vẫn lỗi, nhờ các anh em trong diễn đàn hỗ trợ giúp ạ, thanks
file https://www.mediafire.com/file/k2drglr6a...accdb/file
dotrung > 05-08-21, 10:45 AM
ongke0711 > 05-08-21, 08:07 PM
(05-08-21, 10:45 AM)dotrung Đã viết: Khi bấm Lưu, phần lỗi INSERT INTO không cho lưu dữ liệu ạ
sInsertSQL = "INSERT INTO temp_tblPhieuNhapXuatChiTiet " & _
"SELECT tblPhieuNhapXuatChiTiet.* " & _
"FROM tblPhieuNhapXuatChiTiet"
dotrung > 05-08-21, 08:30 PM
ongke0711 > 07-08-21, 12:47 AM
(05-08-21, 08:30 PM)dotrung Đã viết: Cảm ơn anh OngKe0711, dotrung đã làm được rồi. Nhưng phần sửa không load được dữ liệu subform, hic hic
sInsertSQL = "INSERT INTO tblPhieuNhapXuatChiTiet " & _
"SELECT temp_tblPhieuNhapXuatChiTiet.* " & _
"FROM temp_tblPhieuNhapXuatChiTiet"
SELECT tblPhieunhapxuat.SoChungTu, tblPhieunhapxuat.LoaiChungTu, tblPhieunhapxuat.Ngaychungtu, tblPhieunhapxuat.SoHoaDon, tblPhieunhapxuat.Makhachhang, tblPhieunhapxuat.Noidung, tblPhieunhapxuat.Manx, tblPhieunhapxuat.UserID, tblPhieunhapxuat.Macty, tblPhieunhapxuat.Gionhap, tblPhieunhapxuat.Soseri, tblPhieunhapxuat.XulyKG, tblPhieunhapxuat.Hoachtoan, tblPhieunhapxuat.Banle, tblPhieunhapxuat.GopHD, tblPhieunhapxuat.Khoa, tblPhieunhapxuat.TKCoGV, tblPhieunhapxuat.TKNoGV, tblPhieunhapxuat.TKCoGB, tblPhieunhapxuat.TKNoGB, tblPhieunhapxuat.TKCoThue, tblPhieunhapxuat.TKNoThue, Sum(tblPhieunhapxuatchitiet.Soluong) AS Soluong, Sum(tblPhieunhapxuatchitiet.ThanhtienNhap) AS ThanhtienNhap, Sum(tblPhieunhapxuatchitiet.ThanhTienXuat) AS ThanhTienXuat
FROM tblPhieunhapxuat INNER JOIN tblPhieunhapxuatchitiet ON tblPhieunhapxuat.SoChungTu = tblPhieunhapxuatchitiet.SoChungTu
GROUP BY tblPhieunhapxuat.SoChungTu, tblPhieunhapxuat.LoaiChungTu, tblPhieunhapxuat.Ngaychungtu, tblPhieunhapxuat.SoHoaDon, tblPhieunhapxuat.Makhachhang, tblPhieunhapxuat.Noidung, tblPhieunhapxuat.Manx, tblPhieunhapxuat.UserID, tblPhieunhapxuat.Macty, tblPhieunhapxuat.Gionhap, tblPhieunhapxuat.Soseri, tblPhieunhapxuat.XulyKG, tblPhieunhapxuat.Hoachtoan, tblPhieunhapxuat.Banle, tblPhieunhapxuat.GopHD, tblPhieunhapxuat.Khoa, tblPhieunhapxuat.TKCoGV, tblPhieunhapxuat.TKNoGV, tblPhieunhapxuat.TKCoGB, tblPhieunhapxuat.TKNoGB, tblPhieunhapxuat.TKCoThue, tblPhieunhapxuat.TKNoThue, tblPhieunhapxuat.Ngaychungtu
HAVING (((tblPhieunhapxuat.Ngaychungtu) Between [Forms]![frmDanhSachPhieuNhapXuat]![txtNgayDau] And [Forms]![frmDanhSachphieunhapxuat]![txtNgayCuoi]));