Đồ án Xây dựng hệ thống quản lý bán hàng của công ty thương mại và dịch vụ K&S

Đây là một phương pháp thiết kế giải thuật dựa trên tư tưởng module hoá. Nội dung của phương pháp thiết kế này như sau: Trước hết người ta xác định các vấn đề chủ yếu nhất mà việc giải quyết bài toán yêu cầu, bao quát được toàn bộ bài toán. Sau đó phân chia nhiệm vụ cần giải quyết thành các nhiệm vụ cụ thể hơn, tức là chuyển dần từ module chính đến các module con từ trên xuống dưới, do vậy phương pháp có tên gọi là thiết kế “từ đỉnh xuống” (Top down design). Với phương pháp này, tôi đã làm bài toán Xây dựng hệ thống quản lý bán hàng cho Công ty Thương mại và Dịch vụ K&S như sau: Mục đích của bài toán là thiết kế một hệ thống các chương trình quản lý cơ sở dữ liệu về qua trình bán hàng chăn ga gối nệm K&S:

doc124 trang | Chia sẻ: oanh_nt | Lượt xem: 1512 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng hệ thống quản lý bán hàng của công ty thương mại và dịch vụ K&S, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
dươc dùng để biểu diễn những đối tượng cụ thể hoặc trừu tượng trong thế giới thực mà ta muốn lưu trữ thông tin về chúng. Thực thể được biểu diễn bằng hình chữ nhật Liên kết(association):dùng để trình bày, thể hiện mối liên hệ giữa các thực thể. Số mức độ liên kết: 1@1 liên kết một – một 1@N liên kết một – nhiều N@M liên kết nhiều – nhiều Chiều của một liên kết: chiều của quan hệ chỉ ra số lượng các thực thể tham gia vào quan hệ đó. Chia ra làm 3 loại: một chiều, hai chiều, nhiều chiều * Thiết kế logic xử lý và tính khối lượng xử lý - Phân tích tra cứu: là tìm hiểu bằng cách nào để có được các thông tin đầu ra từ các tệp đã được thiết kế trong phần thiết kê csdl, một mặt giúp cho xem xét lại khâu thiết kế csdl đã hoàn tất chưa - Phân tích cập nhật: thông tin trong csdl phải được cập nhật thường xuyên đảm bảo CSDL phản ánh tình trạng mới nhất của đối tượng mà nó quản lý 4.6. Đề xuất các phương án của giải pháp Mô hình logic của hệ thống mới mô tả cái mà hệ thống này sẽ làm sau khi mô hình được chuẩn y thì tiến hành việc xây dựng các phương án khác nhau để cụ thể hoá mô hình logic. Giai đoạn này có 4 công đoạn: xác định các ràng buộc tin học và ràng buộc tổ chức, xây dựng các phương án của giải pháp, đánh giá các phương án của giải pháp, chuẩn bị và trình bày báo cáo của giai đoạn đề xuất các phương án của giải pháp. 4.7. Thiết kế vật lý ngoài Sau khi lựa chọn một giải pháp thì tiến hành thiết kế vật lý ngoài. cần có hai tài liệu: tài liệu bao chứa tất cả các đặc trưng của hệ thống mới sẽ cần cho việc thực hiện kỹ thuât sau này, và tiếp đó là tài liệu dành cho người sử dụng. Những công đoạn chính của thiết kế vật lý ngoài là: lập kế hoạch thiết kế vật lý ngoài, thiết kế chi tiết các giao diện, thiết kế các cách thức tương tác với phần tin học hoá, thiết kế các thủ tục thủ công, chuẩn bị và trình bày báo cáo 4.8. Triển khai kỹ thuật hệ thống Kết quả quan trọng nhất của giai đoạn này là phần mềm. Các hoạt đọng chính của giai đoạn này là: lập kế hoạch thực hiện kỹ thụât, thiết kế vật lý trong, lập trình, thử nghiệm hệ thống, chuẩn bị tài liệu 4.9. Cài đặt và khai thác Thực hiện việc chuyển từ hệ thống cũ sang hệ thống mới. để quá trình chuyển đổi thực hiện với ít va chạm nhất,cần phải lập kế hoạch một cách cẩn thận. Giai đoạn nàybao gồm các công đoạn sau: lập kế hoạch cài đặt, chuyển đổi, khai thác và bảo trì, đánh giá. V – PHÂN TÍCH NGHIỆP VỤ QUẢN LÝ BÁN HÀNG Công ty Thương mại và Dịch vụ K&S chuyên cung cấp các sản phẩm về chăn ga gối nệm nên sản phẩm khá đa dạng và phong phú. Tuy nhiên hiện nay công ty vẫn đang quản lý việc xuất nhập hàng qua việc sử dụng Microsoft Word, Excel bao gồm: Phiếu báo giá, Phiếu bán hàng và đề nghị xuất kho, Phiếu thông tin khách hàng…Hiện tại chưa in ra được những báo cáo tự động như Phiếu nhập hàng, Phiếu xuất hàng, Báo cáo số lượng hàng tồn… Chính vì thê Hệ thống mới được xây dựng là Hệ thống Quản lý bán hàng, gồm các mảng: Mảng mặt hàng Quản lý các thông tin về loại mặt hàng, số lượng, tình trạng tồn kho. In ra các báo cáo về mỗi loại mặt hàng bán ra trong ngày hoặc theo thời gian nhất định Mảng nhà cung cấp Quản lý các thông tin về các nhà cung cấp, lưu giữ cập nhật thông tin về mặt hàng của từng nhà cung cấp, nắm được các thông tin về loại mặt hàng, giá cả. Mảng thống kê báo cáo Mảng thống kê báo cáo thực hiện việc: Doanh số theo thời gian ấn định (chọn khoảng thời gian để xuất báo cáo) Danh mục mặt hàng (xem một loại hay chi tiết toàn bộ) Danh mục mặt hàng theo tên nhà cung cấp (danh mục, thông tin về các nhà cung cấp) Mảng khách hàng Quản lý các thông tin chi tiết về khách hàng của công ty, các đại lý cũng như khách hàng lẻ. Mảng quản lý hệ thống Quản lý quyền người dùng của hệ thống. Lựa chọn ngôn ngữ lập trình và cơ sở dữ liệu Access Đây là một chương trình không lớn nên tôi sử dụng ngôn ngữ lập trình Visual Basic, cơ sở dữ liệu Access. Chương trình này sẽ là một chương trình chạy trên máy đơn dùng cho nhân viên văn phòng quản lý toàn bộ hệ thống bán hàng của công ty K&S. CHƯƠNG III – XÂY DỰNG HỆ THỐNG QUẢN LÝ BÁN HÀNG CHO CÔNG TY THƯƠNG MẠI VÀ DỊCH VỤ K&S I – THIẾT KẾ DỮ LIỆU 1. Xác định các thực thể: Hệ thống bao gồm các thực thể sau: Thực thể 1: Chi Tiết Nhập + Số phiếu nhập + Số hoá đơn + Số lượng + Đơn giá + Đơn vị tính + Tiền chưa thuế + Tiền thuế Ký hiệu (ChiTietNhap) Thực thể 2: Chi Tiết Xuất + Số phiếu xuất + Mã sản phẩm + Số hoá đơn + Số lượng + Đơn giá + Đơn vị tính + Tiền chưa thuế + Tiền thuế Thực thể 3: Danh Mục Sản Phẩm + Mã sản phẩm + Tên sản phẩm + Lượng tồn + Ghi chú sản phẩm Thực thể 4: Khách Hàng + Mã khách hàng + Tên khách hàng + Mã số thuế + Địa chỉ + Điện thoại + Fax + Tài khoản + Ngân hàng Thực thể 5: Nhà Cung Cấp + Mã NCC + Tên NCC + Địa chỉ + Số điện thoại + Fax + Tài khoản + Ngân hàng Thực thể 6: Phiếu Chi + Mã phiếu chi + Mã NCC + Ngày chi + Người nhận + Số tiền + Bằng chữ + Lý do Thực thể 7: Phiếu Thu + Mã phiếu thu + Mã Khách hàng + Ngày thu + Người nộp + Số tiền + Bằng chữ + Lý do h. Thực thể 8: Phiếu Nhập + Số phiếu nhập + Mã NCC + Ngày nhập Thực thể 9: Phiếu Xuất + Số phiếu xuất + Mã khách hàng + Ngày xuất + Kho xuất 2. Xác định thuộc tính chi tiết của từng thuộc tính trong thực thể: Chi Tiết Nhập: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Số phiếu nhập Text 10 Số hoá đơn Number Long Interger Số lượng Number Long Interger Đơn giá Number Long Interger Đơn vị tính Text 50 Tiền chưa thuế Number Long Interger Tiền thuế Number Long Interger Chi Tiết Xuất: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Số phiếu xuất Text 10 Mã sản phẩm Text 20 Số hoá đơn Number Long Interger Số lượng Number Đơn giá Number Đơn vị tính Text 15 Tiền chưa thuế Number Long Interger Tiền thuế Number Long Interger Danh Mục Sản Phẩm: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Mã sản phẩm Text 10 Tên sản phẩm Text 15 Lượng tồn Number Long Interger Ghi chú sản phẩm Text 50 Khách Hàng: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Mã khách hàng Text 10 Tên khách hàng Text 50 Mã số thuế Number Long Interger Địa chỉ Text 50 Điện thoại Number Interger Fax Number Interger Tài khoản Number Long Interger Ngân hàng Text 50 Nhà Cung Cấp: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Mã NCC Text 10 Tên NCC Text 25 Địa chỉ Number Long Interger Số điện thoại Number Long Interger Fax Number Long Interger Tài khoản Number Long Interger Ngân hàng Text 50 Phiếu Chi: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Mã phiếu chi Text 10 Mã NCC Text 25 Ngày chi Number Long Interger Người nhận Number Long Interger Số tiền Number Long Interger Bằng chữ Number Long Interger Lý do Text 50 Phiếu Thu: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Mã phiếu thu Text 10 Mã khách hàng Text 25 Ngày thu Number Long Interger Người nộp Number Long Interger Số tiền Number Long Interger Bằng chữ Number Long Interger Lý do Text 50 Phiếu Nhập: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Số phiếu nhập Text 10 Mã NCC Text 25 Ngày nhập Number Long Interger Phiếu Xuất: Khóa Thuộc tính Kiểu dữ liệu Độ dài Khóa chính Số phiếu xuất Text 10 Mã khách hàng Text 25 Ngày xuất Number Long Interger Kho xuất Text 20 3. Mô hình thực thể quan hệ: II – PHÂN TÍCH HỆ THỐNG Sơ đồ chức năng: Hệ thống quản lý bán hàng K&S Cập nhật Báo cáo Tìm kiếm Cập nhật phiếu xuất Cập nhật phiếu xuất Cập nhật phiếu xuất Cập nhật phiếu xuất Cập nhật phiếu xuất Kế toán Danh sách khách hàng Danh sách sản phẩm Danh sách NCC Danh sách phiếu thu Danh sách phiếu chi Phiếu thu Phiếu chi Thông tin Tên sản phẩm Tên NCC Tên khách hàng Hình vẽ: Biểu đồ phân cấp chức năng của hệ thống 1.1 - Sơ đồ luồng dữ liệu 1.1.1- Sơ đồ luồng dữ liệu mức 0 Nhu cầu sử dụng SP của khách Hoá đơn mua hàng Báo giá sản phẩm Yêu cầu đặt hàng Hệ thống QLBH cho công ty K&S Khách hàng Nhà cung cấp 1.1.2 - Sơ đồ luồng dữ liệu mức 1 Nợ Báo giá sản phẩm Nhu cầu sử dụng sản phẩm Yêu cầu mua hàng Hoá đơn mua hàng Hoá đơn mua hàng Hệ thống QLBH cho công ty K&S Nhà cung cấp Quản lý tài chính Khách hàng 1.1.3 - Sơ đồ luồng dữ liệu mức 2 Hoá đơn mua hàng Yêu cầu mua hàng Thanh toán nợ Hoá đơn BH Quản lý bán hàng Khách hàng 1.1.4 - Sơ đồ luồng dữ liệu quản lý khách hàng Thanh toán nợ Thông tin khách Lưu trữ khách hàng Thông tin nợ Yêu cầu nợ Khách hàng Quản lý bán hàng Quản lý khách Yêu cầu mua hàng 1.1.5 – Sơ đồ luồng dữ liệu cập nhật khách hàng: Điều kiện Điều kiện DS khách DS khách Lưu trữ khách Tin nhắn Hoá đơn Thông tin khách DS tìm thấy Khách hàng Cập nhật KH Nhắn tin KH Thống kê Nhà quản lý Tìm nguồn KH 1.1.6 - Sơ đồ luồng dữ liệu cập nhật nhà cung cấp Hồ sơ nhà CC TT mặt hàng Y/C đặt hàng Loại mặt hàng Cập nhật TT nhà cung cấp Nhà cung cấp Nhà quản lý 1.1.7 – Sơ đồ luồng dữ liệu quản lý mặt hàng cập nhật Hoá đơn Hiện trạng mặt hàng Thể loại báo cáo Báo cáo mặt hàng TT mặt hàng TT hoá đơn Khách Cập nhật MH Nhà quản lý Báo cáo Mặt hàng Quản lý mặt hàng ẳnMtj h 1.1.8 - Sơ đồ luồng dữ liệu quản lý mặt hàng Hiện trạng DS MH yêu càu ĐK thống kê DS mặt hàng Y/C Loại MH Hoá đơn Hoá đơn TT hoá đơn Quản lý MH Tìm MH Cập nhật MH Khách hàng Nhà quản lý Thống kê mặt hàng TT mặt hàng Mặt hàng 1.2: Ta có các tiến trình sau: 1 - Tiến trình đặt hàng INPUT Loại hàng theo yêu cầu Thông tin về khách hàng OUTPUT Trạng thái mặt hàng Thông tin về khách hàng lưu trong CSDL PROCESS Tìm kiếm các mặt hàng có điều kiện: Mã hàng Số lượng tồn kho Nếu tìm thấy thì cập nhật thông tin về khách hàng Nếu không tìm thấy thì thông báo. 2 - Tiến trình cập nhật hàng INPUT Mặt hàng Thông tin cập nhật OUTPUT Thông tin của mặt hàng yêu cầu được đưa vào cơ sở dữ liệu PROCESS Tìm kiếm mặt hàng Nếu tìm thấy: Hiển thị thông tin về mặt hàng Cập nhật thông tin khách và thông tin dặt hàng Nếu không tìm thấy: Thông báo 3 - Tiến trình Thống kê mặt hàng INPUT Một hoặc nhiều các tiêu chí thống kê OUTPUT Hiển thị danh sách mặt hàng PROCESS Tìm kiếm các mặt hàng theo các điều kiện Nếu tìm thấy: Hiển thị danh sách mặt hàng Nếu không tìm thấy: Thông báo 4 - Tiến trình cập nhật nhà cung cấp INPUT Thông tin cập nhật OUTPUT Thông tin nhà cung cấp được cập nhật vào CSDL PROCESS Tìm kiếm các nhà cung cấp Nếu tìm thấy: Cập nhật thông tin mới về nhà cung cấp vào CSDL Nếu không tìm thấy: Hiển thị thông báo. 5 - Tiến trình Thống kê nhà cung cấp INPUT Các tiêu chí thống kê OUTPUT Hiển thị danh sách nhà cung cấp tìm thấy PROCESS Tìm trong các nhà cung cấp Tìm thấy: Hiển thị danh sách Không thấy: Hiển thị thông báo 6 - Tiến trình cập nhật khách INPUT Thông tin cần cập nhật PUTPUT Thông tin về khách hàng được cập nhật vào CSDL PROCESS Tìm trong danh sách khách Nếu tìm thấy: Cập nhật thông tin bổ sung, ghi nhận nợ Nếu không thấy: Thêm một mã khách, thêm một thông tin mới về khách hàng vào CSDL 7 - Tiến trình Tìm khách hàng INPUT Các tiêu chí tìm OUTPUT Danh sách tìm thấy trong CSDL PROCESS Tìm trong CSDL các khách thoả mãn tiêu chí tìm kiếm Nếu thấy:Hiển thị;Thanh toán nợ tồn đọng Không thấy: Hiển thị thông báo 8 - Tiến trình thống kê khách hàng INPUT Tiêu chí tìm kiếm OUTPUT Danh sách tìm thấy trong CSDL PROCESS Tìm trong cơ sở dữ liệu các khách hàng thoả mãn yêu cầu Nếu thấy:Hiển thị danh sách Không thấy: Hiển thị thông báo 9 - Tiến trình Cập nhật hoá đơn INPUT Thông tin hoá đơn cần cập nhật OUTPUT Thông tin hoá đơn được lưu trong CSDL PROCESS Tìm kiếm Hoá đơn trong CSDL theo các thông tin hoá đơn cập nhật Nếu thấy: Sửa chữa thông tin Không thấy: `Cập nhật mới 10 - Tiến trình tìm hoá đơn INPUT Một hoặc nhiều chỉ tiêu tìm kiếm OUTPUT Danh sách hoá đơn tìm được PROCESS Tìm trong cơ sở dữ liệu các hoá đơn thoả mãn thông tin Input Nếu thấy:Hiển thị Không thấy: Hiển thị thông báo 11 - Tiến trình Thống kê hoá đơn INPUT Một hoặc nhiều chỉ tiêu tìm kiếm OUTPUT Danh sách hoá đơn tìm được PROCESS Tìm trong CSDL các hoá đơn thoả mãn Nếu thấy: Hiển thị Không thấy: Hiển thị thông báo III - THIẾT KẾ CHƯƠNG TRÌNH 1. Phương pháp thiết kế: Phương pháp Top down Design Đây là một phương pháp thiết kế giải thuật dựa trên tư tưởng module hoá. Nội dung của phương pháp thiết kế này như sau: Trước hết người ta xác định các vấn đề chủ yếu nhất mà việc giải quyết bài toán yêu cầu, bao quát được toàn bộ bài toán. Sau đó phân chia nhiệm vụ cần giải quyết thành các nhiệm vụ cụ thể hơn, tức là chuyển dần từ module chính đến các module con từ trên xuống dưới, do vậy phương pháp có tên gọi là thiết kế “từ đỉnh xuống” (Top down design). Với phương pháp này, tôi đã làm bài toán Xây dựng hệ thống quản lý bán hàng cho Công ty Thương mại và Dịch vụ K&S như sau: Mục đích của bài toán là thiết kế một hệ thống các chương trình quản lý cơ sở dữ liệu về qua trình bán hàng chăn ga gối nệm K&S: Phân tích bài toán: Số liệu ban đầu: Tệp hoá đơn với các trường: Mã hàng hoá N Tên hàng C Số lượng N Đơn giá N Ngày bán D Ngày nhập D Số hiệu kho C Các phép toán xử lý: Nạp số liệu cho tệp thống kê Tìm kiếm Lập các bảng tổng hợp Như vậy ta có phác thảo thứ nhất về bài toán đặt ra: Module chính được chia thành … module nhỏ (Vào số liệu cho tệp, Xử lý, In các bảng tổng hợp kinh doanh, ..) Sơ đồ các module chức năng trong bài toán: Hệ thống quản lý bán hàng K&S Cập nhật Báo cáo Tìm kiếm Kế toán Các module được phân cấp như sau: Tìm kiếm Kế toán Phiếu thu Phiếu chi Thông tin Tên sản phẩm Tên NCC Tên khách hàng Báo cáo Danh sách khách hàng Danh sách sản phẩm Danh sách NCC Danh sách phiếu thu Danh sách phiếu chi Cập nhật Cập nhật phiếu xuất Cập nhật phiếu xuất Cập nhật phiếu xuất Cập nhật phiếu xuất Cập nhật phiếu xuất 2. Chương trình phần mềm: Chức năng chính của chương trình Khi sử dụng chương trình bạn sẽ dùng chuột để chọn menu mà mình cần làm việc. Có những menu chính sau: - Hệ thống - Cập nhật - Báo cáo - Kế toán - Tìm kiếm 2.1 Menu “Hệ thống” Khi bạn chọn menu Hệ thống, màn hình của chương trình sẽ hiện ra như sau:  2.2. Menu “Cập nhật” Khi bạn chọn menu Cập nhật, màn hình của chương trình sẽ hiện ra như sau:  2.3. Menu “Báo cáo” Khi bạn chọn menu Báo cáo, màn hình của chương trình sẽ hiện ra form như sau:  2.4. Menu “Kế toán” Khi bạn chọn menu Kế toán, màn hình của chương trình sẽ hiện ra form như sau:  2.5. Menu “Tìm kiếm” Khi bạn chọn menu Tìm kiếm, màn hình của chương trình sẽ hiện ra form như sau: 3. Một số Form chính của chương trình 3.1 Form Phiếu nhập: 3.2 Form Phiếu xuất: 3.3 Form thông tin khách hàng: 3.4 Form thông tin sản phẩm: 3.5 Form danh sách khách hàng 3.6 Form phiếu trả lại: 3.7 Form Phiếu thu: 3.8 Form Phiếu chi: 3.9 Form Tìm kiếm:  3.10 Giao diện chính: KẾT LUẬN Ngành kinh doanh dịch vụ bán hàng, với chức năng phục vụ nhu cầu ăn, mặc, ở và các hoạt động sinh hoạt khác của con người đã có quá trình hình thành và phát triển khá lâu. Cứ mối giai đoạn phát triển lại có những biến đổi không ngừng về quy mô, số lượng, cấp hạng, loại, đối tượng phục vụ mà cách quản lý cũng thay đổi. Như bất kỳ một ngành kinh tế nào khác, kinh doanh dịch vụ bán hàng cũng gặp phải sự cạnh tranh của thị trường một cách khốc liệt, sâu sắc. Điều này đòi hỏi nhà quản lý của công ty K&S không chỉ có những tri thức chuyên môn sâu mà còn phải nắm được thị hiếu của khách hàng cũng như những thay đổi của thị trường và nghệ thuật kinh doanh. Có như vậy các nhà quản lý mới dành được những thắng lợi trong cạnh tranh kinh doanh. Hệ thống quản lý bán hàng của công ty K&S được xây dựng sẽ là một hệ thống chương trình máy tính được xây dựng từ việc khảo sát các hoạt động của việc bán hàng hiện tại nhằm giúp cho người dùng có thể quản lý công việc của mình một cách tốt nhất mà không mất quá nhiều thời gian. Nói cách khác hệ thống quản lý bán hàng này chính là sự kết hợp giữa công nghệ thông tin và công việc quản lý. Việc nghiên cứu và xây dựng đề tài này đang trong quá trình hoàn thiện. Đây sẽ là một chương trình được ứng dụng thực tế vào công tác quản lý bán hàng tại công ty K&S. Chương trình này sẽ thay thế việc thực hiện lưu trữ thông tin chưa được tin học hoá, góp phần vào hệ thống quản lý chung của công ty K&S. TÀI LIỆU THAM KHẢO - Bài giảng CNPM của PGS.TS Hàn Viết Thuận – Khoa Tin học Kinh tế - Đại học Kinh tế Quốc dân Hà Nội. - Bài giảng Hệ thống Thông tin quản lý – Khoa Tin học Kinh tế - Đại học Kinh tế Quốc dân Hà Nội. - Micorosoft Access - Nguyễn Thượng Hiền – NXB Khoa Học Kỹ Thuật - Những bài thực hành cơ sở dữ liệu Visual Basic nâng cao, 15-8-2005, Nhà xuất bản Thống kê. - Tài liệu của công ty Thương mại và Dịch vụ K&S MỤC LỤC NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN PHỤ LỤC FRM_CHINH Private Sub chi_Click() Frm_PhieuChi.Show End Sub Private Sub dskh_Click() DtRpKH.Show End Sub Private Sub dslk_Click() DtRpLK.Show End Sub Private Sub dsncc_Click() DtRpNCC.Show End Sub Private Sub dspc_Click() DtRpPC.Show End Sub Private Sub dspt_Click() DtRpPT.Show End Sub Private Sub dssp_Click() DtRpSP.Show End Sub Private Sub Form_Load() DtEvm.DtEvmConn.ConnectionString = "Provider=Microsoft.JET.OLEDB.4.0;Data Source=" & App.Path & "\db\QLBH.mdb" Connect End Sub Private Sub Form_Resize() Frm_Chinh.WindowState = 2 End Sub Private Sub Form_Unload(Cancel As Integer) End End Sub Private Sub ketthuc_Click() End End Sub Private Sub nhaplk_Click() Frm_Nhap.Show End Sub Private Sub khachhang_Click() Frm_KhachHang.Show End Sub Private Sub nhap_Click() Frm_Nhap.Show End Sub Private Sub sanpham_Click() Frm_SanPham.Show End Sub Private Sub thu_Click() Frm_PhieuThu.Show End Sub Private Sub tksp_Click() Frm_TimKiem.Show End Sub Private Sub tra_Click() Frm_TraLai.Show End Sub Private Sub xuat_Click() Frm_Xuat.Show End Sub FRM_NHAP Option Explicit Dim RS_LK As New ADODB.Recordset Dim StrLK As String Dim RS_Temp As New ADODB.Recordset Dim StrTemp As String Dim i As Integer Private Sub ShowRS() Text1(0) = RS("SoPhieuN") Text1(1) = RS("NgayNhap") cboMaNCC.Text = RS("MaNCC") Text1(2) = RS("KhoN") Text1(3) = RS("GhiChuN") cboMaLK.Text = RS("MaLK") StrLK = "SELECT * FROM DanhMucLinhKien WHERE MaLK =""" & cboMaLK.Text & """" RS_LK.Open StrLK, Conn Text1(4) = RS_LK("TenLK") Text1(5) = RS_LK("Ton") Text1(6) = RS_LK("KhoLK") Text1(7) = RS_LK("GhiChuLK") RS_LK.Close End Sub Private Function TestRS() As Boolean RS.MoveNext If RS.EOF Then cmdTien.Enabled = False Else cmdTien.Enabled = True End If RS.MovePrevious RS.MovePrevious If RS.BOF Then cmdLui.Enabled = False Else cmdLui.Enabled = True End If RS.MoveNext If (RS.BOF Or RS.EOF) Then TestRS = False Else TestRS = True End If End Function Private Sub cboMaLK_Click() If cboMaLK.Text "" Then StrLK = "SELECT * FROM DanhMucLinhKien WHERE MaLK=""" & cboMaLK.Text & """" RS_LK.Open StrLK, Conn If Not (RS_LK.EOF And RS_LK.BOF) Then Text1(4) = RS_LK("TenLK") Text1(5) = RS_LK("Ton") Text1(6) = RS_LK("KhoLK") Text1(7) = RS_LK("GhiChuLK") End If RS_LK.Close End If End Sub Private Sub cboXem_Click() If Not (RS.EOF And RS.BOF) Then RS.MoveFirst Do While Not RS.EOF If RS("SoPhieuN") = cboXem.Text Then If Not (RS.EOF Or RS.BOF) Then ShowRS Exit Do Else RS.MoveNext End If Loop If RS.EOF Then RS.MoveFirst TestRS End Sub Private Sub cmdBoqua_Click() Mode = "Show" cboXem.Enabled = True cmdLui.Enabled = True cmdTien.Enabled = True cmdThem.Enabled = True cmdSua.Enabled = True cmdXoa.Enabled = True cmdLuu.Enabled = False cmdBoqua.Enabled = False Text1(0).Enabled = True cboMaNCC.Enabled = True cboMaLK.Enabled = True Unload Frm_ChitietNCC Unload Frm_ChiTietNhap For i = 0 To 7 Text1(i).Locked = True Next cboMaNCC.Locked = True cboMaLK.Locked = True If Not (RS.EOF And RS.BOF) Then cboMaNCC.Clear cboMaLK.Clear RS.Requery ShowRS End If End Sub Private Sub cmdChitietNCC_Click() Frm_ChitietNCC.Show End Sub Private Sub cmdLui_Click() If Not RS.BOF Then RS.MovePrevious 'TestRS If TestRS False Then ShowRS End Sub Private Function Check() As Boolean Dim RS_Tmp As New ADODB.Recordset If Trim(Text1(0)) = "" Then MsgBox "Chua nhap so phieu nhap !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If StrTemp = "SELECT * FROM PhieuNhap WHERE SoPhieuN =""" & Text1(0) & """" If Mode = "Add" Then RS_Tmp.Open StrTemp, Conn If Not (RS_Tmp.EOF And RS_Tmp.BOF) Then MsgBox "So phieu nhap da ton tai !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If RS_Tmp.Close End If If Trim(cboMaNCC) = "" Then MsgBox "Chua nhap ma nha cung cap !", vbCritical, "Quan ly ban hang" cboMaNCC.SetFocus Check = False Exit Function End If If Trim(cboMaLK) = "" Then MsgBox "Chua nhap ma linh kien !", vbCritical, "Quan ly ban hang" cboMaLK.SetFocus Check = False Exit Function End If If Not IsDate(Text1(1)) Then MsgBox "Ngay nhap sai kieu !", vbCritical, "Quan ly ban hang" Text1(1).SetFocus Check = False Exit Function End If Check = True End Function Private Sub cmdLuu_Click() 'If Check = False Then Exit Sub On Error GoTo Err1 If Check = True Then 'Nha cung cap StrTemp = "SELECT * FROM NhaCungCap WHERE MaNCC=""" & cboMaNCC.Text & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic If (RS_Temp.EOF And RS_Temp.BOF) Then For i = 0 To 5 If Len(Frm_ChitietNCC.Text1(i)) = 0 Then Frm_ChitietNCC.Text1(i) = "N/A" End If Next RS_Temp.AddNew RS_Temp("MaNCC") = cboMaNCC.Text RS_Temp("TenNCC") = Frm_ChitietNCC.Text1(0) RS_Temp("DiaChi") = Frm_ChitietNCC.Text1(1) RS_Temp("DienThoai") = Frm_ChitietNCC.Text1(2) RS_Temp("Fax") = Frm_ChitietNCC.Text1(3) RS_Temp("TaiKhoan") = Frm_ChitietNCC.Text1(4) RS_Temp("NganHang") = Frm_ChitietNCC.Text1(5) RS_Temp.Update Else If Mode = "Edit" Then RS_Temp("TenNCC") = Frm_ChitietNCC.Text1(0) RS_Temp("DiaChi") = Frm_ChitietNCC.Text1(1) RS_Temp("DienThoai") = Frm_ChitietNCC.Text1(2) RS_Temp("Fax") = Frm_ChitietNCC.Text1(3) RS_Temp("TaiKhoan") = Frm_ChitietNCC.Text1(4) RS_Temp("NganHang") = Frm_ChitietNCC.Text1(5) RS_Temp.Update End If End If RS_Temp.Close 'Danh muc linh kien StrTemp = "SELECT * FROM DanhMucLinhKien WHERE MaLK=""" & cboMaLK.Text & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic If (RS_Temp.EOF And RS_Temp.BOF) Then For i = 4 To 7 If Len(Text1(i)) = 0 Then Text1(i) = "N/A" End If Next RS_Temp.AddNew RS_Temp("MaLK") = cboMaLK.Text RS_Temp("TenLK") = Text1(4) RS_Temp("Ton") = Text1(5) RS_Temp("KhoLK") = Text1(6) RS_Temp("GhiChuLK") = Text1(7) RS_Temp.Update Else If Mode = "Edit" Then RS_Temp("TenLK") = Text1(4) RS_Temp("Ton") = Text1(5) RS_Temp("KhoLK") = Text1(6) RS_Temp("GhiChuLK") = Text1(7) RS_Temp.Update End If End If RS_Temp.Close 'Phieu nhap StrTemp = "SELECT * FROM PhieuNhap WHERE SoPhieuN = """ & Text1(0) & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic For i = 0 To 3 If Len(Text1(i)) = 0 Then Text1(i) = "N/A" End If Next If Mode = "Add" Then RS_Temp.AddNew RS_Temp("SophieuN") = Text1(0) End If RS_Temp("MaLK") = cboMaLK.Text RS_Temp("MaNCC") = cboMaNCC.Text RS_Temp("NgayNhap") = Text1(1) RS_Temp("KhoN") = Text1(2) RS_Temp("GhiChuN") = Text1(3) RS_Temp.Update RS_Temp.Close 'Chi tiet phieu nhap StrTemp = "SELECT * FROM ChiTietNhap WHERE SoPhieuN = """ & Text1(0) & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic For i = 0 To 5 If Len(Frm_ChiTietNhap.Text1(i)) = 0 Then Frm_ChiTietNhap.Text1(i) = "N/A" End If Next If Mode = "Add" Then RS_Temp.AddNew RS_Temp("SophieuN") = Text1(0) End If RS_Temp("SoHoaDon") = Frm_ChiTietNhap.Text1(0) RS_Temp("SoLuong") = Frm_ChiTietNhap.Text1(1) RS_Temp("DonGia") = Frm_ChiTietNhap.Text1(2) RS_Temp("DonViTinh") = Frm_ChiTietNhap.Text1(3) RS_Temp("TienChuaThue") = Frm_ChiTietNhap.Text1(4) RS_Temp("TienThue") = Frm_ChiTietNhap.Text1(5) RS_Temp.Update RS_Temp.Close cmdBoqua_Click Add_cboXem MsgBox "Cap nhat thanh cong !", vbInformation, "Quan ly ban hang" End If Err1: If Len(Err.Description) 0 Then MsgBox Err.Description, vbCritical, "Quan ly ban hang" End Sub Private Sub cmdSua_Click() Mode = "Edit" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True Text1(0).Enabled = False cboMaNCC.Enabled = False cboMaLK.Enabled = False For i = 1 To 7 Text1(i).Locked = False Next Text1(1).SetFocus Frm_ChitietNCC.Show Frm_ChitietNCC.Hide Frm_ChiTietNhap.Show Frm_ChiTietNhap.Hide End Sub Private Sub cmdThem_Click() Mode = "Add" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True For i = 0 To 7 Text1(i).Locked = False Text1(i) = "" Next cboMaNCC.Locked = False cboMaNCC.Clear StrTemp = "SELECT MaNCC FROM NhaCungCap" RS_Temp.Open StrTemp, Conn If Not (RS_Temp.EOF And RS_Temp.BOF) Then RS_Temp.MoveFirst Do While Not RS_Temp.EOF cboMaNCC.AddItem RS_Temp("MaNCC") RS_Temp.MoveNext Loop End If RS_Temp.Close cboMaLK.Locked = False cboMaLK.Clear StrLK = "SELECT MaLK FROM DanhMucLinhKien" RS_LK.Open StrLK, Conn If Not (RS_LK.EOF And RS_LK.BOF) Then Do While Not RS_LK.EOF cboMaLK.AddItem RS_LK("MaLK") RS_LK.MoveNext Loop End If RS_LK.Close Text1(0).SetFocus Unload Frm_ChitietNCC Unload Frm_ChiTietNhap End Sub Private Sub cmdThoat_Click() Unload Me End Sub Private Sub cmdTien_Click() If Not RS.EOF Then RS.MoveNext 'TestRS If TestRS False Then ShowRS End Sub Private Sub cmdXoa_Click() Mode = "Del" Frm_XoaNhap.Show End Sub Private Sub Command3_Click() Frm_ChiTietNhap.Show End Sub Private Sub Form_Activate() 'Unload Frm_ChitietNCC Unload Frm_XoaNhap If Mode = "Show" Then If Not (RS.EOF Or RS.BOF) Then ShowRS Add_cboXem End If End Sub Private Sub Add_cboXem() Dim RS_Xem As New ADODB.Recordset cboXem.Clear cboXem.AddItem "Xem nhanh theo sè phiÕu nhËp" str = "SELECT SoPhieuN FROM PhieuNhap ORDER BY SophieuN" RS_Xem.Open str, Conn Do While Not RS_Xem.EOF cboXem.AddItem RS_Xem("SoPhieuN") RS_Xem.MoveNext Loop RS_Xem.Close Set RS_Xem = Nothing cboXem.ListIndex = 0 End Sub Private Sub Form_Load() Mode = "Show" 'Connect str = "SELECT * FROM PhieuNhap ORDER BY SophieuN" RS.Open str, Conn, adOpenDynamic, adLockOptimistic If Not (RS.EOF Or RS.BOF) Then ShowRS Add_cboXem 'TestRS End Sub Private Sub Form_Unload(Cancel As Integer) RS.Close Set RS = Nothing Set RS_LK = Nothing Unload Frm_ChitietNCC Unload Frm_ChiTietNhap End Sub FRM_XUAT Option Explicit Dim RS_Temp As New ADODB.Recordset Dim StrTemp As String Dim i As Integer Private Sub ShowRS() Text1(0) = RS("PhieuXuat.SoPhieuX") Text1(1) = RS("NgayXuat") cboMaKH.Text = RS("MaKH") Text1(2) = RS("KhoX") Text1(3) = RS("GhiChuX") cboMaSP.Text = RS("MaSP") Text1(4) = RS("SoHoaDon") Text1(5) = RS("SoLuong") Text1(6) = RS("DonGia") Text1(7) = RS("DonViTinh") Text1(8) = RS("TienChuaThue") Text1(9) = RS("TienThue") End Sub Private Function TestRS() As Boolean RS.MoveNext If RS.EOF Then cmdTien.Enabled = False Else cmdTien.Enabled = True End If RS.MovePrevious RS.MovePrevious If RS.BOF Then cmdLui.Enabled = False Else cmdLui.Enabled = True End If RS.MoveNext If (RS.BOF Or RS.EOF) Then TestRS = False Else TestRS = True End If End Function Private Sub cboXem_Click() If Not (RS.EOF And RS.BOF) Then RS.MoveFirst Do While Not RS.EOF If RS("PhieuXuat.SoPhieuX") = cboXem.Text Then If Not (RS.EOF And RS.BOF) Then If Not (RS.EOF Or RS.BOF) Then ShowRS Exit Do Else RS.MoveNext End If Loop If RS.EOF Then RS.MoveFirst TestRS End Sub Private Sub cmdBoqua_Click() Mode = "Show" cboXem.Enabled = True cmdLui.Enabled = True cmdTien.Enabled = True cmdThem.Enabled = True cmdSua.Enabled = True cmdXoa.Enabled = True cmdLuu.Enabled = False cmdBoqua.Enabled = False Text1(0).Enabled = True cboMaKH.Enabled = True cboMaSP.Enabled = True For i = 0 To 9 Text1(i).Locked = True Next cboMaKH.Locked = True cboMaSP.Locked = True If Not (RS.EOF And RS.BOF) Then cboMaKH.Clear cboMaSP.Clear RS.Requery ShowRS End If End Sub Private Sub cmdLui_Click() If Not RS.BOF Then RS.MovePrevious If TestRS False Then ShowRS End Sub Private Function Check() As Boolean Dim RS_Tmp As New ADODB.Recordset If Trim(Text1(0)) = "" Then MsgBox "Chua nhap so phieu xuat !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If StrTemp = "SELECT * FROM PhieuXuat WHERE SoPhieuX =""" & Text1(0) & """" If Mode = "Add" Then RS_Tmp.Open StrTemp, Conn If Not (RS_Tmp.EOF And RS_Tmp.BOF) Then MsgBox "So phieu xuat da ton tai !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If RS_Tmp.Close End If If Trim(cboMaKH) = "" Then MsgBox "Chua nhap ma khach hang !", vbCritical, "Quan ly ban hang" cboMaKH.SetFocus Check = False Exit Function End If StrTemp = "SELECT MaKH FROM KhachHang WHERE MaKH =""" & cboMaKH.Text & """" RS_Tmp.Open StrTemp, Conn If (RS_Tmp.EOF And RS_Tmp.BOF) Then MsgBox "Ma khach hang khong ton tai !" & Chr(13) _ & "Ban phai chon ma khach hang co trong danh sach hoac nhap thong tin ve khach hang nay truoc.", vbCritical, "Quan ly ban hang" cboMaKH.SetFocus Check = False Exit Function End If RS_Tmp.Close If Trim(cboMaSP) = "" Then MsgBox "Chua nhap ma san pham !", vbCritical, "Quan ly ban hang" cboMaSP.SetFocus Check = False Exit Function End If StrTemp = "SELECT MaSP FROM DanhMucSanPham WHERE MaSP =""" & cboMaSP.Text & """" RS_Tmp.Open StrTemp, Conn If (RS_Tmp.EOF And RS_Tmp.BOF) Then MsgBox "Ma san pham khong ton tai !" & Chr(13) _ & "Ban phai chon ma san pham co trong danh sach hoac nhap thong tin ve san pham nay truoc.", vbCritical, "Quan ly ban hang" cboMaKH.SetFocus Check = False Exit Function End If RS_Tmp.Close If Not IsDate(Text1(1)) Then MsgBox "Ngay xuat sai kieu !", vbCritical, "Quan ly ban hang" Text1(1).SetFocus Check = False Exit Function End If Check = True End Function Private Sub cmdLuu_Click() 'If Check = False Then Exit Sub On Error GoTo Err1 If Check = True Then 'Phieu xuat StrTemp = "SELECT * FROM PhieuXuat WHERE SoPhieuX = """ & Text1(0) & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic For i = 0 To 3 If Len(Text1(i)) = 0 Then Text1(i) = "N/A" End If Next If Mode = "Add" Then RS_Temp.AddNew RS_Temp("SophieuX") = Text1(0) End If RS_Temp("MaKH") = cboMaKH.Text RS_Temp("NgayXuat") = Text1(1) RS_Temp("KhoX") = Text1(2) RS_Temp("GhiChuX") = Text1(3) RS_Temp.Update RS_Temp.Close 'Chi tiet phieu xuat StrTemp = "SELECT * FROM ChiTietXuat WHERE SoPhieuX = """ & Text1(0) & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic For i = 4 To 9 If Len(Text1(i)) = 0 Then Text1(i) = "N/A" End If Next If Mode = "Add" Then RS_Temp.AddNew RS_Temp("SophieuX") = Text1(0) End If RS_Temp("MaSP") = cboMaSP.Text RS_Temp("SoHoaDon") = Text1(4) RS_Temp("SoLuong") = Text1(5) RS_Temp("DonGia") = Text1(6) RS_Temp("DonViTinh") = Text1(7) RS_Temp("TienChuaThue") = Text1(8) RS_Temp("TienThue") = Text1(9) RS_Temp.Update RS_Temp.Close cmdBoqua_Click Add_cboXem MsgBox "Cap nhat thanh cong !", vbInformation, "Quan ly ban hang" End If Err1: If Len(Err.Description) 0 Then MsgBox Err.Description, vbCritical, "Quan ly ban hang" End Sub Private Sub cmdSua_Click() Dim Temp1, Temp2 As String Mode = "Edit" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True Text1(0).Enabled = False For i = 1 To 9 Text1(i).Locked = False Next cboMaKH.Locked = False Temp1 = cboMaKH.Text cboMaKH.Clear StrTemp = "SELECT MaKH FROM KhachHang" RS_Temp.Open StrTemp, Conn If Not (RS_Temp.EOF And RS_Temp.BOF) Then RS_Temp.MoveFirst Do While Not RS_Temp.EOF cboMaKH.AddItem RS_Temp("MaKH") If RS_Temp("MaKH") = Temp1 Then Temp2 = cboMaKH.ListCount - 1 RS_Temp.MoveNext Loop End If RS_Temp.Close cboMaKH.ListIndex = Temp2 cboMaSP.Locked = False Temp1 = cboMaSP.Text cboMaSP.Clear StrTemp = "SELECT MaSP FROM DanhMucSanPham" RS_Temp.Open StrTemp, Conn If Not (RS_Temp.EOF And RS_Temp.BOF) Then Do While Not RS_Temp.EOF cboMaSP.AddItem RS_Temp("MaSP") If RS_Temp("MaSP") = Temp1 Then Temp2 = cboMaSP.ListCount - 1 RS_Temp.MoveNext Loop End If RS_Temp.Close cboMaSP.ListIndex = Temp2 Text1(1).SetFocus End Sub Private Sub cmdThem_Click() Mode = "Add" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True For i = 0 To 9 Text1(i).Locked = False Text1(i) = "" Next cboMaKH.Locked = False cboMaKH.Clear StrTemp = "SELECT MaKH FROM KhachHang" RS_Temp.Open StrTemp, Conn If Not (RS_Temp.EOF And RS_Temp.BOF) Then RS_Temp.MoveFirst Do While Not RS_Temp.EOF cboMaKH.AddItem RS_Temp("MaKH") RS_Temp.MoveNext Loop End If RS_Temp.Close cboMaSP.Locked = False cboMaSP.Clear StrTemp = "SELECT MaSP FROM DanhMucSanPham" RS_Temp.Open StrTemp, Conn If Not (RS_Temp.EOF And RS_Temp.BOF) Then Do While Not RS_Temp.EOF cboMaSP.AddItem RS_Temp("MaSP") RS_Temp.MoveNext Loop End If RS_Temp.Close Text1(0).SetFocus End Sub Private Sub cmdThoat_Click() Unload Me End Sub Private Sub cmdTien_Click() If Not RS.EOF Then RS.MoveNext If TestRS False Then ShowRS End Sub Private Sub cmdXoa_Click() If (RS.EOF And RS.BOF) Then MsgBox "Co so du lieu rong !", vbCritical Exit Sub End If If MsgBox("Ban muon xoa phieu xuat nay ?", vbExclamation + vbYesNo) = vbYes Then RS.Delete adAffectCurrent RS.Requery ShowRS cmdBoqua_Click Add_cboXem Else Exit Sub End If End Sub Private Sub Add_cboXem() Dim RS_Xem As New ADODB.Recordset cboXem.Clear cboXem.AddItem "Xem nhanh theo sè phiÕu xuÊt" str = "SELECT SoPhieuX FROM PhieuXuat ORDER BY SophieuX" RS_Xem.Open str, Conn Do While Not RS_Xem.EOF cboXem.AddItem RS_Xem("SoPhieuX") RS_Xem.MoveNext Loop RS_Xem.Close Set RS_Xem = Nothing cboXem.ListIndex = 0 End Sub Private Sub Form_Load() Mode = "Show" 'Connect str = "SELECT * FROM PhieuXuat,ChiTietXuat WHERE PhieuXuat.SophieuX = ChiTietXuat.SophieuX ORDER BY PhieuXuat.SophieuX" RS.Open str, Conn, adOpenDynamic, adLockOptimistic If Not (RS.EOF Or RS.BOF) Then ShowRS Add_cboXem End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next RS.Close Set RS = Nothing Set RS_Temp = Nothing End Sub FRM_KHACHHANG Option Explicit Dim RS_Temp As New ADODB.Recordset Dim StrTemp As String Dim i As Integer Private Sub ShowRS() Text1(0) = RS("MaKH") Text1(1) = RS("TenKH") Text1(2) = RS("MaSoThue") Text1(3) = RS("DiaChi") Text1(4) = RS("DienThoai") Text1(5) = RS("Fax") Text1(6) = RS("TK") Text1(7) = RS("NganHang") End Sub Private Function TestRS() As Boolean RS.MoveNext If RS.EOF Then cmdTien.Enabled = False Else cmdTien.Enabled = True End If RS.MovePrevious RS.MovePrevious If RS.BOF Then cmdLui.Enabled = False Else cmdLui.Enabled = True End If RS.MoveNext If (RS.BOF Or RS.EOF) Then TestRS = False Else TestRS = True End If End Function Private Sub cboXem_Click() If Not (RS.EOF And RS.BOF) Then RS.MoveFirst Do While Not RS.EOF If RS("MaKH") = cboXem.Text Then If Not (RS.EOF And RS.BOF) Then If Not (RS.EOF Or RS.BOF) Then ShowRS Exit Do Else RS.MoveNext End If Loop If RS.EOF Then RS.MoveFirst TestRS End Sub Private Sub cmdBoqua_Click() Mode = "Show" cboXem.Enabled = True cmdLui.Enabled = True cmdTien.Enabled = True cmdThem.Enabled = True cmdSua.Enabled = True cmdXoa.Enabled = True cmdLuu.Enabled = False cmdBoqua.Enabled = False Text1(0).Enabled = True If Not (RS.EOF And RS.BOF) Then RS.Requery ShowRS End If End Sub Private Sub cmdLui_Click() If Not RS.BOF Then RS.MovePrevious If TestRS False Then ShowRS End Sub Private Function Check() As Boolean Dim RS_Tmp As New ADODB.Recordset If Trim(Text1(0)) = "" Then MsgBox "Chua nhap ma khach hang !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If StrTemp = "SELECT * FROM KhachHang WHERE MaKH =""" & Text1(0) & """" If Mode = "Add" Then RS_Tmp.Open StrTemp, Conn If Not (RS_Tmp.EOF And RS_Tmp.BOF) Then MsgBox "Ma khach hang da ton tai !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If RS_Tmp.Close End If Check = True End Function Private Sub cmdLuu_Click() On Error GoTo Err1 If Check = True Then 'Khach hang StrTemp = "SELECT * FROM KhachHang WHERE MaKH = """ & Text1(0) & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic For i = 1 To 7 If Len(Text1(i)) = 0 Then Text1(i) = "N/A" End If Next If Mode = "Add" Then RS_Temp.AddNew RS_Temp("MaKH") = Text1(0) End If RS_Temp("TenKH") = Text1(1) RS_Temp("MaSoThue") = Text1(2) RS_Temp("DiaChi") = Text1(3) RS_Temp("DienThoai") = Text1(4) RS_Temp("Fax") = Text1(5) RS_Temp("TK") = Text1(6) RS_Temp("NganHang") = Text1(7) RS_Temp.Update RS_Temp.Close cmdBoqua_Click Add_cboXem MsgBox "Cap nhat thanh cong !", vbInformation, "Quan ly ban hang" End If Err1: If Len(Err.Description) 0 Then MsgBox Err.Description, vbCritical, "Quan ly ban hang" End Sub Private Sub cmdSua_Click() Dim Temp1, Temp2 As String Mode = "Edit" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True Text1(0).Enabled = False For i = 1 To 7 Text1(i).Locked = False Next Text1(1).SetFocus End Sub Private Sub cmdThem_Click() Mode = "Add" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True For i = 0 To 7 Text1(i).Locked = False Text1(i) = "" Next Text1(0).SetFocus End Sub Private Sub cmdThoat_Click() Unload Me End Sub Private Sub cmdTien_Click() If Not RS.EOF Then RS.MoveNext If TestRS False Then ShowRS End Sub Private Sub cmdXoa_Click() If (RS.EOF And RS.BOF) Then MsgBox "Co so du lieu rong !", vbCritical Exit Sub End If If MsgBox("Toan bo phieu xuat va phieu tra cua khach hang nay se bi xoa." & Chr(13) _ & "Ban muon xoa thong tin ve khach hang nay ?", vbCritical + vbYesNo) = vbYes Then RS.Delete adAffectCurrent RS.Requery ShowRS cmdBoqua_Click Add_cboXem Else Exit Sub End If End Sub Private Sub Add_cboXem() Dim RS_Xem As New ADODB.Recordset cboXem.Clear cboXem.AddItem "Xem nhanh theo m· KH" str = "SELECT MaKH FROM KhachHang ORDER BY MaKH" RS_Xem.Open str, Conn Do While Not RS_Xem.EOF cboXem.AddItem RS_Xem("MaKH") RS_Xem.MoveNext Loop RS_Xem.Close Set RS_Xem = Nothing cboXem.ListIndex = 0 End Sub Private Sub Form_Load() Mode = "Show" 'Connect str = "SELECT * FROM KhachHang ORDER BY MaKH" RS.Open str, Conn, adOpenDynamic, adLockOptimistic If Not (RS.EOF Or RS.BOF) Then ShowRS Add_cboXem End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next RS.Close Set RS = Nothing Set RS_Temp = Nothing End Sub FRMSANPHAM Option Explicit Dim RS_Temp As New ADODB.Recordset Dim StrTemp As String Dim i As Integer Private Sub ShowRS() Text1(0) = RS("MaSP") Text1(1) = RS("TenSP") Text1(2) = RS("LuongTon") Text1(3) = RS("KhoSP") Text1(4) = RS("GhiChuSP") End Sub Private Function TestRS() As Boolean RS.MoveNext If RS.EOF Then cmdTien.Enabled = False Else cmdTien.Enabled = True End If RS.MovePrevious RS.MovePrevious If RS.BOF Then cmdLui.Enabled = False Else cmdLui.Enabled = True End If RS.MoveNext If (RS.BOF Or RS.EOF) Then TestRS = False Else TestRS = True End If End Function Private Sub cboXem_Click() If Not (RS.EOF And RS.BOF) Then RS.MoveFirst Do While Not RS.EOF If RS("MaSP") = cboXem.Text Then If Not (RS.EOF And RS.BOF) Then If Not (RS.EOF Or RS.BOF) Then ShowRS Exit Do Else RS.MoveNext End If Loop If RS.EOF Then RS.MoveFirst TestRS End Sub Private Sub cmdBoqua_Click() Mode = "Show" cboXem.Enabled = True cmdLui.Enabled = True cmdTien.Enabled = True cmdThem.Enabled = True cmdSua.Enabled = True cmdXoa.Enabled = True cmdLuu.Enabled = False cmdBoqua.Enabled = False Text1(0).Enabled = True If Not (RS.EOF And RS.BOF) Then RS.Requery ShowRS End If End Sub Private Sub cmdLui_Click() If Not RS.BOF Then RS.MovePrevious If TestRS False Then ShowRS End Sub Private Function Check() As Boolean Dim RS_Tmp As New ADODB.Recordset If Trim(Text1(0)) = "" Then MsgBox "Chua nhap ma san pham !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If StrTemp = "SELECT * FROM DanhMucSanPham WHERE MaSP =""" & Text1(0) & """" If Mode = "Add" Then RS_Tmp.Open StrTemp, Conn If Not (RS_Tmp.EOF And RS_Tmp.BOF) Then MsgBox "Ma san pham da ton tai !", vbCritical, "Quan ly ban hang" Text1(0).SetFocus Check = False Exit Function End If RS_Tmp.Close End If Check = True End Function Private Sub cmdLuu_Click() On Error GoTo Err1 If Check = True Then 'Khach hang StrTemp = "SELECT * FROM DanhMucSanPham WHERE MaSP = """ & Text1(0) & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic For i = 1 To 4 If Len(Text1(i)) = 0 Then Text1(i) = "N/A" End If Next If Mode = "Add" Then RS_Temp.AddNew RS_Temp("MaSP") = Text1(0) End If RS_Temp("TenSP") = Text1(1) RS_Temp("LuongTon") = Text1(2) RS_Temp("KhoSP") = Text1(3) RS_Temp("GhiChuSP") = Text1(4) RS_Temp.Update RS_Temp.Close cmdBoqua_Click Add_cboXem MsgBox "Cap nhat thanh cong !", vbInformation, "Quan ly ban hang" End If Err1: If Len(Err.Description) 0 Then MsgBox Err.Description, vbCritical, "Quan ly ban hang" End Sub Private Sub cmdSua_Click() Dim Temp1, Temp2 As String Mode = "Edit" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True Text1(0).Enabled = False For i = 1 To 4 Text1(i).Locked = False Next Text1(1).SetFocus End Sub Private Sub cmdThem_Click() Mode = "Add" cboXem.Enabled = False cmdLui.Enabled = False cmdTien.Enabled = False cmdThem.Enabled = False cmdSua.Enabled = False cmdXoa.Enabled = False cmdLuu.Enabled = True cmdBoqua.Enabled = True For i = 0 To 4 Text1(i).Locked = False Text1(i) = "" Next Text1(0).SetFocus End Sub Private Sub cmdThoat_Click() Unload Me End Sub Private Sub cmdTien_Click() If Not RS.EOF Then RS.MoveNext If TestRS False Then ShowRS End Sub Private Sub cmdXoa_Click() If (RS.EOF And RS.BOF) Then MsgBox "Co so du lieu rong !", vbCritical Exit Sub End If If MsgBox("Toan bo phieu xuat va phieu tra cua san pham nay se bi xoa." & Chr(13) _ & "Ban muon xoa thong tin ve san pham nay ?", vbCritical + vbYesNo) = vbYes Then RS.Delete adAffectCurrent RS.Requery ShowRS cmdBoqua_Click Add_cboXem Else Exit Sub End If End Sub Private Sub Add_cboXem() Dim RS_Xem As New ADODB.Recordset cboXem.Clear cboXem.AddItem "Xem nhanh theo m· s¶n phÈm" str = "SELECT MaSP FROM DanhMucSanPham ORDER BY MaSP" RS_Xem.Open str, Conn Do While Not RS_Xem.EOF cboXem.AddItem RS_Xem("MaSP") RS_Xem.MoveNext Loop RS_Xem.Close Set RS_Xem = Nothing cboXem.ListIndex = 0 End Sub Private Sub Form_Load() Mode = "Show" 'Connect str = "SELECT * FROM DanhMucSanPham ORDER BY MaSP" RS.Open str, Conn, adOpenDynamic, adLockOptimistic If Not (RS.EOF Or RS.BOF) Then ShowRS Add_cboXem End Sub Private Sub Form_Unload(Cancel As Integer) On Error Resume Next RS.Close Set RS = Nothing Set RS_Temp = Nothing End Sub FRM_TIMKIEM Option Explicit Dim RS_Temp As New ADODB.Recordset Dim StrTemp As String Private Sub DiSPlayResult(str As String) Text2 = str End Sub Private Sub cmdKT_Click() Unload Me End Sub Private Sub cmdTimKH_Click() Dim KH, StrResult As String KH = "%" & Trim(Text1(2)) & "%" StrResult = " KÕt qu¶ t×m kiÕm" & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf StrTemp = "SELECT * FROM KhachHang WHERE TenKH LIKE """ & KH & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic If Not (RS_Temp.EOF And RS_Temp.BOF) Then Do While Not RS_Temp.EOF StrResult = StrResult & " M· kh¸ch hµng: " & RS_Temp("MaKH") & vbCrLf StrResult = StrResult & " Tªn kh¸ch hµng: " & RS_Temp("TenKH") & vbCrLf StrResult = StrResult & " M· sè thuÕ: " & RS_Temp("MaSoThue") & vbCrLf StrResult = StrResult & " §Þa chØ: " & RS_Temp("DiaChi") & vbCrLf StrResult = StrResult & " §iÖn tho¹i: " & RS_Temp("DienThoai") & vbCrLf StrResult = StrResult & " Fax: " & RS_Temp("Fax") & vbCrLf StrResult = StrResult & " Tµi kho¶n: " & RS_Temp("TK") & vbCrLf StrResult = StrResult & " Ng©n hµng: " & RS_Temp("NganHang") & vbCrLf & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf RS_Temp.MoveNext Loop Else StrResult = StrResult & " Kh«ng t×m thÊy !" End If RS_Temp.Close DiSPlayResult (StrResult) End Sub Private Sub cmdTimLK_Click() Dim LK, StrResult As String LK = "%" & Trim(Text1(3)) & "%" StrResult = " KÕt qu¶ t×m kiÕm" & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf StrTemp = "SELECT * FROM DanhMucLinhKien WHERE TenLK LIKE """ & LK & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic If Not (RS_Temp.EOF And RS_Temp.BOF) Then Do While Not RS_Temp.EOF StrResult = StrResult & " M· linh kiÖn: " & RS_Temp("MaLK") & vbCrLf StrResult = StrResult & " Tªn linh kiÖn: " & RS_Temp("TenLK") & vbCrLf StrResult = StrResult & " L­îng tån: " & RS_Temp("Ton") & vbCrLf StrResult = StrResult & " Kho: " & RS_Temp("KhoLK") & vbCrLf StrResult = StrResult & " Ghi chó: " & RS_Temp("GhiChuLK") & vbCrLf & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf RS_Temp.MoveNext Loop Else StrResult = StrResult & " Kh«ng t×m thÊy !" End If RS_Temp.Close DiSPlayResult (StrResult) End Sub Private Sub cmdTimNCC_Click() Dim NCC, StrResult As String NCC = "%" & Trim(Text1(1)) & "%" StrResult = " KÕt qu¶ t×m kiÕm" & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf StrTemp = "SELECT * FROM NhaCungCap WHERE TenNCC LIKE """ & NCC & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic If Not (RS_Temp.EOF And RS_Temp.BOF) Then Do While Not RS_Temp.EOF StrResult = StrResult & " M· NCC: " & RS_Temp("MaNCC") & vbCrLf StrResult = StrResult & " Tªn NCC: " & RS_Temp("TenNCC") & vbCrLf StrResult = StrResult & " §Þa chØ: " & RS_Temp("DiaChi") & vbCrLf StrResult = StrResult & " §iÖn tho¹i: " & RS_Temp("DienThoai") & vbCrLf StrResult = StrResult & " Fax: " & RS_Temp("Fax") & vbCrLf StrResult = StrResult & " Tµi kho¶n: " & RS_Temp("TaiKhoan") & vbCrLf StrResult = StrResult & " Ng©n hµng: " & RS_Temp("NganHang") & vbCrLf & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf RS_Temp.MoveNext Loop Else StrResult = StrResult & " Kh«ng t×m thÊy !" End If RS_Temp.Close DiSPlayResult (StrResult) End Sub Private Sub cmdTimSP_Click() Dim SP, StrResult As String SP = "%" & Trim(Text1(0)) & "%" StrResult = " KÕt qu¶ t×m kiÕm" & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf StrTemp = "SELECT * FROM DanhMucSanPham WHERE TenSP LIKE """ & SP & """" RS_Temp.Open StrTemp, Conn, adOpenDynamic, adLockOptimistic If Not (RS_Temp.EOF And RS_Temp.BOF) Then Do While Not RS_Temp.EOF StrResult = StrResult & " M· s¶n phÈm: " & RS_Temp("MaSP") & vbCrLf StrResult = StrResult & " Tªn s¶n phÈm: " & RS_Temp("TenSP") & vbCrLf StrResult = StrResult & " L­îng tån: " & RS_Temp("LuongTon") & vbCrLf StrResult = StrResult & " Kho: " & RS_Temp("KhoSP") & vbCrLf StrResult = StrResult & " Ghi chó: " & RS_Temp("GhiChuSP") & vbCrLf & vbCrLf StrResult = StrResult & " ---------------------------------------------------------------------------------------------------------------------------" & vbCrLf RS_Temp.MoveNext Loop Else StrResult = StrResult & " Kh«ng t×m thÊy !" End If RS_Temp.Close DiSPlayResult (StrResult) End Sub Private Sub Form_Load() 'Connect End Sub Private Sub Text1_Click(Index As Integer) Text1(Index).SelStart = 0 Text1(Index).SelLength = Len(Text1(Index)) End Sub

Các file đính kèm theo tài liệu này:

  • docP0096.doc