vietnc > 17-04-19, 11:29 AM
(17-04-19, 09:21 AM)ongke0711 Đã viết:(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.
Ý đồ hoàn toàn đúng, chỉ có thực hiện là sai thôi.
Người dùng thì chỉ có thao tác trên Form chứ không phải thao tác trên Table nên bạn thiết kế trong Table thì ai bấm cái comboBox đó đây. Table thuần tuý chỉ lưu trữ dữ liệu thôi. Bạn muốn ComboBox chọn kiểu gì, bao nhiêu cái thì cứ lên Form mà thiết kế.
Ở cái Subform "Khu Vực Sách" có 3 cái combobox: Mã ngôn ngữ, mã thể loại, mã kho. Tại sao bạn không gán Row Source cho các combobox này là cái table thể loại, kho, tbl_ngonngu luôn mà dùng Value List rồi gõ tay vô???
Sau này bạn thêm kho, thêm thể loại...Tôi thấy bạn cũng có giải pháp là mỗi khi bấm vào combobox này nó sẽ xoá list và tải lại cái danh sách thể loại, kho mới nhất ==> tốn thêm tài nguyên máy cho hoạt động này. Cách này dùng cho UnBound Form, Unbound Control, bạn đang dùng Bound Form - các control, form gắn với một source thì tận dụng Source có sẳn luôn cho nhanh.
Bên cạnh đó còn hiện thêm cái subform cho ngôn ngữ, thể loại..lại tốn thêm tài nguyên máy.
Tôi có sửa demo lại, bạn xem thử rồi áp dung cho các form khác luôn. Bạn xem kỹ các thông số: Bound Column, Column Count, Column Width, List Width.
Nói chung là code dư thừa nhiều quá làm giảm hiệu suất của ứng dụng.
Demo sửa: http://www.mediafire.com/file/ktm43742yu...accdb/file
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").
Tôi biết cái lỗi này chứ nhưng muốn để bạn suy nghĩ xem tại sao.
Nó hoàn toàn do cái logic, luồn xử lý nhập liệu của bạn mà ra thôi.
Bạn xem lại trước đi rồi lúc rảnh tôi sẽ sửa và trao đổi thêm.
Về cái vụ lúc trước bạn nói các form khi mở lên nó bung toàn màn hình là do cái Main Form của bạn khi khởi động thiết lập Maximize nên các form con sau đó cũng tự động bung toàn màn hình hoặc nếu bạn thu nhỏ các form con thì form Main cũng bị thu nhỏ luôn. Vụ này phải dfng code khác can thiệp hệ thống chứ không dùng tính năng Maximize mặc định được. Để tôi lục lại code rồi gửi.
Nếu bạn có Zalo hay Facebook Messenger thì cho thông tin, trao đổi nhanh hơn.