Menu Khách hàng: Hiển thị Khách hàng và nhập Khách hàng mới.
Menu Nguyên liệu: Hiển thị danh sách nguyên kiệu và Nhập nguyên liệu mới.
Menu Sản phẩm: Hiển thị danh sách sản phẩm và nhập sản phẩm mới
Menu Định mức sản xuất: Hiển thị danh sách định mức sản xuất và nhập định mức sản xuất cho sản phẩm mới.
41 trang |
Chia sẻ: maiphuongdc | Lượt xem: 1545 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Đề tài Đơ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
atNguyenLieu
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 dondathang"
Set rsSoDDH = New ADODB.Recordset
rsSoDDH.Open sql1, Conn, adOpenKeyset, adLockOptimistic
Set cboSoDDH.DataSourceList = rsSoDDH
cboSoDDH.DataFieldList = "SoDonDathang"
cboSoDDH.Columns(0).Width = 1230
Source code lấy dữ liệu lên lưới:
Dim strSQL As String
Dim Cnn As New ADODB.Connection
strSQL = "select * from SanPham"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
'Conn.Open SQLConn
Cnn.Open SQLConn ' KHÔNG DÙNG BIẾN Conn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSOGiaoNhan.Columns(0).DataField = "sanpham"
SSOGiaoNhan.Columns(1).DataField = "Tensanpham"
SSOGiaoNhan.Columns(2).DataField = ""
SSOGiaoNhan.Columns(3).DataField = ""
Set SSOGiaoNhan.DataSource = Nothing
Set SSOGiaoNhan.DataSource = Rst
: Khi nhấn nút Mới thì cboSP, cboDDh, txtNgay nhận focus, dữ liệu của cột SL và DG sẽ được nhập 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 Str As String
Dim Str1 As String
Dim Str2 As String
Dim Str3 As String
If Trim(cboSoPhieu) = "" Or Trim(cboSoDDH) = "" Then
MsgBox " Xin nhap soPHIEU va soDDH truoc khi luu ", vbOKOnly + vbExclamation, "THONG BAO"
Me.MousePointer = 0
End If
Str = " insert into GIAONHAN values('" & Trim(cboSoPhieu) & "','" & Trim(cboSoDDH) & "','" & Trim(txtNgay) & "')"
Conn.Execute Str
Str1 = " update GIAONHAN set SOPHIEU='" & Trim(cboSoPhieu) & "',SODONDATHANG='" & Trim(cboSoDDH) & "',NGAYGIAO='" & Trim(txtNgay) & "'"
Conn.Execute Str1
Str2 = " insert into CHITIETGIAONHAN values('" & Trim(cboSoPhieu) & "','" & Trim(SSOGiaoNhan.Columns(0).Text) & "','" & Trim(SSOGiaoNhan.Columns(2).Text) & "','" & Trim(SSOGiaoNhan.Columns(3).Text) & "' )
Conn.Execute Str2
Str3 = " update CHITIETGIAONHAN set SOPHIEU='" & Trim(cboSoPhieu) & "', SANPHAM='" & Trim(SSOGiaoNhan.Columns(0).Text) & "', SOLUONG='" & Trim(SSOGiaoNhan.Columns(2).Text) & "',DONGIA='" & Trim(SSOGiaoNhan.Columns(3).Text) & "' "
Conn.Execute Str3
End Sub
: thốt cửa sổ Giao nhận.
Màn hình Nhập xuất Nguyên liệu:
Hình 6: Màn hình nhập xuất nguyên liệu.
Source code lấy dữ liệu lên cbo MAKH:
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 * from NGUYENLIEU"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Cnn.Open SQLConn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSONXNL.Columns(0).DataField = "nguyenLieu"
SSONXNL.Columns(1).DataField = "tennguyenlieu"
SSONXNL.Columns(2).DataField = ""
SSONXNL.Columns(3).DataField = ""
Set SSONXNL.DataSource = Nothing
Set SSONXNL.DataSource = Rst
: Khi nhấn nút Mới để nhập Nguyên liệu mới thì các textbox và combobox nhận focus.
: Lưu dữ liệu mới xuống cơ sở dữ liệu.
: Thốt màn hình Nhập xuất nguyên liệu.
Tra cứu :
Menu Khách hàng: Hiển thị Khách hàng và nhập Khách hàng mới.
Menu Nguyên liệu: Hiển thị danh sách nguyên kiệu và Nhập nguyên liệu mới.
Menu Sản phẩm: Hiển thị danh sách sản phẩm và nhập sản phẩm mới
Menu Định mức sản xuất: Hiển thị danh sách định mức sản xuất và nhập định mức sản xuất cho sản phẩm mới.
Màn hình Khách hàng :
Hình 7: Màn hình tra cứu, nhập mới khách hàng.
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 * FROM khachhang"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Cnn.Open SQLConn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSOkh.Columns(0).DataField = "makhachhang"
SSOkh.Columns(1).DataField = "tenkhachhang"
SSOkh.Columns(2).DataField = "diachi"
SSOkh.Columns(3).DataField = "dienthoai"
Set SSOkh.DataSource = Nothing
Set SSOkh.DataSource = Rst
: Khi nhấn nút mới thì các textbox và combobox nhận focus để nhập thông tin khách hàng mới.
: Lưu dữ liệu mới xuống Cơ sở dữ liệu.
Source code :
Private Sub cmdLuu_Click()
Dim Str As String
Dim Str1 As String
If Trim(cboKH.Text) = "" Or Trim(txtTKH.Text) = "" Then
MsgBox " Nhap MaKH va TenKH truoc khi luu ", vbOKOnly + vbExclamation, "WARNING"
Exit Sub
End If
Str = "Insert Into KHACHHANG values('" & Trim(cboKH) & "','" & Trim(txtTKH) & "','" & Trim(txtDC) & "','" & Trim(txtDT) & "' ) "
Conn.Execute Str
Str1 = "update KHACHHANG set maKhachhang='" & Trim(cboKH) & "', TenKhachHang='" & Trim(txtTKH) & "', DiaChi='" & Trim(txtDC) & "', DienThoai='" & Trim(txtDT) & "' WHERE MaKhachHang='" & Trim(cboKH) & "' "
Conn.Execute Str1
SSOkh.Update
MsgBox "Da luu Khach Hang '" & Trim(cboKH) & "'' vao CSDL", vbOKOnly + vbExclamation, "WARNING"
CmdLuu.Enabled = False
cmdmoi.Enabled = True
End Sub
: Thốt màn hình Khách hàng.
Màn hình Nguyên Liệu :
Hình 8: Màn hình tra cứu, nhập nguyên liệu.
Source code lấy dữ liệu lên lưới:
Dim strSQL As String
Dim Cnn As New ADODB.Connection
strSQL = "select * FROM NguyenLieu"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Cnn.Open SQLConn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSONL.Columns(0).DataField = "NGUYENLIEU"
SSONL.Columns(1).DataField = "tennguyenlieu"
SSONL.Columns(2).DataField = "donvitinh"
Set SSONL.DataSource = Nothing
Set SSONL.DataSource = Rst
: Khi nhấn nút mới thì các textbox nhận focus nhập thông tin nguyên liệu mới.
: Lưu dữ liệu mới xuống Cơ sở dữ liệu.
: Thốt màn hình Nguyên liệu.
Màn hình Sản phẩm :
Hình 9: Màn hình tra cứu, nhập sản phẩm.
Source code lấy dữ liệu lên lưới:
Dim strSQL As String
Dim Cnn As New ADODB.Connection
strSQL = "select * FROM sanpham"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
'Conn.Open SQLConn
Cnn.Open SQLConn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSOSP.Columns(0).DataField = "sanpham"
SSOSP.Columns(1).DataField = "tensanpham"
SSOSP.Columns(2).DataField = "donvitinh"
SSOSP.Columns(3).DataField = "dongia"
Set SSOSP.DataSource = Nothing
Set SSOSP.DataSource = Rst
: Khi nhấn nút mới thì các textbox nhận focus nhập thông tin sản phẩm mới.
: Lưu dữ liệu mới xuống Cơ sở dữ liệu.
Source code Lưu:
Private Sub cmdLuu_Click()
Dim Str As String
Dim Str1 As String
If Trim(txtSP) = "" Or Trim(txtTSP) = "" Then
MsgBox "Phai nhap MaSP & TenSP truoc khi luu ", vbOKOnly + vbExclamation, "WARNING"
Exit Sub
End If
Str = "insert into SANPHAM values('" & Trim(txtSP) & "','" & Trim(txtTSP) & "','" & Trim(txtDVT) & "','" & Trim(txtDG) & "')"
Conn.Execute Str
Str1 = "update SANPHAM Set sanpham='" & Trim(txtSP) & "',tensanpham='" & Trim(txtTSP) & "',donvitinh='" & Trim(txtDVT) & "',dongia='" & Trim(txtDG) & "' "
Conn.Execute Str1
SSOSP.Update
MsgBox "Da Luu San Pham '" & Trim(txtSP) & "'' Vao CSDL", vbOKOnly + vbExclamation, "WARNING"
CmdLuu.Enabled = False
End Sub
: Thốt màn hình sản phẩm.
Màn hình Định mức sản xuất :
Source code lấy dữ liệu lên lưới:
Dim strSQL As String
Dim Cnn As New ADODB.Connection
strSQL = "select * from DinhMucSanXuat"
Set Rst = New ADODB.Recordset
Rst.CursorLocation = adUseClient
Cnn.Open SQLConn
Rst.Open strSQL, Conn, adOpenKeyset, adLockOptimistic
SSODMSX.Columns(0).DataField = "nguyenLieu"
SSODMSX.Columns(1).DataField = "sanpham"
SSODMSX.Columns(2).DataField = "soluongsanxuat"
Set SSODMSX.DataSource = Nothing
Set SSODMSX.DataSource = Rst
: Khi nhấn nút mới thì các textbox nhận focus nhập thông tin mới.
: Lưu dữ liệu mới xuống Cơ sở dữ liệu.
: Thốt màn hình định mức sản xuất.
Tính tốn:
Menu Công nợ: Báo cáo công nợ.
Menu Tồn : Báo cáo tồn nguyên liệu.
Menu Thanh Tốn: Hiển thị tiền thanh tốn của khách hàng với công ty.
Màn hình công nợ:
: Khi nhấn nút mới thì các textbox nhận focus nhập thông tin phiếu Công nợ mới.
: Lưu dữ liệu mới xuống Cơ sở dữ liệu.
: Thốt màn hình Tồn Nguyên Liệu.
Code xử lý tính công nợ:
Q1:
SELECT max(ngaycongNo) AS NgDK
FROM CongNo;
Q2:
SELECT MaKhachHang,TienCongNo As DAU, 0 As SONO , 0 As TTOAN from Q1, CongNo Where NgayCongNo = NgDK
UNION Se