Chương trình quản lý xuất nhập cho kho hàng - đồ án Access
Trang 1Đề 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
Trang 2 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
I. Giới thiệu chung.
II. Dữ liệu chương trình.
Trang 3Cấu trúc chương trình:
1. Nhập hàng
1.1 Thông tin dữ liệu nhập.
1.2 Các Form và Query chính của phần nhập hàng
Trang 42.1 Thông tin dữ liệu xuất.
2.2 Các Form và Query của phần xuất hàng
IV. Hướng dẫn sử dụng chương trình.
Nội Dung chi tiết.
Trang 5II. DỮ LIỆU CHƯƠNG TRÌNH
1. 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) 1_Hang_hoa : Bảng chứa thông tin về mã hàng hóa va mã nhóm của hàng
Trang 6+ 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
Trang 7VD Nhóm hàng 0001 :Điện tử -Âm thanh có mã nhóm hàng : NH0001
2) 2_Nhap_hang : (Nhập hàng ) Thông tin về MÃ NHẬP HÀNG ,MÃ KHO
Trang 8+ 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
Trang 103) 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
Trang 124) 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ự.
Trang 13+ 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
Trang 145) 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.
Trang 15+ 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ự.
Trang 166) 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
Trang 17+ 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
Trang 187) 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)
Trang 19+ 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
Trang 20+ Ten_nguoi_nhap : Tên người nhập hàng có kieur dữ liệu Text giới hạng
Trang 218)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ự.
Trang 22+ 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.
Trang 23chi tiết trong phần Input Mask : 0000
Trang 24+ Ten_nguoi_lap : Tên người nhập hóa đơn có kiểu dữ liệu Text
Trang 25nhậ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
Trang 26+ 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.
Trang 28III. XÂY DƯNG CHƯƠNG TRÌNH.
Trang 30trong 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:
o Thông tin nhà cung cấp sản phẩm được thể hiện đầy đủ trong 4_Chi_tiet_nha_cung_cap (Table)
o 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.
Trang 31bả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
Trang 32mớ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
Trang 33+ 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
Trang 37Auto Center : NoDividing Line : YesBorder Style : Thin
Trang 38Min 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:
Trang 39Như các loại ti vi loa đài …
Trang 40Nhó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
Trang 41Nhó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ợ
Trang 42Mỗ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
Trang 45Vớ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.
Trang 46Gọ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.
Trang 49Form 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.
Trang 50 Thông kê kho hàng
Mở form Chuyển kho bằng Macro mo_F_chuyenkho
Trang 52Form thống kê theo kho.
Trang 54Thông tin sản phẩm trong kho sẽ được thống kê chi tiết trong Form này
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.
Trang 55 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.
Trang 56Gọi Form update bằng macro như bên.
Trang 57+ Chức năng update giá được thực hiện thông qua một query Update giá:
Private Sub Command14_Click()
Trang 58On Error GoTo Err_Command14_Click Dim stDocName As String
stDocName = "Updatelaigia" ‘ Gán tên Query update
Trang 59MsgBox Err.Description
Resume Exit_Command14_Click
End SubBáo giá
Trang 60Thông tin về giá cả các sản phẩm trong kho hàng, được thể hiện trong Form báo giá.
Trang 63 Thu nhỏ
Thoát khỏi chương trình.
1.3 Các Form và Query chính của phần nhập hàng
Trang 64Định dạng form
Caption : Nhập hàng vào khoScroll bars : Neither
Record Selectors : No Navigation buttons : No
Trang 65Dividing Line : YesBorder Style : Thin
Min max buttons : Both Enabled
Trang 66• 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
Trang 67+ Thông tin chi tiết về sản phẩm+ Thông tin nhà cung cấp
Trang 69Me.Requery
DoCmd.GoToRecord , , acNewRecExit_Command174_Click:
Exit Sub
Err_Command174_Click: MsgBox Err.Description
Trang 71• Xóa mặt hàng trong phiếu hàngCode :
Private Sub Command175_Click()
Trang 72DoCmd.OpenQuery "Xoahangtrongchitietnhaphang", acViewNormal, acEdit
Me.List134.RequeryMe.RequeryEnd Sub
Trang 76• Nhập chi tiết hàng hóa
Mở Form chi tiết hàng hóa bằng Macro:
Trang 78• Nhập chi tiết nhà cung cấp
Mở form chi tiết nhà cung cấp:
Trang 80• 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
Trang 81DoCmd.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
Trang 82Me.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
Trang 89Trướ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
Trang 90Tạ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.
Trang 91Form có kiểu dữ liệu Single Form
Trang 92Scroll bars : NeitherRecord Selectors : No Navigation buttons : NoAuto Resize : No
Trang 93Min max buttons : Both EnabledCode chương trình :
Option Compare Database
Trang 94‘ 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)
Trang 95Label6.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()
Trang 96Me.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
Trang 97Call 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:
Trang 98MsgBox Err.Description
Resume Exit_Command24_Click
End Sub
‘Gán nhóm hàng
Private Sub Command26_Click()
On Error GoTo Err_Command26_ClickMe.List17.Requery
Me.Requery ‘ Cập nhật thông tin nhóm hàng bên list bên cạnh
Trang 99Exit_Command26_Click: Exit Sub
MsgBox "Ma hang da ton tai ban hay chon lai ma hang " ‘ Thông báo lỗi
Resume Exit_Command26_Click
Trang 101Call LUU ‘ Gọi chương trình LUU được tạo trong Module
Me.List17.Requery
DoCmd.GoToRecord , , acNewRecExit_Command24_Click:
Trang 102Err_Command24_Click: MsgBox Err.Description
Trang 104Định dạng Form:
Caption : Phiếu nhập hàngScroll bars : Neither
Record Selectors : No Navigation buttons : No
Trang 105Dividing Line : YesBorder Style : Thin
Min max buttons : Both Enabled
Trang 108Chú ý 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
Trang 109Caption : Phiếu nhập hàngScroll bars : NeitherRecord Selectors : No
Trang 110Navigation buttons : NoAuto Resize : No
Auto Center : NoDividing Line : YesBorder Style : Thin
Trang 111Option Compare Database
Trang 112On Error GoTo Err_Command21_ClickCall LUU
Exit_Command21_Click: Exit Sub
cho phu hop "
Trang 113Private Sub Form_Open(Cancel As Integer)
Trang 114‘ 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
Trang 115Call LUU ‘ Gọi Thủ tục LUU trong Module
Me.RequeryExit_Command27_Click: Exit Sub
Trang 116MsgBox 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.
Trang 118Form thông tin sản phẩm
Định dạng FormCaption : Chi tiết hàng hóa
Scroll bars : NeitherRecord Selectors : No
Trang 119Auto Center : NoDividing Line : YesBorder Style : Thin
Trang 120Min 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.
Trang 121Tạ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ỉ.
Trang 122Để đ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
Trang 123Private Sub Command12_Click()
On Error GoTo Err_Command12_Click
Trang 124DoCmd.GoToRecord , , acNewRec Exit_Command12_Click:
Trang 125Thô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.
Trang 128Record Selectors : No Navigation buttons : NoAuto Resize : No
Auto Center : NoDividing Line : Yes
Trang 130+ 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:
Trang 131Me.List28.RequeryMe.Requery
Trang 133X = Left(Label18.Caption, 1)
Y = Right(Label18.Caption, Len(Label18.Caption) - 1) Label18.Caption = Y + X
Trang 134‘ 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
Trang 135Me.List28.Requery ‘ Cập nhật List
Exit_Command37_Click: Exit Sub
Trang 138Cấ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 FormCaption : thông tin nhà cung cấp sản phẩm
Trang 139Dividing Line : YesBorder Style : Thin
Trang 140Nú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