Ch−ơng III: Cμi đặt bμi toán 1. Khởi động và đăng nhập ch−ơng trình
(Form Đăng nhập)
Để đăng nhập hệ thống ng−ời sử dụng phải đăng nhập vμo hệ thống thông qua Form đăng nhập. ở đây lμ nơi quyết định chức năng cụ thể cho ng−ời sử dụng.
Các chức năng cơ bản khi đăng nhập bao gồm:
- Thiết kế vμ quản lý hệ thống (Dμnh cho ng−ời thiết kế ch−ơng trình)
- Dμnh cho khách hμng
Với hình thức đăng nhập sẽ quy định những tính chất của công việc. Đối với ng−ời thiết kế thì có thể thayđổi cấu trúc bên trong của hệ thống. Đối với khách hμng thì chỉ việc truy cập vμo vμ xem thông tin về hμng hoá vμ tìm kiếm sản phẩm.
Mã lệnh thực hiện các công việc đó:
(Chú ý)
Cách thực hiện: Khi ta vμo hệ thống thì xuất hiện Form Login
Hình thức đăng nhập lμ ta gõ Username tên gì thì Password gõ lại tên mμ
ta đăng nhập ở Usernamẹ
Sau khi đăng nhập thμnh công ta có thể sử dụng ch−ơng trình.
Giao diện ch−ơng trình sau khi đăng nhập thμnh công nh− sau:
(Hình)
2. Hệ thống các Form cơ bản và cách thực hiện của ch−ơng trình
2.1. Form cập nhật Hàng hoá
Dùng để cập nhật các thông tin liên quan đến Sản phẩm. Các chức năng cơ bản của Form lμ: Tìm kiếm, Nhập thêm, Về đầu, Về cuối, Tr−ớc, Sau, L−u, Xóa, Thoát.
Nút thêm mới: dùng để nhập thêm các thông tin về sản phẩm. Mã lệnh nút trên t−ơng tự nh− Form nhμ cung cấp
* Nút Tìm kiếm: Để tìm xem mặt hμng đó có trong kho hay không (tìm thông qua Mã hμng)
Mã lệnh nh− sau:
Private Sub cmd_TIM_Click() Dim t
Dim R As Recordset
t = InputBox("Nhap ma hang can tim") R.FindFirst "[Mahang]='" & t & "'" If R.NoMatch Then
MsgBox "Khong co hang can tim" Else
MẹBookmark = R.Bookmark End If
R.Close End Sub
Cách thực hiện nh− sau: Vμo Menu Danh mục chọn Danh mục hàng hoá,
Chú ý: Sau khi cập nhật hay sửa đổi một thông tin nμo đó về sản phẩm ta phải l−u lại thông qua nút lệnh L−ụ
2.2. Cập nhập danh mục Nhà cung cấp
- Nhằm để cập nhật các thông tin liên quan đến Nhμ cung cấp
- Các nút lệnh liên quan đến đến chức năng của Form.
* Nút Thêm mới: Dùng để nhập mới thông tin của Nhμ cung cấp khi họ cung cấp mặt hμng cho doanh nghiệp.
Private Sub CMD_THEM_Click() txt_Ma = " " txt_Ten = " " txt_DC = " " txt_DT = " " End Sub
* Nút L−u: Thực hiện l−u lại các thao tác vừa thực hiện trên Form
Private Sub CMD_LUU_Click() Dim flag As Boolean
flag = True
If txt_Ma = "" Then
MsgBox "Ma khong the bo trong!!!" flag = False
Else
If txt_Ten = "" Then
MsgBox "Ten Nha cung cap khong the bo trong!!!" flag = False
If txt_DC = "" Then
MsgBox "Dia chi khong the bo trong!!!" flag = False Else flag = True End If End If End If
If flag = True Then
Dim db As DAỌDatabase Dim rs As DAỌRecordset Set db = CurrentDb
Set rs = db.OpenRecordset("T NHA CC") MsgBox "Ban nhap da thanh cong !!!" rs.AđNew
rs.Fields("MaNCC").Value = txt_Ma rs.Fields("TenNCC").Value = txt_Ten rs.Fields("DiachiNCC").Value = txt_DC
rs.update txt_Ma = " " txt_Ten = " " txt_DC = " " txt_DT = " " txt_GC = " " End If End Sub
* Nút về đầu: Dùng để trỏ về bản ghi đầu tiên Private Sub CMD_DAU_Click()
DoCmd.GoToRecord , , acFirst
MẹCMD_TRUOC.Enabled = False MẹCMD_KẸEnabled = True End Sub
* Nút về cuối: Dùng để trỏ về bản ghi cuối cùng Private Sub CMD_CUOI_Click()
DoCmd.GoToRecord , , acLast MẹCMD_KẸEnabled = False
MẹCMD_TRUOC.Enabled = True End Sub
* Nút Kề: Dùng để trỏ đến bản ghi kề bản ghi hiện tại Private Sub CMD_KE_Click()
On Error GoTo Err_CMD_KE_Click DoCmd.GoToRecord , , acNext Exit_CMD_KE_Click:
Exit Sub
Err_CMD_KE_Click:
MsgBox "Day la mau tin cuoi cung!" Resume Exit_CMD_KE_Click End Sub
* Nút tr−ớc: Dùng để trỏ đến bản ghi tr−ớc bản ghi tr−ớc bản ghi hiện tại
Private Sub CMD_TRUOC_Click()
On Error GoTo Err_CMD_TRUOC_Click DoCmd.GoToRecord , , acPrevious Exit_CMD_TRUOC_Click:
Err_CMD_TRUOC_Click:
MsgBox "Day la mau tin dau tien!" Resume Exit_CMD_TRUOC_Click End Sub
* Nút Xóa: Dùng để xoá đi những bản ghi sai hoặc bị lỗị Private Sub CMD_XOA_Click()
On Error GoTo Err_CMD_XOA_Click
If MsgBox("Ban muon xoa mau tin nay", vbOKCancel) = vbCancel Then Exit Sub
DoCmd.SetWarnings (False) MẹAllowEdits = True MẹRepaint
DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70 DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70 DoCmd.SetWarnings (True)
MẹAllowEdits = False MẹRepaint
Exit_CMD_XOA_Click: Exit Sub
Err_CMD_XOA_Click:
MsgBox "Ban khong the thuc hien duoc,hay kiem tra du lieu" Resume Exit_CMD_XOA_Click
End Sub
- Ngoμi ra còn có nút Thoát, vμ một số nút khác.
Chú ý: Sau mỗi lần thực hiện nhập mới hoặc sữa đổi dữ liệu đều phải l−u lại bản ghi bằng cách nháy chuột vμo nút L−u ở trên Form.
- Cách thực hiện: Vμo Menu Danh mục/ DM nhà cung cấp, xuất hiện Form Danh mục nhμ cung cấp nh− sau:
2.3. Cập nhật danh mục Khách hàng
- Dùng để cập nhật các thông tin liên quan đến Khách hμng.
Các nút thể hiện chức năng của Form:
* Nút thêm mới: Dùng để nhập thêm thông tin của khách hμng (Trong tr−ờng hợp mua hμng).
* Mã lệnh thực hiện:
Private Sub CMD_THEM_Click() txt_Ma = ""
txt_Loai = "" txt_Ten = "" txt_DC = "" End Sub
* Nút L−u: Thực hiện l−u lại các thao tác vừa thực hiện trên Form.
Mã lệnh thực hiện chức năng l−u:
Private Sub CMD_LUU_Click() Dim flag As Boolean
flag = True
MsgBox "Ma khong the bo trong!!!" flag = False
Else
If txt_Loai = "" Then
MsgBox "Loai khach hang khong the bo trong!!!" flag = False
Else
If txt_Ten = "" Then
MsgBox "Ten khach hang khong the bo trong!!!" flag = False
Else
If txt_DC = "" Then
MsgBox " Dia chi khong the bo trong !!!" flag = False
Else
flag = True End If
End If End If
If flag = True Then
Dim db As DAỌDatabase Dim rs As DAỌRecordset Set db = CurrentDb
Set rs = db.OpenRecordset("T KHACH HANG") MsgBox "Ban nhap da thanh cong !!!"
rs.AđNew rs.Fields("Makhach").Value = txt_Ma rs.Fields("Loaikhach").Value = txt_Loai rs.Fields("Tenkhachhang").Value = txt_Ten rs.Fields("Diachi").Value = txt_DC rs.update txt_Ma = "" txt_Loai = "" txt_Ten = "" txt_DC = ""
txt_DT = "" txt_GC = "" End If End Sub
* Các nút lệnh Về đầu, cuối, tr−ớc, kề, xoá, thoát t−ơng tự nh− ở Form Khách hμng.
Chú ý: Sau mỗi lần Thêm mới hoặc sữa đổi đều phải l−u lại thông qua nút L−u trên Form.
- Cách thực hiện: Vμo Menu Danh mục/DM khách hàng, xuất hiện Form Danh mục khách hμng nh− sau:
2.4. Danh mục nhân viên
Cập nhật các thông tin liên quan đến nhân viên.
Các nút lệnh trên Form thực hiện các chức năng t−ơng tự giống nh− Form Khách hμng vμ Nhμ cung cấp vμ mã lệnh cung thực hiện t−ơng tự nh− vậỵ
2.5. Phiếu nhập kho
Dùng để cập nhật các thông tin liên quan đến hμng hoá cũng nh− các thông tin khác(Số phiếu, nhμ cung cấp, ) vμo trong kho khi nhập hμng về từ nhμ cung cấp.
- Cách thực hiện: Vμo Menu Hồ sơ/ Phiếu nhập, xuất hiện Form Phiếu nhập kho nh− sau:
- Trên Form có đầy đủ các thông tin liên quan đến Phiếu nhập kho( Số phiếu, Ngμy nhập, thông tin về Nhμ cung cấp, Mã hμng, Tên hμng, Số l−ợng nhập, Đơn giá nhập, )
- Chức năng thực hiện chúng nh− sau:
* Nút Nhập: Dùng để thêm vμo những mặt hμng cũng nh− những thông tin mới nhập trong ngμỵ
Mã lệnh nh− sau:
End Sub
* Nút l−u: Thực hiện l−u lại các thao tác vừa nhập hoặc sữa đổi trên Form.
Mã lệnh nh− sau:
Private Sub CMD_LUU_Click()
DoCmd.RunCommand acCmdSaveRecord End Sub
* Các nút lệnh Về đầu, về cuối, tr−ớc, kề, xoá đề t−ơng tự nh− các form trên.
* Nút Xem:Nhằm để khi ta nhập một mặt hμng nμo đó vμo kho rồi nh−ng muốn mặt hμng đó phải hiển thị ra để ta có thể in ra giấỵ
Mã lệnh nh− sau:
Private Sub CMD_XEM_Click() Dim tenreport As String
tenreport = "R PNHAP"
Msgbox “Ban co muon hien thi mau tin nay khong?”
DoCmd.OpenReport tenreport, acViewPreview, , "[Sophieu]=[Forms]![F PNHAP]![Sophieu]"
End Sub
Mã lệnh nh− sau:
Private Sub cmd_IN_Click() Dim tenreport As String tenreport = "R PNHAP"
Msgbox “Ban co muon in mau tin nay khong?” DoCmd.OpenReport tenreport, acViewNormal End Sub.
Chú ý: Khi ta thực hiện nhập hμng vμo kho, nếu thông tin về Nhμ cung cấp ch−a có thì ta phải nhập thông tin về Nhμ cung cấp đó vμo bằng cách nhấn vμo nút nhà cung cấp ở trên Form. Sau đó mới thực hiện nhập thông tin về hμng.
Câu lệnh thể hiện chức năng đó nh− sau:
Private Sub Label26_Click() Dim tenform As String tenform = "F NHACC"
MsgBox " Ban co muon cap nhat thong tin ve nha cung cap khong ?" DoCmd.OpenForm tenform, acNormal
2.6. Form Hoá đơn
- Quản lý dữ liệu liên quan đến mặt hμng khi xuất.
- Cách thực hiện: Vμo Menu Hồ sơ/ Hoá đơn, xuất hiện Form Hoá đơn nh−
sau:
- Ta lựa chọn kiểu hoá đơn sẽ có lần l−ợt các Form thể mô tả từng loại hoá đơn:
- Chức năng của các nút lệnh trên 3 Form đều giống nhau : t−ơng tự nh− các form ở trên.
* Nút lệnh In đ−ợc thể hiện qua câu lệnh sau:
Private Sub cmd_IN_Click() Dim tenreport As String
tenreport = "R HOADON(XK)"
DoCmd.OpenReport tenreport, acViewPreview, , "[SoHD]=[Forms]![F HOADON(xuatkho)]![SoHD]"
2. Hoá đơn bán hμng
Chú ý: Khi ta xuất hμng, nếu muốn xuất cho một khách lẻ hay một doanh nghiệp hay một đại lý nμo đó mμ thông tin về khách hμng ch−a đ−ợc cập nhật trong mẩu tin thì ta phải cập nhật thông tin về khách hμng nμy vμo tr−ớc khi chọn các mặt hμng cần xuất bằng cách nhấn vμo nút Khách hàng ở trên Form.
Câu lệnh nh− sau:
Private Sub Label26_Click() Dim tenform As String
tenform = "F KHACHHANG"
Msgbox “ Ban co muon cap nhat thong tin ve khach hang khong?” DoCmd.OpenForm tenform, acNormal
End Sub
2.7. Form Đơn đặt hàng
Công ty sử dụng đơn đặt hμng để chuyển Fax đến đặt hμng cho một trụ sở sản xuất (Nhμ cung cấp) để nhập hμng về.
Tất cả các thông tin liên quan đến Đơn đặt hμng đều đ−ợc thể hiện hết ở trên Form. Chức năng của mỗi nút lệnh t−ơng tự nh− trên..
Câu lệnh nh− sau:
* Nút Hienthi: Dùng để hiển thị tất cả các thông tin mμ khách hμng muốn đặt hμng (cụ thể lμ các thông tin về khách hμng vμ các thông tin về hμng hoá mμ khách hμng đặt).
Private Sub CMD_XEM_Click() Dim tenreport As String
tenreport = "R ĐHANG"
DoCmd.OpenReport tenreport, acViewPreview, , "[SoHD]=[Forms]![F ĐHANG]![SoHD]"
End Sub
* Nút In: Để in ra mẫu tin đơn đặt hμng khi cần thiết.
Câu lệnh nh− sau:
Private Sub cmd_IN_Click() Dim tenreport As String tenreport = "R ĐHANG"
MsgBox "Ban co muon in mau tin nay khong ?" DoCmd.OpenReport tenreport, acViewNormal End Sub
T−ơng tự nh− Form Hoá đơn khi khách đặt hμng mμ thông tin về khách ch−a đ−ợc cập nhật thì ta phải cập nhật thông tin về khách hμng tr−ớc khi chọn các mặt hμng mμ khách đặt bằng cách nhấn vμo nút lệnh Khách hàng ở trên form.
Câu lệnh nh− sau:
Private Sub Label26_Click() Dim tenform As String
Msgbox “ Ban co muon cap nhat thong tin ve khach hang khong?” DoCmd.OpenForm tenform, acNormal
End Sub
2.8. Form Báo giá
- Khi khách hμng đến mua hμng thì cần phải biết thông tin về mặt hμng mμ
mình cần mua nh− thế nμo bằng cách thông qua tờ bảng Báo giá nμy nó sẽ cung cấp cho khách hμng đầy đủ.
Cụ thể: Ta vμo Menu Hồ sơ chọn Báo giá, xuất hiện Form Báo giá nh− sau:
Chú ý: T−ơng tự nh− Form Hoá đơn khi khách đặt hμng mμ thông tin về khách ch−a đ−ợc cập nhật thì ta phải cập nhật thông tin về khách hμng tr−ớc khi chọn các mặt hμng mμ khách đặt bằng cách nhấn vμo nút lệnh Khách hàng ở trên form
2.9. Form Phiếu giao hàng
Thông qua phiếu nμy ng−ời bán hμng có thể giao hμng cho khách hμng vμ phiếunμy đồng thời đảm nhận chức năng Kiêm phiếu bảo hành những mặt hμng mμ khách muạ
Chức năng của các nút lệnh t−ơng tự nh− trên.
2.10. Form Báo cáo nhập hàng
Ngμy nμo doanh nghiệp cũng phải nhập hμng về nên số l−ợng rất nhiều không kiểm soát hết, ngoμi ra đôi lúc còn phải báo cáo cho giám đốc biết số l−ợng hμng nhập về trong 1 tháng hoặc 1 quý nμo đó, do đó để hạn chế đ−ợc số l−ợng các mặt hμng ta báo cáo hμng từ ngμy nμo đó đến ngμy hiện tại để kiểm soát đ−ợc thông qua form sau:
* Chức năng thực hiện nh− sau:
* Nút lệnh Hiển thị: Để hiển thị ra thông tin về số hμng nhập về từ 1 tháng tr−ớc đến ngμy hiện tại ta thực hiên qua câu lệnh sau:
Private Sub CMD_XEM_Click() Dim Loc As String
Loc = "[Ngaynhap]>=[Forms]![FBC NHAP]!TN and [Ngaynhap]<=[Forms]![FBC NHAP]!DN"
DoCmd.OpenReport "RBCNHAP H", acPreview, , Loc End Sub
2.11. Form Báo cáo xuất hàng
* Chức năng của nó cũng t−ơng tự nh− Báo cáo nhập hμng. Cụ thể:
Vμo Menu Báo cáo chọn Xuất hàng, xuất hiện form nh− sau:
* Câu lệnh thực hiện nút lệnh Hiển thị nh− sau:
Private Sub CMD_XEM_Click() Dim Loc As String
Loc = "[Ngayban]>=[Forms]![FBC XUAT]!TN and [Ngayban]<=[Forms]![FBC XUAT]!DN"
Sau khi ta nhấn nút Hiển thị xong sẽ hiển thị ra thông tin tất cả các mặt hμng đã xuất từ một ngμy nμo đó đến ngμy hiện tạị
2.12. Form Doanh thu
Báo cáo doanh thu thu đ−ợc của tất cả các mặt hμng trong kho hoặc doanh thu của một mặt hμng cụ thể nμo đó theo 1 tháng hoặc 1 quý.
Cách thực hiện: Vμo Menu Báo cáo chọn Doanh thu, xuất hiện form sau:
Khi form xuất hiện sẽ có hai lựa chọn loại hình doanh thu + Doanh thu theo mặt hμng
+ Doanh thu tổng hợp
- Nếu ta lựa chọn Loại hình doanh thu “Doanh thu theo mặt hàng” vμ nhấn nút lệnh lựa chọn thì sẽ xuất hiện form sau:
Trên form đã hiển thị đầy đủ thông tin. Nếu ta muốn xem doanh thu của một mặt hμng nμo từ một ngμy nμo đó đến ngμy hiện tại thì ta click chọn vμo cột tên hμng muốn xem doanh thu, sau đó click chọn vμo nút lệnh Hiển thị sẽ hiển thị ra doanh thu về mặt hμng đó.
- Nếu ta lựa chọn loại hình doanh thu “Doanh thu tổng hợp” vμ nhấn nút lệnh
Lựa chọn sẽ xuất hiện Form sau:
Chức năng trên form nμy cũng t−ơng tự nh− form báo cáo nhập/xuất hμng.
2.13. F Tồn hàng
Nhằm để thống kê xem (hằng ngμy, hμng tuần, hμng tháng, hμng năm) số hμng còn tồn lại trong kho lμ bao nhiêu, mặt hμng nμo bán chạy nhất vμ mặt hμng nμo còn tồn lại nhiều nhất,
- Ta lựa chọn kiểu hμng tồn (có thể lμ tồn theo đơn vị mặt hμng hoặc có thể lμ số l−ợng hμng tồn tổng hợp trong kho) vμ ta sẽ biết đ−ợc hμng tồn lại trong kho lμ bao nhiêụ
2.14. Công nợ
Khi tham gia hoạt động kinh doanh thì không tránh khỏi nợ (có thể đó lμ khách hμng nợ công ty nh−ng cũng có thể lμ công ty nợ nhμ cung cấp), nh−ng để nắm bắt đ−ợc các con số nợ hằng ngμy thì ta phải lập ra báo cáo công nợ.
Cách lμm nh− sau: Vμo Menu Công nợ/Công nợ, xuất hiện:
2: Chi tiết công nợ nhμ cung cấp
Ch−ơng IV
Đánh giá Kết quả đạt đ−ợc vμ h−ớng nghiên cứu phát triển
Ị Đánh giá kết quả đạt đ−ợc
Qua quá trình tìm hiểu nghiên cứu đề tμi, em đã đ−a ra đ−ợc ứng dụng ch−ơng trình “ Quản lý bán hμng”
- Cho phép nhập/xuất hμng theo đơn đặt hμng - Quản lý việc mua bán nhập xuất.
- Xử lý thống kế theo yêu cầu nh−: Đơn đặt hμng, Phiếu giao hμng, Báo giá,
- Cho phép tìm kiếm, tra cứu hμng hoá.
IỊ H−ớng nghiên cứu phát triển