• DeMo dùng Main-Sub không sử dụng Form mà thay bằng ListBox
  • DeMo dùng Main-Sub không sử dụng Form mà thay bằng ListBox

    Xuân Thanh > 02-04-20, 01:10 PM

    Bài 1 : Dùng Main-Sub sử dụng ListBox

    Trên diễn đàn có bài chia sẻ của ongke0711 về việc tạo Main-Sub dùng table tạm và SubForm theo đường link này https://thuthuataccess.com/forum/post-45...l#pid45099
    Việc dùng Ubound hay Bound tùy theo cách thiết kế của người làm chương trình, miễn sao thỏa mãn được yêu cầu. Tôi thì thích dùng Ubound hơn tuy phải viết code hơi nhiều nhưng bù lại ta dễ dàng kiểm soát được chúng dù là dùng DAO hay ADO
    Hôm nay tôi giới thiệu với các bạn một kiểu thiết kế dạng Main-Sub nhưng không dùng Form mà thay bằng ListBox
    Một số điểm cơ bản trong DeMo này là
    1/ Dùng hoàn toàn Ubound không gán ControlSource cho các Controls trên Form, không sử dụng table tạm
    2/ Cách gán RecordSource và Recordset bằng VBA
    3/ Xử lý các nút lệnh Đầu, Cuối, Trước, Sau, Thêm, Sửa, Xóa, Hủy, Lưu
    4/ Cách xử lý phần chi tiết đi theo phần chủ trên Main dựa vào hai ListBox
    5/ Một số kỹ thuật xử lý trong ListBox
    6/ Cách tạo khóa chính và Số Phiếu tự động dựa vào Loại Phiếu

    Dưới đây là một số hình ảnh của DeMo
    Khi mở frmPhieuNhapXuat chưa có dữ liêu

    [Hình: PhieuNX0.png]

    Khi mở frmPhieuNhapXuat đã có dữ liệu
    [Hình: PhieuNX2.png]

    [Hình: PhieuNX1.png]

    [Hình: PhieuNX3.png]
    Khi chọn một Phiếu Nhập Xuất trên Main bằng cách chọn trong ListBox của Main, các thông tin của Phiếu được hiển thị trên các Controls của Main đồng thời phần chi tiết sẽ hiển thị chi tiết nhập xuất cho phiếu được chọn
    Khi sử dụng các nút lệnh Đầu, Trước, Sau, Cuối thì các dòng chọn trên ListBox của Main cũng chạy theo và kèm theo đó là sự thay đổi của phần chi tiết

    Các bạn download file về và từ từ ngâm cứu
    Link https://drive.google.com/file/d/1eJJJ2gw...sp=sharing

    P/S : Vì làm DeMo nên tôi thao tác trực tiếp trên Form luôn. Các bạn có thể vận dụng các hàm của ongke0711 để Insert, Update...

    Bài sau sẽ giới thiệu một cách làm khác là Phần Main được liên kết từ một Form khác, ta chỉ xử lý phần Sub thôi
  • RE: DeMo dùng Main-Sub không sử dụng Form mà thay bằng ListBox

    ongke0711 > 02-04-20, 01:27 PM

    Dùng đối tượng Listbox cũng là một cách hay vì dùng Listbox sẽ nhẹ nhàng hơn là load cái đối tượng Form lên làm Subform với môt đống các phương thức, thuộc tính đi kèm mà có thể mình không dùng đến trong Subform.
    Về giao diện thì nó không bằng dùng Form nhưng nếu tinh chỉnh chút thì vẫn bắt mắt.
  • RE: DeMo dùng Main-Sub không sử dụng Form mà thay bằng ListBox

    Xuân Thanh > 02-04-20, 01:38 PM

    (02-04-20, 01:27 PM)ongke0711 Đã viết: Dùng đối tượng Listbox cũng là một cách hay vì dùng Listbox sẽ nhẹ nhàng hơn là load cái đối tượng Form lên làm Subform với môt đống các phương thức, thuộc tính đi kèm mà có thể mình không dùng đến trong Subform.
    Về giao diện thì nó không bằng dùng Form nhưng nếu tinh chỉnh chút thì vẫn bắt mắt.

    Chính xác. Vì thế trong những trường hợp đơn giản tôi mới sử dụng form còn thường là dùng ListBox cho nhẹ nhàng và dễ. Đối với ListBox gán Recorset dễ hơn dùng Form
  • RE: DeMo dùng Main-Sub không sử dụng Form mà thay bằng ListBox

    Xuân Thanh > 03-04-20, 11:28 AM

    Bài 2 : Sử dụng Main Sub riêng rẽ

    Trong DeMo này ta thiết kế Main và Sub riêng rẽ để dễ dàng xử lý hơn
    Khi click đúp vào một Phiếu Nhập Xuất trong listbox của form Main, sẽ mở frmPhieuNhapXuatChiTiet và gán giá trị của khóa chính trên form Main vào textbox txtRec của form này. Các dữ liệu của listbox trên form này sẽ phụ thuộc vào giá trị của khóa chính. Nếu phần chi tiết theo khóa chính có dữ liệu thì listbox có giá trị và ngược lại
    Một số hình ảnh của DeMo
    Mở form frmPhieuNhapXuat, chọn dòng trên listbox và click đúp nó. Form frmPhieuNhapXuat được đóng lại và mở form frmPhieuNhapXuatChiTiet
    [Hình: PhieuNX1.png]

    [Hình: PhieuCT1.png]

    [Hình: PhieuNX2.png]

    [Hình: PhieuCT2.png]


    Khi thoát frmPhieuNhapXuatChiTiet sẽ mở lại frmPhieuNhapXuat

    Link download : https://drive.google.com/file/d/1cSffPSP...sp=sharing