vietnc > 15-04-19, 04:08 PM
ongke0711 > 15-04-19, 06:35 PM
vietnc > 15-04-19, 10:43 PM
(15-04-19, 06:35 PM)ongke0711 Đã viết: Cái tính năng bạn nói ở trên đơn giản là Form tìm kiếm thôi bạn. Tìm kiếm trong Listbox thay vì trong Sub form.
Bạn thao khảo cái demo của bạn MTNQ này, rất hay đó.
Link: http://thuthuataccess.com/forum/post-348...l#pid34838
cpucloi > 16-04-19, 08:40 AM
vietnc > 16-04-19, 09:56 AM
(16-04-19, 08:40 AM)cpucloi Đã viết: Like IIf([forms]![ F_MuonTraSach]![chkID]=True,"*" & [forms]![F_MuonTraSach]![txtTimTest] & "*","""")
Cái này hình như có vấn đề. Bạn thử đưa IIF lên trước xem sao? (Không đưa Like lên trước …)
IIf([forms]![ F_MuonTraSach]![chkID]=True, Like "*" & [forms]![F_MuonTraSach]![txtTimTest] & "*","""")
ongke0711 > 16-04-19, 11:40 AM
vietnc > 16-04-19, 05:08 PM
(16-04-19, 11:40 AM)ongke0711 Đã viết: Form của bạn làm gì có cái chkID mà đưa vô.
[F_MuonTraSach]![chkID]=True
File bạn đây: http://www.mediafire.com/file/hs3c28n66i...accdb/file
ongke0711 > 17-04-19, 12:31 AM
(16-04-19, 05:08 PM)vietnc Đã viết: Ông kiểm tra dùm tui xem, trong cái form F_NhapSachCon, nút Lưu tại khu vực nhập Tác giả, bị lỗi câu lệnh.
Đây: https://drive.google.com/open?id=1Y0ET9A...yM9r_alJCS
SELECT Tbl_SangTac.*, Tbl_TacGia.TenTacGia
FROM Tbl_TacGia INNER JOIN Tbl_SangTac ON Tbl_TacGia.IDTacGia = Tbl_SangTac.IDTacGia;
vietnc > 17-04-19, 03:40 AM
(17-04-19, 12:31 AM)ongke0711 Đã viết:(16-04-19, 05:08 PM)vietnc Đã viết: Ông kiểm tra dùm tui xem, trong cái form F_NhapSachCon, nút Lưu tại khu vực nhập Tác giả, bị lỗi câu lệnh.
Đây: https://drive.google.com/open?id=1Y0ET9A...yM9r_alJCS
Báo lỗi phần màu đỏ.
If Tbl_SangTac_IDTacGia.Value = RsM!IDTacGia Then
MsgBox "Ma tac gia trung"
...
Nó không phải tên một cái control nào trên Form của bạn. Bạn muốn lấy giá trị của cái combobox Mã tác giả thì phải tham chiếu đến Name của chứ. Name: TacGia
Sửa lại:
If Me.TacGia.Value = RsM!IDTacGia Then
MsgBox "Ma tac gia trung"
...
Về trường hợp trên, bạn muốn kiểm tra tên sách + tên tác giả đã nhập chưa để không bị trùng thì cần gì dùng vòng lặp, duyệt qua từng dòng của table chi cho mệt hệ thống. Bạn dùng hàm DLookup() đi, hoặc muốn dùng Recordset thì dùng Rs.FindFirst ID Sách rồi đến IF...
Một góp ý khác là bạn bỏ toàn bộ các thiết lập ComboBox trong table đi, các field chỉ thuần là textbox không thôi thì tốc độ tải dữ liệu, load dữ liệu lên Form mới nhanh được.
Combobox trong table chỉ để cho người mới học lập trình xem cho dễ thôi chứ ra ứng dụng rồi thì bỏ đi, làm nặng nề thêm table một cách không cần thiết.
Các query join table với nhau đừng nên lúc nào cũng chọn [TênTable.* ] vì nó sẽ kéo luôn nhưng trường không cần thiết -> giảm tốc độ query. Nếu sau này bạn dùng Linked table qua mạng nội bộ thì các thiết lập dư thừa này làm query chạy ì ạch luôn đó. Bên cạch đó cái trường Primary key cũng bị lập lại 2 lần nên khi cần khai báo trường đó phải thêm tên Table vô để xác định bạn muốn dùng Field key đó của table nào -> phiền phức.
Cụ thể sửa cái Query [Q_NhapTacGia] lại như sau:
Mã PHP:SELECT Tbl_SangTac.*, Tbl_TacGia.TenTacGia
FROM Tbl_TacGia INNER JOIN Tbl_SangTac ON Tbl_TacGia.IDTacGia = Tbl_SangTac.IDTacGia;
ongke0711 > 17-04-19, 09:21 AM
(17-04-19, 03:40 AM)vietnc Đã viết: Việc thiết lập combobox cho các table chỉ là muốn chọn từ ID sẽ hiển thị kèm theo tên luôn, đỡ mất thời gian người dùng, với lại họ có thể quên. Thực ra, phần mềm mình viết dành cho đơn vị nên cố gắng tối ưu hóa cho người sử dụng cũng là đồng nghiệp nên mới rắc rối thêm rối.
Trích dẫn:Trở lại vấn đề Form F_NhapSachCon, bạn có để ý thấy rằng có 02 subform mình đưa vào form chính, cả 02 subform này đều có nút lưu, đều truy vấn từ các table join với nhau bằng query với các điều kiện tương đồng nhau. Vấn đề bạn điều chỉnh trong câu truy vấn tham chiếu đến Name của các đối tượng trên subform, mình đã sửa tại 02 nút lưu của 02 subform thì 01 cái sub NhapNXB thì chạy ok, còn 01 cái sub NhapTacGia cứ báo "trùng mã" mặc dù vẫn lưu được và cập nhật vào table.
Mình dò cả đêm từ code đến các query, nhưng tìm ra được tại sao nó cứ báo "Mã Tác giả trùng" (dù có thêm mới tác giả và chọn 01 tác giả chưa hề có trong table nó vẫn báo").