Đồ án Chương trình quản lý xuất nhập cho kho hàng

Đồ án Acess Đề tài 1 : Chương trình quản lý xuất nhập cho kho hàng . Nội dung chính : Xây dựng cơ sở dững liệuTạo phàn nhập, xuất, xử lý thông tin kho hàngLập truy vấn Query và các báo biểu ReportTạo Menu và Form chínhĐĩa CD chứa chương trình Mục lục Giới thiệu chung.Dữ liệu chương trình. Thông tin chi tiết các bảng (Table) .Relationship ( Mối quan hệ của dữ liệu ). Xây dựng chương trình. Cấu trúc chương trình: Nhập hàng Thông tin dữ liệu nhập.Các Form và Query chính của phần nhập hàngXuất hàng Thông tin dữ liệu xuất. Các Form và Query của phần xuất hàng Hướng dẫn sử dụng chương trình.Kết Luận Nội Dung chi tiết. GIỚI THIỆU CHƯƠNG TRÌNH. Chương trình được xây dựng dựa trên dữ liệu được điều tra của một công ty điên máy. Nhằm quản lý thông tin xuất nhập DỮ LIỆU CHƯƠNG TRÌNH Dữ liệu của chương trình được xây dựng dựa trên 11 bảng (Table) bao gồm 1_Hang_hoa : Bảng chứa thông tin về mã hàng hóa va mã nhóm của hàng hóa + Mã hàng được quy định bằng kiểu Text trong do hai ki tự đầu là hai kí tự viết tắt của nhóm hàng và là mã chính (Primary key ) của bảng hàng hóa . VD : Với nhóm hàng điện tử - âm thanh mã hàng : DA0001, DA0002 .v.v.v + Mã nhóm hàng được quy định như sau : NH_____ trong do 4 ki tự sau là số của nhóm hàng VD Nhóm hàng 0001 :Điện tử -Âm thanh có mã nhóm hàng : NH0001

docx45 trang | Chia sẻ: lvcdongnoi | Lượt xem: 3365 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Chương trình quản lý xuất nhập cho kho hàng, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Đồ án Acess Đề tài 1 : Chương trình quản lý xuất nhập cho kho hàng . Nội dung chính : Xây dựng cơ sở dững liệu Tạo phàn nhập, xuất, xử lý thông tin kho hàng Lập truy vấn Query và các báo biểu Report Tạo Menu và Form chính Đĩa CD chứa chương trình Mục lục Giới thiệu chung. Dữ liệu chương trình. Thông tin chi tiết các bảng (Table) . Relationship ( Mối quan hệ của dữ liệu ). Xây dựng chương trình. Cấu trúc chương trình: Nhập hàng Thông tin dữ liệu nhập. Các Form và Query chính của phần nhập hàng Xuất hàng Thông tin dữ liệu xuất. Các Form và Query của phần xuất hàng Hướng dẫn sử dụng chương trình. Kết Luận Nội Dung chi tiết. GIỚI THIỆU CHƯƠNG TRÌNH. Chương trình được xây dựng dựa trên dữ liệu được điều tra của một công ty điên máy. Nhằm quản lý thông tin xuất nhập DỮ LIỆU CHƯƠNG TRÌNH Dữ liệu của chương trình được xây dựng dựa trên 11 bảng (Table) bao gồm 1_Hang_hoa : Bảng chứa thông tin về mã hàng hóa va mã nhóm của hàng hóa + Mã hàng được quy định bằng kiểu Text trong do hai ki tự đầu là hai kí tự viết tắt của nhóm hàng và là mã chính (Primary key ) của bảng hàng hóa . VD : Với nhóm hàng điện tử - âm thanh mã hàng : DA0001, DA0002 .v.v.v + Mã nhóm hàng được quy định như sau : NH_____ trong do 4 ki tự sau là số của nhóm hàng VD Nhóm hàng 0001 :Điện tử -Âm thanh có mã nhóm hàng : NH0001 2_Nhap_hang : (Nhập hàng ) Thông tin về MÃ NHẬP HÀNG ,MÃ KHO HÀNG, GHI CHÚ + Mã phiếu nhập hàng được đặt làm khóa chính (Primary key ) và kiểu dữ liệu là kiểu Text và co 4 kí tự. + Mã kho hàng và ghi chú co kieu dữ liệu Text 3_Xuat_kho : (Xuat kho) Thông tin về mã xuất kho mã kho xuất hàng và ghi chú khi xuất. + Mã phiếu xuất được đặt làm khóa chính của bảng xuất kho. Kiểu dữ liệu của trường Mã phiếu xuất là kiểu text . VD : 00001, 00002 ….. + Mã kho và ghi chú có kiểu dữ liệu text. Mã kho được quy định giống với mã kho trong table kho hàng. Và được lấy dự liệu từ bảng 5_Kho_hang sẽ được nói rõ ở phần dưới 4_Nha_cung_cap : (Nhà cung cấp) Bảng này bao gồm thông tin chi tiết nhà cung cấp sản phẩm cho công ty bao gồm : + Manhacungcap: là khóa chính cua bảng có kiểu dữ liệu Text có giới hạn kí tự la 50 kí tự. + Tên nhà cung cấp có kiểu dữ liệu Text co số kí tự giới hạn là 100 kí tự. + Website la địa chỉ website của nhà cung cấp sản phẩm, dữ liệu ở dạng Hyperlink. + Phone : số điện thoại liên lạc với nhà cung cấp có kiểu dữ liệu là Number + Số Fax của nhà cung cấp có kiểu dữ liệu Number. + Dia_chi : Địa chỉ nhà cung cấp 5_Kho_hang : (Kho hàng) thông tin chi tiết về các kho hàng của công ti cũng chính là địa chỉ các chi nhánh hiện có của công ty. Thông tin bảng gồm có : + Makho: Mã kho hàng là khóa chính (Primary key) cua table. Có kiểu dữ liệu Text thường là các kí tự số gồm 4 kí tự đã quy định o phần Input Mask. + Ten_kho: Tên kho hàng, có kiểu dữ liệu Text số kí tự giới hạn 100 kí tự. + Dia_chi : Thông tin về địa điểm chi nhánh của công ty cung chính la đại chỉ kho hàng cua công ty. Số kí tự giới hạn là 250 kí tự. 6_Chi_tiet_san_pham: (Chi tiết về sản phẩm) Thông tin chi tiết về từng sản phẩm trong kho hàng bao gồm : + Mahang: Mã hàng hóa được đặt làm khóa chính của Table , kiểu dữ liệu của Mahang a kiểu Text được giới hạn bằng 50 kí tự. và được lấy dữ liệu (Look up) từ bảng 1_Hang_hoa + Ten_hang: tên mặt hàng được quy định là kiểu dữ liệu Text, được giới hạn bằng 100 kí tự. + Mo_ta_san_pham : (Mô tả sản phẩm) Phần này để mô tả chung về đặc điểm của hàng hóa trong kho. Dữ liệu là kiểu Text co số kí tự giới hạn là 250 kí tự. + Manhacungcap : (Mã nhà cung cấp) được lấy dữ liệu từ bảng 4_Nha_cung_cap. 7_Chi_tiet_phieu_nhap: (Chi tiết phiếu nhập) Thông tin chi tiết về hàng hóa được nhập vào kho hàng. Thông tin của bảng nhập hàng gồm : + Mã hàng : được đặt làm khóa chính (Primary key) và có kiểu dữ liệu Text với số kí tự giới hạn la 50 kí tự. Khi muốn nhập hàng thì hàng hóa bắt buộc phải khai báo chi tiết trong kho hàng bởi vậy mà thông tin mã hàng đươc lấy (Look up) từ bảng 6_Chi_tiet_san_pham . + MPN : Mã phiếu nhập được sử dụng kiểu dữ liệu Text với chiều dài kí tự là 50. + So_luong_nhap : Số lượng nhập có kiểu dữ liệu Number để phục vụ cho việc tính toán sau này. + Ngay_nhap : Ngày nhập ( Ngày ghi phiếu nhập ) có kiểu dữ liệu Date/time + Ten_nguoi_nhap : Tên người nhập hàng có kieur dữ liệu Text giới hạng bởi 50 kí tự + Don_gia: Giá của sản phẩm có kiểu dữ diệu Number để tiện cho viêc tính toán sau này Để đảm bảo thông tin không bị trùng lặp trong khi ghi phiếu nhập ta thêm trường STT trong Table có kiểu dữ liệu Auto Number và đặt các trường STT ,Mahang làm khóa chính ở đây đặt cả 4 trường STT, Mahang, MPN, Ngay_nhap lam khóa chính để dễ dàng trong việc thiết kế Relationship sau nay. 8_Chi_tiet_phieu_xuat : (Chi Tiết phiếu xuất) thông tin xuất hàng hóa ra khỏi kho hàng, do thông tin mang tính đối xứng lên chi tiết phiếu xuất truong tự như chi tiết phiếu nhập trong đo + MPX (mã phiếu xuất) có kiểu Text giới hạn bàng 50 kí tự. + Ngay_xuat : ngay ghi phiếu xuất + MHD : ( Mã hóa đơn ) trướn khi xuất hàng ta cần tạo hóa đơn tại bảng 9 . MHD được lấy dữ liệu (Look up ) từ Table 9_Hoa_don + Gia_ban : Có kiểu dữ liệu Number. 9_Hoa_don : (Hóa đơn) Thông tin chi tiết về hóa đơn xuất hàng . Thông tin gồm : + MHD : Mã hóa đơn mã hóa đơn có kiểu Text được quy dịnh chi tiết trong phần Input Mask : 0000 + Ten_nguoi_lap : Tên người nhập hóa đơn có kiểu dữ liệu Text được giới hạn bàng 50 kí tự. Hangtrongkho :(Hàng trong kho) thông tin hàng hóa trong kho. Thông tin của bảng được lấy từ thông tin nhâp hàng (bao gốm Mã hàng hóa nhập tên hàng, tên nhóm hàng , số lượng nhập, kho hàng chứa sản phẩm địa chỉ của kho, tên nhà cung cấp … vv) và hàng hóa lấy từ xuất hàng : nguyên tắc lấy dữ liệu là số lượng hàng nhập mang dấu + (Nhập thêm vào ) , còn sản phẩm xuất kho co số lượng – (bớt hàng) + Tất cả thông tin nhập xuất đều có trong bảng. Nó là nơi lưu dữ toàn bộ dữ liệu ban đầu chưa xử lý của kho. Dữ liệu được Update bàng query Append từ thông tin hàng nhập kho. + Hai bảng Hangtrongkho và Hangtrongkho2 là hai bảng hoàn toàn độc lâp được tạo nhằm xử lý thông tin kho hàng một cách chính xác. RelationShip : (mối quan hệ) XÂY DƯNG CHƯƠNG TRÌNH. Nhập hàng: Thông tin dữ liệu nhập. Thông tin hàng hóa nhập kho được lấy từ các bảng 6_Chi tiết sản phẩm, 4_chi tiết nhà cung cấp, 1_Hang_hoa, 10_Nhomhang, 5_Kho_hang, 2_Nhap_hang, 7_Chi_tiet_phieu_nhap. Quy tắc nhập hàng. Trước khi nhập hàng vào kho hàng hóa phải được khai báo đầy đủ thông tin. Thông tin này được lưu trong các Table sẽ được nói chi tiết trong phần này còn cách thức nhập dữ liệu được xây dựng trên Form được nói chi tiết ở phần sau. + Thông tin về nhà cung cấp: Thông tin nhà cung cấp sản phẩm được thể hiện đầy đủ trong 4_Chi_tiet_nha_cung_cap (Table) Với những sản phẩm do nhà cung cấp mới cung cấp ta cần điền đầy đủ thông tin nhà cung cấp trong Table 4_Chi_tiet_nha_cung_cap để thêm nhà cung cấp mới. + Thông tin chi tiết của sản phẩm được thể hiện trong bảng 6_Chi_tiet_san_pham. Trước khi nhập hàng, hàng hóa cần được điền đầy đủ thông tin trong table này , thông tin hàng hóa trong bảng này sẽ là dữ liệu để bạn ghi phiếu nhập hàng. + Khai báo đầy đủ thông tin về nhóm hàng sẽ nhập trong 1_Hang_hoa (Table) Nếu đó là nhóm hàng mới thi trước khi gán nhóm hàng trong table 1_Hang_hoa ta cần phải tạo nhóm hàng mới đó trong Table 10_nhom_hang. 10_Nhom_hang la chi tiết về nhóm hàng cần nhập + Khai báo thông tin nhập hàng thông tin nhập hàng bao gồm tên kho và địa chỉ kho (các chi nhánh của công ty) và những ghi chú chung của người nhập hàng. Thông tin kho hàng được khai báo đầy đủ thông tin trong bảng 5_kho_hang . nếu thêm kho bạn cần điền đầy đủ thông tin trong table 5_kho_hang truoc khi khai báo trong table 3_Nhap_hang + Thông tin chi tiết nhập hàng sẽ được ghi trong table 7_Chi_tiet_phieu_nhap nội dung của Table chủ yếu được Look up từ các bảng chi tiết mà ta đã khai báo o trước. Việc khai báo trong Table 7_Chi_tiet_phieu_nhap là bước quyết định hàng hóa nào được nhập kho , thông tin về ngày tháng nhập số lượng .v.v.v Form chính của chương trình . Cấu trúc Form chính: Định dạng của Form Single forms Caption : Chuong trinh nhap cuat hang cua cong ti dien may –SV Pham Minh Tien Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Form chính được chia làm hai phần chính bao gồm phần bên trái là thông tin sản phẩm trong kho hàng, tại đây bạn có thể thấy đầy đủ thông tin về các sản phẩm hiện có trong kho, các sản phẩm được chia theo nhóm sản phẩm mỗi nhóm sản phẩm là 1 trang của Tab control: Nhóm 1 : các mặt hàng điện tử - âm thanh Như các loại ti vi loa đài … Nhóm 2: Các mặt hàng điện lạnh Tủ lạnh , điều hòa … Nhóm 3 : Các mặt hàng gia dụng Bàn ghế cao cấp, giường tủ …. Nhóm 4 : Các mặt hàng Laptop Nhóm 5 : Các mặt hàng về máy tính để bàn. Nhóm 6 : Các mặt hàng thiết bị văn phòng Máy Photocopy, máy in, máy fax … Nhóm 7 : Điện thoại Nhóm 8: Thiết bị kĩ thuật số. Máy quay, máy ảnh … Hỗ trợ: Thông tin về chương trình và thông tin hỗ trợ Mỗi trang Tab control được thiết kế như sau Trên tab control được đạt một form conđược đặt ở định dạng Continuous Forms và dữ liệu của form được lấy từ query, query nay cho ta thông tin chi tiết về sản phẩm trong nhóm hàng đó VD voi nhóm hàng 1: Query 1_thong_tin_hang_dien_tu_am_thanh Bạn chú ý tại phần Criteria trong cột Ten_nhom_hang bang điền điều kiện là tên nhóm hàng mà bạn cần hiển thị tại tab đó. Với các tab kế tiếp bạn làm tương tự. Các phím chức năng chính của chương trình nằm bên cạnh phía bên phải. Nhập hàng vào kho Gọi form nhập hàng vào kho. Nút được lập trình bằng macro Open_form_nhap_hang Form nhập hàng vào kho sẽ được nói chi tiết trong phần nhập hàng vào kho. Xuất hàng Gọi Form xuất hàng bằng macro Mo_F_Xuatkho Form xuất hàng khỏi kho sẽ được nói chi tiết trong mục xuất hàng Kho hàng Gọi Form Nhap kho hang bằng Macro quanlykhohang: Thông tin khách hàng Mở Form thông tin khách hàng bằng Macro Mo_form_thong_tin_khach_hang Form thông tin khách hàng được nói chi tiết trong phần nhập hàng, mục thông tin Form và query. Thông kê kho hàng Mở form Chuyển kho bằng Macro mo_F_chuyenkho Form thống kê theo kho. Thông tin sản phẩm trong kho sẽ được thống kê chi tiết trong Form này Tạo nhóm hàng Mở form Tạo nhóm hàng bằng macro như bên Form Tạo mã hàng và thêm nhóm hàng được thể hiện chi tiết ở bên dưới trong mục chi tiết các Form và Query. Update Lại giá Udate lại giá khi giá sản phẩm thay đổi những mặt hàng trong kho cần được các mặt hàng trong kho cần được update lại. Gọi Form update bằng macro như bên. Form Update lại giá Tại đây bạn có thể sửa lại giá của sản phẩm bằng chức năng update giá. + Chức năng update giá được thực hiện thông qua một query Update giá: Private Sub Command14_Click() On Error GoTo Err_Command14_Click Dim stDocName As String stDocName = "Updatelaigia" ‘ Gán tên Query update giá DoCmd.OpenQuery stDocName, acNormal, acEdit Me.List1.Requery Me.Requery Exit_Command14_Click: Exit Sub Err_Command14_Click: MsgBox Err.Description Resume Exit_Command14_Click End Sub Báo giá Thông tin về giá cả các sản phẩm trong kho hàng, được thể hiện trong Form báo giá. Form báo giá: Print. Help Close Thu nhỏ Thoát khỏi chương trình. Các Form và Query chính của phần nhập hàng Form NHAPHANGVAOKHO. Định dạng form Caption : Nhập hàng vào kho Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Form NHAPHANGVAOKHO là form chính để nhập hàng vào kho nó bao gồm đầy đủ thông tin hàng hóa cần nhập. + Thông tin chi tiết phiếu nhập: Tại khu vực thông tin chi tiết phiếu nhập nó thể hiện đầy đủ thông tin về các sản phẩm sẽ nhập vào kho sau khi bạn Update . + Thông tin kho hàng : Thể hiện thông tin về hàng hóa trong kho hiện có của kho hàng + Thông tin chi tiết về sản phẩm + Thông tin nhà cung cấp Thiết kế Form: Form gồm các nút chức năng : Ghi phiếu hàng Code: On Error GoTo Err_Command174_Click DoCmd.GoToRecord , , acNewRec Call LUU ‘ LUU là một Module với chức năng lưu thông tin của table khi gọi (Call) Me.List134.Requery Me.Requery DoCmd.GoToRecord , , acNewRec Exit_Command174_Click: Exit Sub Err_Command174_Click: MsgBox Err.Description Resume Exit_Command174_Click Sau khi click button hàng hóa vừa nhập sẽ được cập nhật vào phiếu nhập hàng bạn có thể thấy trên thông tin phiếu nhập hàng bên dưới. In hóa đơn Chức năng của nút là gọi Form thông tin hóa đơn để in hóa đơn. Nó được thực hiện nhờ Macro Xóa mặt hàng trong phiếu hàng Code : Private Sub Command175_Click() DoCmd.OpenQuery "Xoahangtrongchitietnhaphang", acViewNormal, acEdit Me.List134.Requery Me.Requery End Sub Quy định nhóm hàng Mở form Tạo mã hàng và gắn nhóm hàng. Được lập trình bằng macro: Phiếu nhập Mở Form phiếu nhập . Được lập trình bằng Macro: Nhập chi tiết hàng hóa Mở Form chi tiết hàng hóa bằng Macro: Nhập chi tiết nhà cung cấp Mở form chi tiết nhà cung cấp: Update Cập nhật hàng hóa trong phiếu nhập vào kho hang Code: Private Sub Command203_Click() On Error GoTo Err_Command203_Click Dim stDocName As String ‘ Gọi Query Append khohang để lấy thông tin hàng nhập khò vào trong kho hàng. stDocName = "Appendkhohang" DoCmd.OpenQuery stDocName, acNormal, acEdit Dim stDocName3 As String ‘ Gọi query Make table để tạo ra bảng thông tin hàng hóa sau khi nhập nhằm cập nhật lại hàng hóa trong kho. stDocName3 = "Updatelaikhohang2saukhinhaphang" DoCmd.OpenQuery stDocName3, acNormal, acEdit Me.List207.Requery Me.Requery ‘ Cập nhật thông tin trong kho lên list thông tin kho hàng ở Form nhập hàng vào kho. Exit_Command203_Click: Exit Sub Err_Command203_Click: MsgBox Err.Description ‘ thông báo lỗi của hệ thống Resume Exit_Command203_Click End Sub Hướng dẫn Mở Form hướng dẫn bằng Macro : Openformhotrotunhaphang Trở lại Nút trở lại được lập trình dựa trên thư viện của chương trình. Form Tạo mã hàng và gắn nhóm hàng cho sản phẩm. Trước khi nhập hàng vào kho ta cần khai báo đầy đủ thông tin về nhóm hàng. Form Tạo mã hàng và gán nhóm hàng gồm hai phần chính : Vùng điền thông tin và phần thể hiện thông tin Tại phần thể hiên thông tin, thông tin được thể hiện dựa trên các List được lập trình truyền dữ liệu về Mahang- NhomHang và List thông tin nhóm hàng. + Để tạo một mặt hàng với nhóm hàng đã có bạn thực hiện như sau: Bước 1 : Bạn hãy điền mã hàng vào ô mã hàng sau đó chọn nhóm hàng nhóm hàng thường được tạo trước đó và sẽ được nói rõ trong phần 1.3.7. Bước 2 : Sau khi đã điền đầy đủ thông tin Mã hàng – Nhóm hàng bạn hãy Click vào nút gán nhóm hàng Mã hàng vừa tạo đã có nhóm hàng. Form có kiểu dữ liệu Single Form Caption : Tạo mã hàng và gắn nhóm hàng Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Code chương trình : Option Compare Database ‘ Tạo dòng chũ chạy trên form voi nội dung như bên dưới Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec Label6.Caption = " Quy dinh nhóm hàng cho mã hàng moi lap !" & Space(3) Me.TimerInterval = 200 End Sub Private Sub Form_Timer() Dim X, Y As String X = Left(Label6.Caption, 1) Y = Right(Label6.Caption, Len(Label6.Caption) - 1) Label6.Caption = Y + X End Sub ‘ Truyền thông tin cho list Hàng đã tạo và gắn nhóm hàng Private Sub List17_AfterUpdate() Me.RecordsetClone.FindFirst "Mahang='" & Me!List17 & "'" Me.Bookmark = Me.RecordsetClone.Bookmark End Sub ‘Xóa mặt hàng dã tạo lỗi. Private Sub Command24_Click() On Error GoTo Err_Command24_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Call LUU ‘ Gọi chương trình LUU đã được tạo trong Module2 Me.List17.Requery Me.Requery ‘ Cập nhật thông tin trên list thông tin nhóm hàng bên cạnh . DoCmd.GoToRecord , , acNewRec Exit_Command24_Click: Exit Sub Err_Command24_Click: MsgBox Err.Description Resume Exit_Command24_Click End Sub ‘Gán nhóm hàng Private Sub Command26_Click() On Error GoTo Err_Command26_Click Me.List17.Requery Me.Requery ‘ Cập nhật thông tin nhóm hàng bên list bên cạnh DoCmd.GoToRecord , , acNewRec ‘ Đưa list về cuối Exit_Command26_Click: Exit Sub Err_Command26_Click: MsgBox "Ma hang da ton tai ban hay chon lai ma hang " ‘ Thông báo lỗi Resume Exit_Command26_Click End Sub Nút Thêm nhóm hàng được lập trình bằng Macro để Open Form Thêm nhóm hàng. Xóa Nhóm hàng Private Sub Command24_Click() On Error GoTo Err_Command24_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Call LUU ‘ Gọi chương trình LUU được tạo trong Module 2 Me.List17.Requery Me.Requery ‘ Cập nhật thông tin tại list thông báo DoCmd.GoToRecord , , acNewRec Exit_Command24_Click: Exit Sub Err_Command24_Click: MsgBox Err.Description Resume Exit_Command24_Click Form Phiếu nhập hàng. Sau khi đã tạo mã hàng gán nhóm hàng bạn hãy tạo phiếu nhập hàng. Định dạng Form: Caption : Phiếu nhập hàng Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Phiếu nhập hàng gồm 3 phần : Phần 1 : Phần nhập thông tin của phiếu nhập hàng, bao gồm thông tin mã phiếu , mã kho, ghi chú. Phần 2 : Thông tin kho hàng .Tại khu vực này cho ta đầy đủ thông tin về các kho hàng hiện có của công ti bao gồm Mã kho , Tên kho hàng , Địa chỉ kho hàng Phần 3 : Thông tin phiếu nhập hàng. Tại khu vực này có đày đủ thông tin về phiếu nhập hàng vừa tạo cũng như phiếu nhập hàng đã được tạo từ trước đấy. Bao gồm thông tin về mã phiếu, mã kho, Ghi chú nhập. Chú ý mỗi phiếu nhập có một mã duy nhất nếu bạn tạo một phiếu trùng mã chương trình sẽ báo nỗi Form có kiểu dữ liệu Single Form Caption : Phiếu nhập hàng Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Code của Form: Option Compare Database ‘ Tạo phiếu nhập hàng Private Sub Command21_Click() On Error GoTo Err_Command21_Click Call LUU Me.List15.Requery Me.Requery DoCmd.GoToRecord , , acNewRec Exit_Command21_Click: Exit Sub Err_Command21_Click: MsgBox "Ma phieu nhap da ton tai hoac ma kho khong dung ban hai chon lai MPN , Ma kho cho phu hop. " Resume Exit_Command21_Click End Sub Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec ‘ Đưa danh sách về cuối Label24.Caption = Date ‘ Tạo lich ngày tháng Label25.Caption = Time ‘ Tạo đồng hồ báo giờ End Sub ‘ Tạo liên kết giữa Form và List Private Sub List15_AfterUpdate() Me.RecordsetClone.FindFirst "MPN='" & Me!List15 & "'" Me.Bookmark = Me.RecordsetClone.Bookmark End Sub ‘ Xóa phiếu nhập bị nỗi Private Sub Command27_Click() On Error GoTo Err_Command27_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Call LUU ‘ Gọi Thủ tục LUU trong Module Me.List15.Requery ‘ Cập nhật dữ liệu trên list Me.Requery Exit_Command27_Click: Exit Sub Err_Command27_Click: MsgBox Err.Description ‘ Thông báo khi có nỗi bạn có thể sửa ở đây Resume Exit_Command27_Click End Sub Các nút thêm kho hàng (Gọi form kho hàng) và “trở lại” được thực hiện bàng Macro .Việc tạo Macro la hết sức đơn giản đã được nói trong cá phần trước. Form Chi tiết sản phẩm Form thông tin sản phẩm Định dạng Form Caption : Chi tiết hàng hóa Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Thông tin chi tiết về sản phẩm bao gồm thông tin mã hàng tên mặt hàng, mô tả sản phẩm , và thông tin nhà cung cấp được thể hiện chi tiết ở Form thông tin chi tiết hàng hóa. Cấu trúc Form: Phầm nhập thông tin cho sản phẩm: Góc trên bên trái . Tại đây bạn nhập đầy đu thông tin của sản phẩm : Mã hàng , Tên hàng …. Phần chi tiết sản phẩm trong kho: Góc dưới bên trái Tại list này có đầy đủ thông tin về mặt hàng có trong kho : Mahang, ten hang, ghi chu, mã nhà cung cấp. Phần chi tiết nhà cung cấp : List bên phải. Thông tin chi tiết về nhà cung cấp được thể hiện rõ tại bảng này bao gồm :mã nhà cung cấp, tên nhà cung cấp , website , Phone, fax, Dịa chỉ. Để điền thông tin chi tiết của sản phẩm bạn cần thực hiện các bước như sau: Bước 1 : chọn mã sản phẩm. Bước 2 : Điền thông tin tên mặt hàng. Bước 3 : Mô tả sản phẩm Bước 4 : Chọn nhà cung cấp sản phẩm Cuối cùng nhấn thêm sản phẩm , sản phẩm sẽ được thêm vào hàng nhập kho. Thông tin hàng nhập trong kho sẽ được hiển thị xuốn dưới. List hiển thị thông tin đã được nói ỏ Form trên việc lập trình truyền thông tin cho list là tương tự nhau Code thêm : Private Sub Command12_Click() On Error GoTo Err_Command12_Click Call LUU ‘ Gọi chương trình luu được lập trình trong Module2 Me.List5.Requery Me.Requery ‘ Cập nhật thông tin trên list DoCmd.GoToRecord , , acNewRec Exit_Command12_Click: Exit Sub Err_Command12_Click: MsgBox Err.Description ‘ Thông báo lỗi Resume Exit_Command12_Click End Sub Form Thông tin nhà cung cấp Thông tin nhà cung cấp được thể hiện đầy đủ trong Form này . Khi một mặt hàng mới nhập kho bạn cần tạo mã hàng, gán nhóm hàng và điền đầy đủ thông tin về nhà cung cấp. Thông tin nà cung caapsbao gồm : Mã nhà cung cấp, Tên nhà cung cấp, Website, Phone, Fax, Địa chỉ. Các thông tin nhà cung cấp được thê hiện đầy đủ bên cạnh như hình. Định dạng form: Caption : Nhập thông tin nhà cung cấp Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Thêm nhà cung cấp: + Điền đầy đủ thông tin nhà cung cấp. + Nhập thông tin nhà cung cấp bằng cách click vào nút nhập. Xuất thông tin nhà cung cấp: Tại Form bạn có thể xuất ra thông tin nhà cung cấp tại nút chức năng bên dưới tại đó nó sẽ gọi Form In thông tin nhà cung cấp sẽ được nói rõ sau. Nút này được lập trình bàng Macro. Code của form: Option Compare Database Private Sub Command10_Click() Call LUU Me.List28.Requery Me.Requery DoCmd.GoToRecord , , acNewRec End Sub ‘Tạo dòng chữ chạy Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec Label16.Caption = " Chuong trinh duoc thiet ke boi Pham Minh Tien sinh vien K53-TH3 khoa cong nghe thong tin Dai hoc xay dung - 55 Giai Phong" & Space(3) Label18.Caption = " Ban hay dien thong tin nha cung cap san pham " Me.TimerInterval = 200 End Sub Private Sub Form_Timer() Dim X, Y As String X = Left(Label16.Caption, 1) Y = Right(Label16.Caption, Len(Label16.Caption) - 1) Label16.Caption = Y + X X = Left(Label18.Caption, 1) Y = Right(Label18.Caption, Len(Label18.Caption) - 1) Label18.Caption = Y + X End Sub ‘ Truyền thông tin từ Form vào List Private Sub List28_AfterUpdate() Me.RecordsetClone.FindFirst "Manhacungcap='" & Me!List28 & "'" Me.Bookmark = Me.RecordsetClone.Bookmark End Sub ‘Thực thi chương trình Private Sub Command37_Click() On Error GoTo Err_Command37_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Call LUU Me.List28.Requery ‘ Cập nhật List Me.Requery ‘ Cập nhật List DoCmd.GoToRecord , , acNewRec ‘ Đưa table về cuối Exit_Command37_Click: Exit Sub Err_Command37_Click: MsgBox "Xin loi he thong dang nang cap" ‘Thông báo khi có lỗi Resume Exit_Command37_Click End Sub Form In thông tin nhà cung cấp Cấu trúc form gồm thông tin nhà cung cấp và phần tìm kiếm theo tên nhà cung cấp . Tìm kiếm được thực hiện bàng viêc click vào nhũng chữ cái bắt đầu của nhà cung cấp , khi đó những nhà cung cấp có cùng chữ cái đầu sẽ được liệt kê trên list thông tin nhà cung cấp. Form được thiết kế đơn giản ở dạng Continuous Form Caption : thông tin nhà cung cấp sản phẩm Record Selectors : No Navigation buttons : No Dividing Line : Yes Border Style : Thin Nút tìm kiếm A, B, C …. Được tạo bàng các Toggle button để được các giá trị True False Đê tạo chức năng tìm kiếm theo chữ cái đàu tiên bạn tạo Form như hình vẽ Sau đó tại Group Toggle button ban chon properties (kich đúp chuột) vào Group Toggle button hiện ra thông tin như hình . Tai phần After Update ta thực hiên tạo một Macro như sau: Macro Tiếp theo tại mục Properties cua Form ban điền trong mục Filter như sau : [Ten_nha_cung_cap] Like "A*" Các định dạng của Form đã được nói trên các Form trước . Code : Nút Sprint: Private Sub Command95_Click() DoCmd.PrintOut acPages, , , acMedium Exit_Command95_Click: Exit Sub Err_Command95_Click: Const conErrDoCmdCancelled = 2501 If (Err = conErrDoCmdCancelled) Then Resume Exit_Command95_Click Else MsgBox Err.Description Resume Exit_Command95_Click End If End Sub ‘ Tạo mục Open Form bạn nhập code sau: ‘ Khai báo cho nhan 180 Private Sub Form_Open(Cancel As Integer) Label180.Caption = " * Chuong trinh duoc thiet ke boi Pham Minh Tien sinh vien K53-TH3 khoa cong nghe thong tin Dai hoc xay dung - 55 Giai Phong " & Space(50) & " * Thong tin chi tiet lien he theo dia chi gmail : minhtienpro01@gmail.com " & Space(20) Me.TimerInterval = 200 End Sub ‘Tạo chữ chạy trên Form Private Sub Form_Timer() Dim X, Y As String X = Left(Label180.Caption, 1) Y = Right(Label180.Caption, Len(Label180.Caption) - 1) Label180.Caption = Y + X End Sub Form Nhóm hàng Form nhóm hàng trong kho quản lý thông tin các nhóm mặt hàng trong kho Cấu trúc Form: Định dạng Form Caption : Thêm nhóm hàng kinh doanh Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Phần nhập thông tin nhóm bao gồm thông tin mã nhóm , tên nhóm. Phần thông tin nhóm hàng trong kho được thể hiện chi tiết trên list bên cạnh. Thêm nhóm hàng: Private Sub Command9_Click() On Error GoTo Err_Command9_Click Call LUU ‘ Gọi trương trình LUU trong module 2 Me.List4.Requery Me.Requery ‘ Update lai list hiện thị thông tin nhóm bên canh. DoCmd.GoToRecord , , acNewRec Exit_Command9_Click: Exit Sub Err_Command9_Click: MsgBox Err.Description Resume Exit_Command9_Click End Sub Xóa nhóm hàng : Private Sub Command12_Click() On Error GoTo Err_Command12_Click DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 Call LUU Me.List4.Requery Me.Requery Exit_Command12_Click: Exit Sub Err_Command12_Click: MsgBox Err.Description Resume Exit_Command12_Click End Sub Form Phiếu nhập kho. Thông tin chi tiết về các sản phẩm nhập kho sẽ được thể hiện chi tiết ở phiếu nhập kho: Cấu trúc của Form: Form có cấu trúc giống một phiếu nhập kho bạn có thể dễ dàng lấy thông tin từ phiếu. Form được cấu tạo đơn giản bao gồm 1 combo box chọn mã số phiếu nhập kho, khi bạn chọn mã số phiếu nhập kho, thông tin chi tiết về phiếu nhập hàng đó sẽ được thể hiện chi tiết bên dưới . Thông tin hiển thị được thể hiện Form con với kiểu dữ liệu là Continuous Forms dữ liệu được lấy từ query Thong_tin_hang_nhap_kho Định dạng Form chính: Caption : In phieu nhâp Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Thông tin vê thời gian được cập nhật dựa trên giờ máy tính của bạn. Code : Xem bản in: được thực hiện dựa trên Report “ Phieu_nhap_hang”. Private Sub Command43_Click() On Error GoTo Err_Command43_Click ‘ Gọi Report Phiếu nhap hang Dim stDocName As String DoCmd.OpenReport "Phieu_nhap_hang", acViewDesign, , , acDialog Exit_Command43_Click: Exit Sub Err_Command43_Click: MsgBox Err.Description Resume Exit_Command43_Click End Sub In phiếu xuất HTML Private Sub in_html_Click() On Error GoTo Err_in_html_Click DoCmd.OutputTo acOutputReport, "Phieu_nhap_hang", acFormatHTML, "PHIEU NHAP HANG.htm", True, "minhtienpro.htm" Exit_in_html_Click: Exit Sub Err_in_html_Click: Const conErrDoCmdCancelled = 2501 If (Err = conErrDoCmdCancelled) Then Resume Exit_in_html_Click Else MsgBox Err.Description Resume Exit_in_html_Click End If End Sub Print Private Sub Command46_Click() On Error GoTo Err_Command46_Click Dim stDocName As String stDocName = "Phieu_nhap_hang" DoCmd.OpenReport stDocName, acNormal Exit_Command46_Click: Exit Sub Err_Command46_Click: MsgBox "BAN DA THOAI KHOI CHUONG TRINH IN ." Resume Exit_Command46_Click Thoát Private Sub Command48_Click() ‘Nút thoát On Error GoTo Err_Command48_Click DoCmd.Close acForm, "PHIEUNHAPHANG", acSaveYes Exit_Command48_Click: Exit Sub Err_Command48_Click: MsgBox Err.Description Resume Exit_Command48_Click End Sub Form Xuất hàng Thông tin dữ liệu xuất. Thông tin hàng hoá xuất kho được lấy từ kho hàng nghĩa là những sản phẩm đã nhập kho mới có trong thông tin để xuất kho. Bạn không thể xuất một mặt hàng mà trong kho không có. Quy tắc xuất hàng. Cũng như nhập hàng bạn cần điền đầy đủ thông tin của mặt hàng cần xuất: Nhóm mặt hàng, tên mặt hàng , xuất từ kho … Các bước thực hiện xuất kho : Bước 1: Tạo phiếu xuất hàng Bước 2 : Các Form và Query của phần xuất hàng Form chính xuất hàng. Định dạng của Form Single forms Caption : Xuất hàng từ kho. Scroll bars : Neither Record Selectors : No Navigation buttons : No Auto Resize : No Auto Center : No Dividing Line : Yes Border Style : Thin Min max buttons : Both Enabled Cấu truc: Form gồm phần thông tin hàng trong phiếu tại đây bạn chọn sản phẩm cần xuất khỏi kho hàng. Chú ý: Số lượng hàng xuất không giới hạn lên khi xuất cần chú ý đến số lượng hàng hóa trong kho. -Trường hợp số lượng xuất lớn hơn số lượng hàng trong kho thì số lượng hàng trong kho sẽ bị âm. Bạn cần nhập bù hoặc không đáp ứng đủ nhu cầu của khách hàng Code chương trình : Private Sub Command144_Click() On Error GoTo Err_Command144_Click Screen.PreviousControl.SetFocus DoCmd.FindNext Exit_Command144_Click: Exit Sub Err_Command144_Click: MsgBox Err.Description Resume Exit_Command144_Click End Sub Private Sub Command145_Click() On Error GoTo Err_Command145_Click DoCmd.GoToRecord , , acNext Exit_Command145_Click: Exit Sub Err_Command145_Click: MsgBox Err.Description Resume Exit_Command145_Click End Sub Private Sub Command174_Click() ‘ Nút Xuất hàng On Error GoTo Err_Command174_Click DoCmd.GoToRecord , , acNewRec Call LUU Me.List219.Requery Me.Requery Me.List240.Requery Me.Requery DoCmd.GoToRecord , , acNewRec DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 Exit_Command174_Click: xit Sub Err_Command174_Click: MsgBox Err.Description Resume Exit_Command174_Click End Sub ‘ Tạo dòng chữ chạy trên Form Private Sub Form_Open(Cancel As Integer) DoCmd.GoToRecord , , acNewRec DoCmd.GoToRecord , , acNewRec Command242.Visible = False Box244.Visible = False Label180.Caption = " * Chuong trinh duoc thiet ke boi Pham Minh Tien sinh vien K53-TH3 khoa cong nghe thong tin Dai hoc xay dung - 55 Giai Phong " & Space(50) & " * Thong tin chi tiet lien he theo dia chi gmail : minhtienpro01@gmail.com " & Space(20) 'Thong tin ngay thang GIO = Hour(Time) thu = Array("none", " * Chu nhat ", " Thu hai ", " Thu ba ", " Thu tu ", " Thu nam ", " Thu sau ", " Thu bay ") If GIO >= 0 And GIO <= 10 Then Txtngay.Caption = " *Cap nhat " & thu(Weekday(Date)) & " ngay " & Day(Date) & " Thang " & Month(Date) & " Nam " & Year(Date) & Space(10) & "Chuc ban co mot ngay lam viec vui ve ." & Space(50) ElseIf GIO >= 11 And GIO <= 13 Then Txtngay.Caption = " *Cap nhat " & thu(Weekday(Date)) & " Ngay " & Day(Date) & " Thang " & Month(Date) & " Nam " & Year(Date) & Space(10) & "Chuc ban co mot ngay lam viec vui ve ." & Space(50) ElseIf GIO > 13 And GIO <= 18 Then Txtngay.Caption = " *Cap nhat " & thu(Weekday(Date)) & " Ngay " & Day(Date) & " Thang " & Month(Date) & " Nam " & Year(Date) & Space(10) & "Chuc ban co mot ngay lam viec vui ve ." & Space(50) Else Txtngay.Caption = " *Cap nhat " & thu(Weekday(Date)) & " Ngay " & Day(Date) & " Thang " & Month(Date) & " Nam " & Year(Date) & Space(10) & "Chuc ban co mot ngay lam viec vui ve ." & Space(50) End If Label184.Caption = Time Label186.Caption = "CTY TNHH MINHTIEN-PRO - ÐIA CHI 403 AN LAO - MY ÐUC -TP HAI PHONG - VIET NAM - ÐIEN THOAI : 01689928138 - EMAIL: minhtienpro01@yahoo.com" & Space(50) Me.TimerInterval = 200 End Sub Private Sub Form_Timer() X = Left(Label180.Caption, 1) Y = Right(Label180.Caption, Len(Label180.Caption) - 1) Label180.Caption = Y + X X = Left(Label186.Caption, 1) Y = Right(Label186.Caption, Len(Label186.Caption) - 1) Label186.Caption = Y + X X = Left(Txtngay.Caption, 1) Y = Right(Txtngay.Caption, Len(Txtngay.Caption) - 1) Txtngay.Caption = Y + X End Sub Private Sub List206_AfterUpdate() Me.RecordsetClone.FindFirst "Manhacungcap='" & Me!List206 & "'" Me.Bookmark = Me.RecordsetClone.Bookmark End Sub Private Sub Option236_AfterUpdate() Command242.Visible = Me.Option236 Box244.Visible = Me.Option236 End Sub Private Sub xoa_Click() DoCmd.OpenQuery "xoamathangtrongxuathang", acViewNormal, acEdit Me.List219.Requery Me.Requery End Sub Private Sub Command242_Click() ‘ Nút update dữ liệu On Error GoTo Err_Command242_Click Mahang.SetFocus Dim stDocName As String stDocName = "Appendkhohangkhixuat" DoCmd.OpenQuery stDocName, acNormal, acEdit Dim stDocName1 As String stDocName1 = "Updatelaikhohang2saukhinhaphang" DoCmd.OpenQuery stDocName1, acNormal, acEdit Me.List240.Requery Me.Requery MsgBox " Ban da hoan thanh qua trinh cap nhat" Command242.Enabled = False Exit_Command242_Click: Exit Sub Err_Command242_Click: MsgBox Err.Description Resume Exit_Command242_Click End Sub Private Sub Command247_Click() On Error GoTo Err_Command247_Click DoCmd.DoMenuItem acFormBar, acRecordsMenu, 5, , acMenuVer70 Exit_Command247_Click: Exit Sub Err_Command247_Click: MsgBox Err.Description Resume Exit_Command247_Click End Sub KẾT LUẬN CHUNG. Chương trình đã đáp ứng được những yêu cầu cơ bản nhất về việc Quản lý kho hàng . Bên cạnh đó chương trình vẫn có thể tiếp tục phát triển thêm về nhiều mặt. Rất mong nhận được thêm các ý kiến đóng góp để có thể phát triển chương trình tốt hơn. Xin trân trọng cảm ơn thầy .

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

  • docxChương trình quản lý xuất nhập cho kho hàng - đồ án Access.docx