Đề tài Tìm hiểu đơn hàng gia công tại công ty XYZ

XYZ là một Công Ty hoạt động theo mô hình phục vụ, được mô tả như sau: Khách hàng ký các đơn đặt hàng để gia công các sản phẩm nào đó.Nguyên liệu sẽ do khách hàng cung cấp để sản xuất và khi sản xuất xong thì Công ty sẽ giao sản phẩm được sản xuất cho khách hàng theo các đơn hàng đã ký. Việc tính lượng tồn nguyên liệu tồn còn lại dựa theo định mức sản xuất là bao nhiêu, các nguyên liệu nào để cho ra 1 đơn vị sản phẩm.

doc41 trang | Chia sẻ: vietpd | Lượt xem: 2166 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đề tài Tìm hiểu đơn hàng gia công tại công ty XYZ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
GIỚI THIỆU: Thực hiện chương trình: Võ Hòa Đồn . Ngày cập nhật sau cùng: Ngày 26 tháng 10 năm 2004 XYZ là một Công Ty hoạt động theo mô hình phục vụ, được mô tả như sau: Khách hàng ký các đơn đặt hàng để gia công các sản phẩm nào đó.Nguyên liệu sẽ do khách hàng cung cấp để sản xuất và khi sản xuất xong thì Công ty sẽ giao sản phẩm được sản xuất cho khách hàng theo các đơn hàng đã ký. Việc tính lượng tồn nguyên liệu tồn còn lại dựa theo định mức sản xuất là bao nhiêu, các nguyên liệu nào để cho ra 1 đơn vị sản phẩm. Quản lý việc thanh tốn (tiền gia công), công nợ khách hàng vàquản lý tồn nguyên liệu mà công ty còn giữ của khách hàng sau khi đã trừ các nguyên liệu sản xuất và giao các sản phẩm. Chương trình được viết trên ngôn ngữ Visual Basic, kết nối với Cơ sở dữ liệu Access; cùng với 2 phần mềm Data Widgets để hiển thị dữ liệu lên lưới và Crystal Report 8.5 để lập báo cáo. Chúng em đã được sự hướng dẫn tận tình của thầy Phạm Ngọc Linh cũng như ý kiến đóng góp quý báo của các bạn. Tuy nhiên thới gian và kinh nghiệm có hạn nên chương trìng không tránh khỏi thiếu sót, hạn chế. Rất mong được sự góp ý của quý thầy cô và ý kiến của các bạn. Thân ái. Tp HCM ngày 26 tháng 10 năm 2004 Lớp: CV0303S Nhóm HVTH: VÕ HÒA ĐỒN TRỊNH CÔNG MINH ĐỖ KIẾN HÙNG Chương trình kết nối trên Cơ sở dữ liệu Access. Để kết nối với các hệ quản trị cơ sở dữ liệu bằng đối tượng ADO phải dùng chuỗi chuổi kết nối ( SQLConn ) thông qua trình điều khiển Provider: SQLConn = " Provider = Microsoft.Jet.OLEDB.4.0 ; Data Source= Persist Security Info=False " Đối tượng Connection: Dùng để kết nối các hệ quản trị cơ sở dữ liệu, thực thi câc lệnh SQL(insert, update, delete) thông qua phương thức Execute Có thể tạo đối tượng connection thông qua nhiều cách: Dim Conn as new ADODB.Connection Thực thi câu lệnh SQL .Execute Ví dụ: Với câu lện SQL: Str = " insert into GIAONHAN values('" & Trim(cboSoPhieu) & "','" & Trim(cboSoDDH) & "','" & Trim(txtNgay) & "')" Conn.Execute Str Đối tượng Recordset : Dùng để thực thi lấy mẫu tin từ cơ sở dữ liệu thông qua câu lệnh SQL Select . Có thể tạo đối tượng Recordset bằng cách: Dim Rst as new ADODB. Recordset Câu lệnh SQL: strSQL = " select TenkhachHang From KhachHang " Thực thi câu lệnh SQL .open , ví dụ: Rst.Open strSQL ,Conn MÔ TẢ CÁC PHIẾU: Phiếu nhập nguyên liệu: Nguyên liệu được Khách Hàng cung cấp sau khi Công ty và khách hàng thoả thuận việc gia công sản phẩm mà khách hàng yêu cầu. Số HĐ : Khách Hàng : Địa Chỉ : Điện Thoại : Ngày Nhập : Nguyên liệu Số lượng ĐVT Đơn đặt hàng: Số ĐĐH : Khách Hàng : Địa Chỉ : Điện Thoại : Ngày kí kết : Hạn giao : Sản phẩm ĐVT Số lượng Đơn giá Phiếu giao nhận: Số Phiếu : Số ĐĐH : Khách Hàng : Địa Chỉ : Điện Thoại : Ngày Giao : Sản phẩm Số lượng Đơn giá Phiếu thanh tốn: Số TT : Ngày TT : Khách Hàng : Địa Chỉ : Điện Thoại : Tiền TT : Tồn nguyên liệu: Ngày tồn : Khách Hàng : Địa Chỉ : Điện Thoại : Nguyên liệu Số lượng tồn ĐVT Công nợ: Ngày CN : Khách Hàng : Địa Chỉ : Điện Thoại : Tiền CN : Thống kê doanh số theo Sản phẩm của từng ĐĐH: Tháng…….năm 2004 Sản phẩm Số lượng Doanh số (tiền thu) PHÂN TÍCH: PHÂN TÍCH THÀNH PHẦN DỮ LIỆU CỦA ỨNG DỤNG: Sơ đồ quan niệm dữ liệu: Hình 1: Sơ đồ Quan niệm dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG Mô tả dữ liệu: a) Các loại thực thể: KhachHang Khách hàng DonDatHang Đơn đặt hàng ChiTietDonDatHang Chi tiết đơn đặt hàng SanPham Sản phẩm DinhMucSanXuat Định mức sản xuất CongNo Công nợ GiaoNhan Giao nhận ChiTietGiaoNhan Chi tiết giao nhận NguyenLieu Nguyên liệu ThanhToan Thanh tốn Ton Tồn NhapXuatNguyenLieu Nhập xuất nguyên liệu ChiTietNguyenLieu Chi tiết nguyên liệu Mô tả các loại thực thể: b1) Thực thể Khách hàng: Thuộc tính Diễn giải Kiểu Ràng buộc MaKhachHang Mã khách hàng Text Khố chính TenKhachHang Tên khách hàng Text DiaChi Địa chỉ Text DienThoai Điện thoại Text b2) Thực thể đơn đặt hàng: Thuộc tính Diễn giải Kiểu Ràng buộc SoDonDatHang Số đơn đặt hàng Text Khố chính MaKhachHang Mã khách hàng Text Khố ngoại NgayKiKet Ngày kí kết Date DienThoai Điện thoại String b3) Thực thể Chi tiết đơn đặt hàng: Thuộc tính Diễn giải Kiểu Ràng buộc SoDonDatHang Số đơn đặt hàng Text Khố chính SanPham Sản phẩm Text Khố ngoại SoLuongDatHang SL đặt hàng Number DonGia Đơn giá Number HanGia Hạn giao Date() b4) Thực thể Sản phẩm: Thuộc tính Diễn giải Kiểu Ràng buộc SanPham Sản phẩm Text Khố chính TenSanPham Tên sản phẩm Text DonViTinh Đơn vị tính Number DonGia Đơn giá Number b5) Thực thể Định mức sản xuất: Thuộc tính Diễn giải Kiểu Ràng buộc NguyenLieu Nguyên liệu Text Khố ngoại SanPham Sản phẩm Text Khố ngoại SoLuongSanXuat Số lượng sản xuất Number b6) Thực thể công nợ: Thuộc tính Diễn giải Kiểu Ràng buộc NgayCongNo Ngày công nợ Date() Khố chính MaKhachHang Mã khách hàng Text Khố ngoại TienCongNo Tiền công nợ Number b7) Thực thể Giao Nhận: Thuộc tính Diễn giải Kiểu Ràng buộc SoPhieu Số phiếụ Text Khố chính SoDonDatHang Số đơn đặt hàng Text Khố ngoại NgayGiao Ngày giao Number b8) Thực thể Chi tiết giao nhận: Thuộc tính Diễn giải Kiểu Ràng buộc SoPhieu Số phiếu Text Khố ngoại SanPham Sản phẩm Text Khố ngoại SoLuong Số lượng Number DonGia Đơn giá Number b9) Thực thể Nguyên Liệu: Thuộc tính Diễn giải Kiểu Ràng buộc NguyenLieu Nguyên liệu Text Khố chính Ten NguyenLieu Tên nguyên liệu Text DonViTinh Đơn vị tính Number b10) Thực thể Thanh Tốn: Thuộc tính Diễn giải Kiểu Ràng buộc SoThanhToan Số thanh tốn Text Khố chính NgayThanhToan Ngày thanh tốn Date() Khố ngoại MaKhachHang Mã khách Hàng Text TienThanhToan Tiền thanh tốn Number b11) Tthực thể Tồn: Thuộc tính Diễn giải Kiểu Ràng buộc MaKhachHang Mã khách hàng Text Khố ngoại NguyenLieu Nguyên liệu Text Khố ngoại SoLuongTon Số lượng tồn Number NgayTon Ngày tồn Date() b12) Thực thể Nhập xuất nguyên liệu: Thuộc tính Diễn giải Kiểu Ràng buộc SoHoaDonNhap Số hố đơn nhập Text Khố chính MaKhachHang Mã khách hàng Text Khố ngoại NgayNhap Ngày nhập Date() b13) Thực thể Chi tiết nguyên liệu: Thuộc tính Diễn giải Kiểu Ràng buộc SoHoaDonNhap Số hố đơn nhập Text Khố ngoại NguyenLieu Nguyên liệu Text Khố ngoại SoLuong Số lượng Date() c) Ràng buộc tồn vẹn: KHỐ CHÍNH: R1-01: id(CongNo) = sttCNO R1-02: id(KhachHang) = MaKhachHang R1-03: id(DonDatHang) = SoDDH R1-04: id(ChiTietDonDathang) = sttDDH R1-05: id(SanPham) = SanPham R1-06: id(DinhMucSanXuat) = sttSX R1-07: id(GiaoNhan) = SoPhieu R1-08: id(ChiTietGiaoNhan) = sttGiaoNhan R1-09: id(ThanhToan) = SoTT R1-10: id(Ton) = sttTon R1-11: id(NhapXuatNguyenLieu) = SoHDN R1-12: id(ChiTietNguyenLieu) = sttHDN R1-13: id(NguyenLieu) = NguyenLieu RÀNG BUỘC MIỀN GÁI TRỊ: R2-01: (CTDDH.SoDDH>0) and (CTDDH.SLDH>0) and (CTDDH.DG>0) R2-02: (SP.DVT> 0 ) and (SP.DG > 0) R2-03: (DMSX.SLSX > 0) R2-04: (GN.NgGiao < DDH.NgKK) R2-05: (CTNL.SL > 0) R2-06: (NL.DVT > 0) R2-07: (TT.TienTT > 0) RÀNG BUỘC GIỮA CÁC THUỘC TÍNH TRONG THỰC THỂ: R3-0: CNOCK = CNODK + TIENNO - TIENTHU R3-0: SLTonCK = SLTonDK + NHAP - XUAT R3-0: Tiền đặt hàng = CTDDH.SLDH * CTDDH.DG R3-0: Tiền giao nhận = CTGN.SL * CTGN.DG R3-0: Số tiền nợ đầu kì ( CNODK ) của tháng này phải bằng số tiền nợ cuối kì ( CNOCK ) của tháng trước. R3-0: Số lượng tồn đầu kì ( SLTonDK ) của tah1ng này phải bằng số lựơng tồn cuối kì ( SLTonCK ) của tháng trước. PHÂN TÍCH THÀNH PHẦN XỬ LÝ CỦA ỨNG DỤNG: XL1: Cập nhật Nguyên liệu. XL2: Cập nhật phiếu Nhập nguyên liệu. XL3: Cập nhật đơn đặt hàng. XL4: Cập nhật Phiếu giao nhận. XL5: Cập nhật Phiếu thanh tốn XL6: Tính Công nợ Khách hàng. XL7: Tính Tồn Nguyên liệu. MÔ TẢ CÁC XỬ LÝ: _ Tên xử lý : XL1: Chức năng : cập nhật nguyên liệu. Input : MaNL, NL. Output : NL. Qui tắc : NL n được thêm,sữa xố vào NL _Tên xử lý : XL2: Chức năng : Cập nhật phiếu nhập nguyên liệu. Input : SoHDN h, NL n, NXNL, CTNL, NL, KH. Output : NXNL. Qui tắc : Số lượng nhập trong tháng t của NL n bằng tổng số lượng của CTNL trong tháng t có liên quan đến NL n. _Tên xử lý : XL3: Chức năng : Cập nhật Đơn đặt hàng . Input : SDDH, MSP, DDH, CTDDH, KH, SP Output : DDH. Qui tắc : Số lượng Sản phẩm Khách hàng đặt trong tháng t bằng tổng số sản phẩm của CTDDH trong tháng t có liên quan đến sản phẩm đó. _Tên xử lý : XL4: Chức năng : Cập nhật phiếu Giao nhận. Input : SoP p, SoDDH h, GN, CTGN, DDH, CTDDH. Output : GN. Qui tắc : Số lượng giao nhận sản phẩm trong tháng t bằng tổng số lượng giao nhận của CTGN trong tháng t liên quan đến Sản phẩm đó. _Tên xử lý : XL5 Chức năng : Cập nhật phiếu thanh tốn. Input : SoTT, MKH, TTOAN, KH Output : TTOAN. Qui tắc : Số tiền thanh tốn trong tháng t bằng tổng tiền thanh tốn của TTOAN trong tháng t có liên quan đến KH k. _Tên xử lý : XL6: Chức năng : Tính nợ Khách hàng. Input : NgCN, MKH, CNO. Output : CNO. Qui tắc : NOCK = NODK + SONO - THANHTOAN _Tên xử lý : XL7 : Chức năng : Tính tồn Nguyên liệu : Input : NgTON, LN, TON. Output : TON. Qui tắc : TONCK = TONDK + NHAP - XUAT THIẾT KẾ DỮ LIỆU : Sơ đồ Logic dữ liệu: Hình 2: Sơ đồ Logic dữ liệu của ứng dụng ĐƠN HÀNG GIA CÔNG Từ điển dữ liệu: MaKhachHang Mã khách hàng TenKhachHang Ten khách hàng DiaChi Địa chỉ DienThoai Điện thoại SoDonDatHang Số đơn đặt hàng NgayKiKet Ngày kí kết SanPham Sản phẩm TenSanPham Tên sản phẩm DonViTinh Đơn vị tính DonGia Đơn giá SoPhieu Số phiếu NgayGiao Ngày giao NgayCongNo Ngày công nợ TienCongNo Tiền công nợ NguyenLieu Nguyên liệu TenNguyenLieu Tên Nguyên liệu SoThanhToan Số thanh tốn NgayThanhToan Ngày thanh tốn TienThanhToan Tiền thanh tốn SoHoaDonNhap Số hố đơn nhập NgayNhap Ngày nhập SoLuongDatHang Số lượng đặt hàng DonGia Đơn giá HanGiao Hạn giao SoLuong Số lượng SoLuongSanXuat Số lượng sản xuất SoLuongTon Số lượng tồn NgayTon Ngày tồn Mô tả các bảng: 3.1) Khách hàng Thuộc tính: Thuộc tính Kiểu Khóa MaKhachHang Text Chính TenKhachHang Text DiaChi Text DienThoai Text Chỉ mục: Chỉ mục Thuộc tính Thứ tự KHACHHANG_PK MakhachHang ASC 3.2) Công nợ: Thuộc tính: Thuộc tính Kiểu Khóa NgayCongNo Text Chính MaKhachHang Text Ngoại TienCongNo Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự CONGNO_PK NgayCongNo MaKhachHang ASC CONGNO_FK MaKhachHang ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội MaKhachHang KhachHang MaKhachHang 3.3) Đơn đặt hàng Thuộc tính: Thuộc tính Kiểu Khóa SoDonDatHang Text Chính MaKhachHang Text Ngoại NgayKiKet Date() Chỉ mục: Chỉ mục Thuộc tính Thứ tự DONDATHANG_PK SoDonDatHang MaKhachHang ASC DONDATHANG_FK MaKhachHang ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội MaKhachHang KhachHang MaKhachHang 3.4) Chi tiết Đơn đặt hàng Thuộc tính: Thuộc tính Kiểu Khóa SoDonDatHang Text Ngoại SanPham Text Ngoại SoLuongDatHang Number DonGia Number HanGiao Date() Chỉ mục: Chỉ mục Thuộc tính Thứ tự CTDONDATHANG_PK SoDonDatHang SanPham ASC CTDONDATHANG_FK SanPham ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội SoDonDatHang DonDatHang SoDonDatHang SanPham SanPham SanPham Tồn : Thuộc tính: Thuộc tính Kiểu Khóa MaKhachHang Text Ngoại NguyenLieu Text Ngoại SoLuongTon Number NgayTon Date() Chỉ mục: Chỉ mục Thuộc tính Thứ tự TON_PK MaKhachHang NguyenLieu ASC TON_FK NguyenLieu ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội MaKhachHang KhachHang MaKhachHang NguyenLieu NguyenLieu NguyenLieu Sản phẩm : Thuộc tính: Thuộc tính Kiểu Khóa SanPham Text Chính TenSanPham Text DonViTinh Number DonGia Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự SANPHAM_PK SanPham ASC Định mức sản xuất : Thuộc tính: Thuộc tính Kiểu Khóa NguyenLieu Text Ngoại SanPham Text Ngoại SoLuongSanXuat Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự DMSX_PK NguyenLieu SanPham ASC DMSX _FK SanPham ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội NguyenLieu NguyenLieu NguyenLieu SanPham SanPham SanPham Giao Nhận: Thuộc tính: Thuộc tính Kiểu Khóa SoPhieu Text Chính SoDonDatHang Text Ngoại NgayGiao Date() Chỉ mục: Chỉ mục Thuộc tính Thứ tự GIAONHAN_PK SoPhieu SoDonDatHang ASC GIAONHAN_FK SoDonDatHang ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội SoDonDatHang DonDatHang SoDonDatHang Chi tiết Giao Nhận: Thuộc tính: Thuộc tính Kiểu Khóa SoPhieu Text Ngoại SanPham Text Ngoại SoLuong Number DonGia Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự CTGN_PK SoPhieu SanPham ASC CTGN_FK SanPham ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội SoPhieu GiaoNhan SoPhieu SanPham SanPham SanPham Nguyên liệu: Thuộc tính: Thuộc tính Kiểu Khóa NguyenLieu Text Chính TenNguyenLieu Text DonViTinh Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự NGUYENLIEU_PK NguyenLieu ASC Thanh tốn: Thuộc tính: Thuộc tính Kiểu Khóa SoThanhToan Text Chính NgayThanhToan Date() MaKhachHang Text Ngoại TienThanhToan Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự THANHTOAN_PK SoThanhToan MaKhachHang ASC THANHTOAN_FK MaKhachHang ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội MaKhachHang KhachHang MaKhachHang Nhập xuất nguyên liệu : Thuộc tính: Thuộc tính Kiểu Khóa SoHoaDonNhap Text Chính MaKhachHang Text Ngoại NgayNhap Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự NXNL_PK SoHoaDonNhap MaKhachHang ASC NXNL_FK MaKhachHang ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội MaKhachHang KhachHang MaKhachHang Chi tiết nguyên liệu : Thuộc tính: Thuộc tính Kiểu Khóa SoHoaDonNhap Text Ngoại NguyenLieu Text Ngoại SoLuong Number Chỉ mục: Chỉ mục Thuộc tính Thứ tự CTGN_PK SoPhieu SanPham ASC CTGN_FK SanPham ASC Khố ngoại: Khố ngoại Bảng tham chiếu Khố nội SoHoaDonNhap NXNguyenLieu SoPhieu NguyenLieu NguyenLieu SanPham MÔ TẢ CÁC RÀNG BUỘC TỒN VẸN : 4.1) KHÓA CHÍNH : R1-01 : id( CONGNO ) = NgayCN R1-02 : id( KHACHANG ) = MKH R1-03 : id( NGUYENLIEU ) = NL R1-04 : id( DONDATHANG ) = SDDH, MAKH R1-05 : id( CHITIETDONDATHANG ) = SDDH, SP R1-06 : id( SANPHAM ) = SANPHAM R1-07 : id( DINHMUCSANXUAT ) = NL, SP R1-08 : id( GIAONHAN ) = SPhieu, SDDH R1-09 : id( CHITIETGIAONHAN ) = SPhieu, SP R1-10 : id( THANHTOAN ) = SoTT, MKH R1-11 : id( TON ) = MKH, NL R1-12 : id( NHAPXUATNGUYENLIEU ) = SoDDH, MKH R1-13 : id( CHITIETNGUYENLIEU ) = SoHDN, NL 4.2) RÀNG BUỘC VỀ MIỀN GIÁ TRỊ: R2-01 : (CTDDH.SLDH > 0) and (CTDDH.DG > 0) R2-02 : (SP.DG > 0) R2-03 : (DMSX.SLSX > 0) R2-04 : (CNO.TienCNO > 0) R2-05 : (CTGN.SL > 0) and (CTGN.DG > 0) R2-06 : (TToan.TToan > 0) 4.3) KHÓA NGOẠI: R3-01 : CNO[MaKH] KH[MaKH] R3-02 : TTOAN[MaKH] KH[MaKH] R3-03 : TON[MaKH] KH[MaKH] R3-04 : DDHANG[MaKH] KH[MaKH] R3-05 : NXNL[MaKH] KH[MaKH] R3-06 : GNHAN[SoDDH] DDH[SoDDH] R3-07 : CTDDH[SoDDH] DDH[SoDDH] R3-08 : CTDDH[MaSP] SPHAM[MaSP] R3-09 : CTGN[MaSP] SPHAM[MaSP] R3-10 : DMSX[MaSP] SPHAM[MaSP] R3-11 : GN[SoPhieu] CTGN[SoPhieu] R3-12 : DMSX[MaNL] NLIEU[MaNL] R3-13 : TON[MaNL] NLIEU[MaNL] R3-14 : CTNL[MaNL] NLIEU[MaNL] R3-15 : CTNL[SoHDN] NXNL[SoHDN] THIẾT KẾ ỨNG DỤNG (Các màn hình): Màn hình chính: H1ình 3: Màn hình chính của ứng dụng. Danh Mục: Menu Đặt hàng Khách hàng đặt đơn hàng mới. Menu Giao nhận Giao hàng cho Khách hàng. Menu Nhập xuất Nguyên liệu Nhập nguyên liệu từ khách hàng. Màn hình Đặt hàng: Hình 4: Màn hình Đơn đặt hàng mới . Source code lấy Mã KH lên combobox: Dim sqlMKH As String sqlMKH = "Select MaKhachHang from KhachHang order by MaKhachHang asc" Set rsMKH = New ADODB.Recordset rsMKH.Open sqlMKH, Conn, adOpenKeyset, adLockOptimistic Set cboMKH.DataSourceList = rsMKH cboMKH.DataFieldList = "MaKhachHang" cboMKH.Columns(0).Width = 1250 Source code lấy dữ liệu lên lưới : Dim strSQL As String Dim Cnn As New ADODB.Connection strSQL = "SELECT ChiTietDonDatHang.SanPham, SanPham.TenSanPham, SanPham.DonViTinh, ChiTietDonDatHang.SoLuongDatHang, ChiTietDonDatHang.DonGia" strSQL = strSQL & " FROM SanPham, DonDatHang, ChiTietDonDatHang WHERE DonDatHang.SoDonDatHang = ChiTietDonDatHang.SoDonDatHang AND SanPham.SanPham = ChiTietDonDatHang.SanPham" Set Rst = New ADODB.Recordset Rst.CursorLocation = adUseClient Cnn.Open SQLConn ' KHÔNG DÙNG BIẾN Conn Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic SSODatHang.Columns(0).DataField = "sanpham" SSODatHang.Columns(1).DataField = "Tensanpham" SSODatHang.Columns(2).DataField = "donvitinh" SSODatHang.Columns(3).DataField = "soluongDatHang" SSODatHang.Columns(4).DataField = "dongia" Set SSODatHang.DataSource = Nothing Set SSODatHang.DataSource = Rst : Nút Mới để thêm Đơn đặt hàng mới, khi nhấn nút Mới thì số DDH sẽ tự tăng, ta có thể chọn Khách hàng cũ ở textbox MaKhachHang hoặc điền thông tin mới nếu là Khách hàng mới. Source code khi nhấn nút mới số DDH sẽ tự tăng: Private Sub cmdmoi_Click() txtSDDH.SetFocus Dim SQLddh As String SQLddh = "select sodondathang from dondathang " Set rsDDH = New ADODB.Recordset rsDDH.CursorLocation = adUseClient rsDDH.Open SQLddh, Conn, 0, 3 SDDH = Mid(Trim(txtSDDH.Text), 2, 2) txtSDDH.Text = SDDH & "DDH" & rsDDH.RecordCount + 1 End Sub : Khi nhấn nút lưu thì sẽ gọi màn hình Đặt hàng mới để nhập thêm thông tin của sản phẩm mới: : Lưu dữ liệu mới xuống cơ sở dữ liệu. Source code Lưu dữ liệu: Private Sub cmdLuu_Click() Dim Rs As New ADODB.Recordset Dim rs1 As New ADODB.Recordset Dim SQL2 As String Dim SQL3 As String Dim SQL4 As String Dim SQL5 As String Dim SQL6 As String Dim SQL7 As String If Trim(frm1DatHang.txtSDDH) = "" Or Trim(Trim(frm1DatHang.cboMKH)) = "" Or Trim(cboSP) = "" Then MsgBox " Xin nhap dau du thong tin truoc khi luu ", vbOKOnly + vbExclamation, "THONG BAO" Me.MousePointer = 0 End If SQL2 = " insert into KHACHHANG values('" & Trim(frm1DatHang.cboMKH) & "','" & Trim(frm1DatHang.txtTKH) & "','" & Trim(frm1DatHang.txtDiachi) & "','" & Trim(frm1DatHang.txtDienthoai) & "')" SQL3 = " insert into DONDATHANG values(' " & Trim(frm1DatHang.txtSDDH) & " ',' " & Trim(frm1DatHang.cboMKH) & " ',' " & Trim(frm1DatHang.txtNgayKK) & " ')" SQL4 = " insert into CHITIETDONDATHANG values(' " & Trim(frm1DatHang.txtSDDH) & " ',' " & Trim(cboSP) & " ',' " & Trim(txtSl) & " ',' " & Trim(txtDG) & " ',' " & Trim(frm1DatHang.txtHanGiao) & " ') " Conn.Execute SQL2 Conn.Execute SQL3 Conn.Execute SQL4 SQL5 = " update DONDATHANG set MAKHCHHANG='" & Trim(frm1DatHang.cboMKH) & "', TENKHACHHANG='" & Trim(frm1DatHang.txtTKH) & "', NGAYKIKET='" & Trim(frm1DatHang.txtNgayKK) & "',HANGIAO='" & Trim(frm1DatHang.txtHanGiao) & "' WHERE SODONDATHANG='" & Trim(frm1DatHang.txtSDDH) & "'" SQL6 = " update KHACHHANG set MAKHACHHANG='" & Trim(frm1DatHang.cboMKH) & "',TENKHACHHANG='" & Trim(frm1DatHang.txtTKH) & ",DIACHI='" & Trim(frm1DatHang.txtDiachi) & "',DIENTHOAI='" & Trim(frm1DatHang.txtDienthoai) & "'" SQL7 = " update CHITIETDONDATHANG set SODONDATHANG='" & Trim(frm1DatHang.txtSDDH) & "',SANPHAM='" & Trim(cboSP) & "',SOLUONGDATHANG='" & Trim(txtSl) & "',DONGIA='" & Trim(txtDG) & "',HANGIAO='" & Trim(frm1DatHang.txtHanGiao) & "'" Conn.Execute SQL5 Conn.Execute SQL6 Conn.Execute SQL7 End Sub : Thốt cửa sổ đơn đặt hàng. Màn hình Giao Nhận: Hình 5: Màn hình giao nhận sản phẩm cho khách hàng. Source code lấy dữ liệu lên cbo số phiếu: Dim sql As String sql = "select sophieu from giaoNhan " Set rsSoP = New ADODB.Recordset rsSoP.Open sql, Conn, adOpenKeyset, adLockOptimistic Set cboSoPhieu.DataSourceList = rsSoP cboSoPhieu.DataFieldList = "SoPhieu" cboSoPhieu.Columns(0).Width = 1200 Source code lấy dữ liệu lên cbo số ĐĐH : 1 Dim sql1 As String sql1 = "select sodondathang from do