Tạo phàn nhập, xuất, xử lý thông tin kho hàng
Trang 1Đề tài 1 : Chương trình quản lý xuất nhập cho kho hàng
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 31. 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 51. 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
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
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đạ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đ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ự.
Trang 18+ Manhacungcap : (Mã nhà cung cấp) được lấy dữ liệu từ bảng
4_Nha_cung_cap.
7) 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ệuText 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
Trang 19là 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
Trang 20+ Ngay_nhap : Ngày nhập ( Ngày ghi phiếu nhập ) có kiểu dữ liệu
Trang 21lam khóa chính để dễ dàng trong việc thiết kế Relationship sau nay.
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
Trang 22+ 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.
Trang 23dịnh chi tiết trong phần Input Mask
Trang 24+ Ten_nguoi_lap : Tên người nhập hóa đơn có kiểu dữ liệu Text
Trang 25kho, 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ấtkho co số lượng – (bớt hàng)
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 Table4_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áotrong Table 7_Chi_tiet_phieu_nhap là bước quyết định hàng hóanào được nhập kho , thông tin về ngày tháng nhập số lượng v.v.v
Trang 36Single formsCaption : Chuong trinh nhap cuat hang cua cong ti dien may –SVPham Minh Tien
Scroll bars : NeitherRecord Selectors : No
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ôngtin 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ảnphẩm hiện có trong kho, các sản phẩm được chia theo nhóm sản phẩm mỗi nhómsản phẩm là 1 trang của Tab control:
Trang 39Như các loại ti vi loa đài …
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 45Cá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 macroOpen_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àokho
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ôngtin Form và query.
Trang 50 Thông kê kho hàng
Mở form Chuyển kho bằng Macro
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
giá
DoCmd.OpenQuery stDocName, acNormal, acEditMe.List1.Requery
Me.RequeryExit_Command14_Click:
Trang 59Resume Exit_Command14_Click
Trang 60Thông tin về giá cả các sản phẩm trong kho hàng, được thể hiện trong Formbáo giá.
Trang 63 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 : ThinMin 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 69DoCmd.GoToRecord , , acNewRec Exit_Command174_Click:
Exit Sub Err_Command174_Click:
Trang 71• Xóa mặt hàng trong phiếu hàng
Trang 72DoCmd.OpenQuery "Xoahangtrongchitietnhaphang", acViewNormal, acEdit
Me.List134.Requery Me.Requery End 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 81Dim 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.
Trang 83Mở Form hướng dẫn bằng Macro : Openformhotrotunhaphang
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 95End 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 98MsgBox 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
Trang 101Me.List17.Requery
DoCmd.GoToRecord , , acNewRec Exit_Command24_Click:
Trang 102MsgBox Err.Description Resume Exit_Command24_Click
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 : ThinMin 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 110Navigation buttons : NoAuto Resize : No
Auto Center : NoDividing Line : YesBorder Style : Thin
Trang 111Option Compare Database
Trang 112On Error GoTo Err_Command21_Click
Call LUU
Me.List15.Requery Me.Requery
Exit_Command21_Click:
Exit Sub
Err_Command21_Click:
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 115Me.List15.Requery ‘ Cập nhật dữ liệu trên list
Me.Requery Exit_Command27_Click:
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 EnabledThô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
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ẩmBướ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
Trang 123Private Sub Command12_Click()
On Error GoTo Err_Command12_Click
Trang 125hà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 133Y = 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 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 đầucủ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
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àoGroup Toggle button hiện ra thông tin như hình
Trang 142Tai phần After Update ta thực hiên tạo một Macro như sau:
Trang 144Tiế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
Trang 146MsgBox 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)
Trang 148‘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
Trang 152Scroll bars : NeitherRecord Selectors : No Navigation buttons : NoAuto Resize : No
Trang 153Min 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
Trang 154Phần thông tin nhóm hàng trong kho được thể hiện chi tiết trên list bên cạnh.
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.
Trang 155Exit Sub Err_Command9_Click:
Trang 156Resume 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
Trang 161dễ dàng lấy thông tin từ phiếu.
Trang 162Form được cấu tạo đơn giản bao gồm 1 combo box chọn mã số phiếu nhậpkho, 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