Thứ Hai, 25 tháng 1, 2016

Đồ án quản lý bán hàng với phần mềm Access



M ỤC L ỤC
­­­

LỜI NÓI  ĐẦU .............................................................................TRANG 4

PHÂN I: TỔNG QUAN BÀI TOÁN......................................................
       
CHƯƠNG I: NHIỆM VỤ, MỤC TIÊU, KHẢO SÁT.....................TRANG 5
CHƯƠNG II: CƠ SỞ LÝ THYẾT VÀ CÔNG CỤ PHÁT TRIỂN.TRANG 8
CHƯƠNG III: MÔ HÌNH HOÁ DỮ LIỆU................................... TRANG 12
CHƯƠNG IV: MÔ HÌNH HOÁ XỬ LÝ....................................... TRANG 15
CHƯƠNG V: AN TOÀN DỮ LIỆU.............................................. TRANG 23

 PHẦN II: CÀI ĐẶT HỆ THỐNG.........................................................................
       
        CHƯƠNG I: MÔ TẢ HỆ THỐNG................................................ TRANG 24
        CHƯƠNG II: CÀI ĐẶT VÀ THIẾT KẾ CHƯƠNG TRÌNH........ TRANG 26

KẾT LUẬN.................................................................................... TRANG 41
HƯỚNG PHÁT TRIỂN ................................................................ TRANG 42
TÀI LIỆU THAM KHẢO.............................................................. TRANG 43


PHẦN I
I. Giới thiệu chương trình:
            Chương trình quản lý bán hàng sẽ giúp các cửa hàng giải quyết được các công việc được một cách nhanh chóng và chính xác hơn so với công việc tìm kiếm, tra cứu… bằng thủ công.
            Chương trình viết bằng ngôn ngữ Access dễ dàng sử dụng với mọi người không ràng về vi tính nhưng bạn cũng có thể tìm ra thông tin một cách nhanh chóng. Giao diện chương trình đơn giản  sử dụng ngôn ngữ tiếng Việt nên rất thuận lợi trong việc sử dụng.
            Khi có thao tác sai khi sử dụng chương trình thì chương trình có những câu thông báo lỗi để người dùng sữ lỗi, người ra chương trình còn phần hướng dẫn sử dụng để người dụng thuận tiện làm quen với chương trình trong lúc sử dụng.
II.Phân tích đề tài:
            Chương trình quản lý bán hàng  gồm các chức năng cơ bản sau:
            1.Thông tin về nhân viên và cho phép nhập thêm nhân viên mới.
            2.Thông tin về khách hàng cũ và nhập khách hàng mới.
            3.Thông tin về sản phẩm và nhập thêm sản phẩm mới.
            4.Thông tin về hóa đơn và lập thêm hóa đơn mới.
            5.Xem và in ấn các báo cáo thống kê về sản phẩm, hóa đơn, và khách hàng.
Giao diện chính của chương trình:


Nhóm giao diện chức năng:
a).Giao diện “Menu”:


b).Giao diện “Thông tin về nhân viên”:
 

c).Giao diện “Thông tin về khách hàng”:


d).Giao diện “Thông tin về sản phẩm”:


e).Giao diện “Thông tin vê hóa đơn”:



f).Giao diện  “Báo cáo thống kê”:


PHẦN II
NỘI DUNG CHƯƠNG TRÌNH

Chương 1: Thiết kế cơ sở dữ liệu cho chương trình:

I.Khởi động và thoát khỏi Microsoft Access:
1.Khởi động Microsoft Access:
            Có thể khởi động Microsoft Access theo nhiều cách:
-         Click chuột vào Start/Program/Microsoft office/Microsoft Access của Windows.
-         Nhấp kép chuột lên tập tin có phần mở rộng .MDB với biểu tượng của Microsoft Access .
Sau khi ra lệnh chạy chương trình Microsoft Access , thông thường màn hình xuất hiện cho phép chọn cách làm việc như sau:

-         Chọn “Blank database…” để bắt đầu mở tập tin Access mới.
2.Môi trường làm việc:

            Môi trường làm việc trên Access gồm các thành phần sau:
            - Hệ thống thực đơn Menu và các thanh công cụ Toolbar nơi thực hiện các lệnh khi cần.
            - Cơ sở tập tin Access đang làm việc bao gòm 7 phần: Tables, Queries, Forms, Reports, Pages, Macros, Modules.
3.Thoát khỏi Microsoft Access:
            Có thể thoát khỏi Microsoft Access bằng nhiều cách:
            - Mở thực đơn File/Exit.
            - Nhấn tổ hợp phím nóng Alt + F4.
            - Sử dụng nút Close trên cửa sổ Microsoft Access đang mở.
II.Thiết kế cơ sở dữ liệu Access:
            Click chuột vào các Tables chọn Design để tạo các Tables:
1.Table nhân viên (NHANVIEN):

Field Name
Data Type
Field Size
Format

MaNV
Text
6
>[Blue]
RequiredYes
HoNV
Text
25

Required Yes
TenNV
Text
12

Required Yes
GioiTinh
Yes/No


LooKup từ bảng GioiTinh
NgaySinh
Date/Time

Short Date
Required Yes
DiaChi
Text
50


DienThoai
Text
10



2.Table khách hàng (KHACHHANG):


Field Name
Data Type
Field Size
Format
Required
MaKH
Text
6
>[Blue]
Yes
HoTenKH
Text
40

Yes
DiaChi
Text
50


DienThoai
Text
10



3.Table Hóa đơn (HOADON):

Field Name
Data Type
Field Size
Format

MaHD
Number
Long Integer

Yes
MaKH
Text
6

Lookup từ bảng KHACHHANG
Requered Yes
MaNV
Text
6

Lookup từ bảng NHANVIEN
Requered Yes
NgayLapHD
Date/Time

Short Date

NgayNhanHang
Date/Time

Short Date



4.Table Sản phẩm (SANPHAM):

Field Name
Data Type
Field Size
Format
Required
MaSP
Text
6
>[red]
Yes
TenSP
Text
50

Yes
DonViTinh
Text
10


DonGia
Number
Double

Decimal place 2
Validation rule >0
Validation text “Phải là số dương”

            5.Table Chi tiết hóa đơn (CHITIETHD):

Field Name
Data Type
Field Size
Format

MaHD
Number
Long Integer

LooKup từ bảng HoaDon
Required Yes
MaSP
Text
6
>[red]
LooKup từ bảng SanPham
Required Yes
SoLuong
Number
Integer

Validation rule >0
Validation text “Phải là số dương”

6.Table Giới tính (GIOITINH)

Field Name
Data Type
Field Size
Format
Required
MaGT
Yes/No



TenGT
Text
50



II.Thiết kế quan hệ các Table:
Chương 2: Thiết kế - mã lệnh các Forms

I.Thiết kế giao diên chính:
1.Phần thiết kế Form “FRM_CHU”:
2.Thuộc tính của các đối tượng:

Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label1
Caption
ĐỒ ÁN TỐT NGHIỆP
Font
Vni-Times
Label
Name
Label2
Caption
ỦY BAN NHÂN DÂN TỈNH AN GIANG
TRƯỜNG CAO ĐĂNG NGHỀ AN GIANG
Font
Vni-Times
Label
Name
Label3
Caption
Giaùo vieân höôùng daãn: NGOÂ HÖÕU LEÃ
Hoïc vieân: PHAÏM NGOÏC THAØNH
                  HUYØNH VAÊN PHÖÔNG
Lôùp: TIN 11K - TÒNH BIEÂN – AG
Font
Vni-Times
Label
Name
Label4
Caption
Chương trình quản lý bán hàng
Font
Vni-Times
Command
Name
Command4
Caption
HƯỚNG DẪN SỬ DỤNG
Hyperlink Address
Huongdansudung.doc
Font
Vni-Times
Command
Name
Command5
Caption
VÀO MENU CHƯƠNG TRÌNH QUẢN LÝ
Font
Vni-Times
Command
Name
Command6
Caption
TRỞ VỀ DATABASE
Font
Vni-Times
Command
Name
Command7
Caption
TRỞ VỀ WINDOWS
Font
Vni-Times
Form
Caption
Chương trình quản lý bán hàng
Picture
Windows XP.jpg

3.Mã code:
Option Compare Database
Private Sub Command5_Click()
    DoCmd.OpenForm "mennu", acNormal, , , acFormEdit, acWindowNormal
    DoCmd.Close acForm, "FRM_CHU", acSaveYes
End Sub
---------------------------------------------------------
Private Sub Command6_Click()
    DoCmd.Close
End Sub
---------------------------------------------------------

Private Sub Command7_Click()
    DoCmd.Quit
End Sub

II.Thiết kế form “Menu”:
1.Phần thiết kế:

2.Thuộc tính các đối tượng:
Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label0
Caption
QUẢN LÝ BÁN HÀNG
Font
Vni-Times
Label
Name
Label20
Caption
CẬP NHẬT THÔNG TIN
Font
Vni-Times
Command
Name
Cmdnv
Caption
NHÂN VIÊN
Font
Vni-Times
Command
Name
Cmdkh
Caption
KHÁCH HÀNG
Font
Vni-Times
Command
Name
Cmdsp
Caption
SẢN PHẨM
Font
Vni-Times
Command
Name
Cmdhd
Caption
HÓA ĐƠN
Font
Vni-Times
Command
Name
Cmdbc
Caption
BÁO CÁO
Font
Vni-Times
Command
Name
Command21
Caption
QUAY LAI TRANG CHỦ
Font
Vni-Times
Form
Caption
Menu
Picture
Windows XP.jpg

3.Mã code:
Option Compare Database

Private Sub cmdhd_Click()
    DoCmd.OpenForm "hoadon", acNormal, , , acFormEdit, acWindowNormal
End Sub
---------------------------------------------------------

Private Sub cmdkh_Click()
    DoCmd.OpenForm "khachhang", acNormal, , , , acWindowNormal
End Sub
---------------------------------------------------------

Private Sub cmdnv_Click()
    DoCmd.OpenForm "nhanvien", acNormal, , , acFormEdit, acWindowNormal
End Sub
---------------------------------------------------------

Private Sub cmdsp_Click()
    DoCmd.OpenForm "sanpham", acNormal, , , acFormEdit, acWindowNormal
End Sub
---------------------------------------------------------

Private Sub cmdbc_Click()
    DoCmd.OpenForm "thongke", acNormal, , , acFormEdit, acWindowNormal
End Sub
---------------------------------------------------------

Private Sub Command21_Click()
    DoCmd.Close
    DoCmd.OpenForm "FRM_CHU", acNormal, , , acFormReadOnly, acWindowNormal
End Sub

III.Thiết kế form “NHANVIEN”:
1.Phần thiết kế:

2.Thuộc tính các đối tượng:

Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label14
Caption
THÔNG TIN VỀ NHÂN VIÊN
Font
Vni-Times
Label
Name
MaNV_Label
Caption
Mã nhân viên
Font
Vni-Times
Label
Name
GioiTinh_Label
Caption
Giới tính
Font
Vni-Times
Label
Name
DienThoai_Label
Caption
Điện thoại
Font
Vni-Times
Label
Name
HoNV_Label
Caption
Họ và lót
Font
Vni-Times
Label
Name
TenNV_Label
Caption
Tên
Font
Vni-Times
Label
Name
NgaySinh_Label
Caption
Ngày sinh
Font
Vni-Times
Label
Name
DiaChi_Label
Caption
Địa chỉ
Font
Vni-Times
Text
Name
MaNV
Control soure
MaNV
Font
Vni-Times
Text
Name
HoNV
Control soure
HoNV
Font
Vni-Times
Text
Name
TenNV
Control soure
TenNV
Font
Vni-Times
Text
Name
NgaySinh
Control soure
NgaySinh
Font
Vni-Times
Text
Name
DienThoai
Control soure
DienThoai
Font
Vni-Times
Text
Name
DiaChi
Control soure
DiaChi
Font
Vni-Times
Text
Name
Text29
Control soure
=[CurrentRecord] & "/" & Count(*)
Font
Vni-Times
Combo box
Name
GioiTinh
Control soure
GioiTinh
Font
Vni-Times
Command
Name
Cmddau
Caption
|<
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdtruoc
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdsau
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdcuoi
Caption
>|
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdthem1
Caption
Thê&m
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdsua1
Caption
&Sua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdxoa1
Caption
&Xoa
On click
[Event Procedure]
Font
VNI-Times
Command
Name
cmdghi1
Caption
&Ghi
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdboqua1
Caption
&Bo qua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Command16
Caption
&Thoat
On click
[Event Procedure]
Font
VNI-Times
Form
Record source
NHANVIEN
Caption
NHANVIEN
On current
[Event Procedure]
On load
[Event Procedure]

3.Mã code:
Option Compare Database
'sang mo nut
Private Sub sang_mo_nut(sang As Boolean)
    cmdthem1.Enabled = sang
    cmdsua1.Enabled = sang
    cmdxoa1.Enabled = sang
    cmdghi1.Enabled = Not sang
    cmdboqua1.Enabled = Not sang
End Sub
--------------------------------
'Khoa mo dieu khien
Private Sub khoa_mo_dieu_khien(khoa As Boolean)
    MaNV.Locked = khoa
    HoNV.Locked = khoa
    TenNV.Locked = khoa
    GioiTinh.Locked = khoa
    NgaySinh.Locked = khoa
    DienThoai.Locked = khoa
    DiaChi.Locked = khoa
End Sub
--------------------------------

'khoa nut di chuyen
Private Sub khoa_nut_di_chuyen(khoa As Boolean)
    cmddau.Enabled = khoa
    cmdtruoc.Enabled = khoa
    cmdsau.Enabled = khoa
    cmdcuoi.Enabled = khoa
End Sub
--------------------------------

Private Sub cmdboqua1_Click()
    MaNV.SetFocus
    Me.Undo
    khoa_nut_di_chuyen True
    sang_mo_nut True
    khoa_mo_dieu_khien True
    If IsNull(MaNV) = True Then
        DoCmd.GoToRecord , , acPrevious
    End If
    Call Form_Current
    End Sub
--------------------------------
Private Sub cmdtruoc_Click()
DoCmd.GoToRecord , , acPrevious
End Sub
--------------------------------
Private Sub cmdsau_Click()
DoCmd.GoToRecord , , acNext
End Sub
--------------------------------

Private Sub cmdcuoi_Click()
DoCmd.GoToRecord , , acLast
End Sub
--------------------------------

Private Sub cmddau_Click()
DoCmd.GoToRecord , , acFirst
End Sub
--------------------------------

Private Sub cmdghi1_Click()
    If Me.NewRecord Then
        If IsNull(MaNV) = True Then
            MsgBox "Ma nhan vien bi rong"
            Exit Sub
    End If
    If DCount("manv", "nhanvien", "manv='" & MaNV & "'") > 0 Then
        MsgBox "Ma nhan vien da co"
        Exit Sub
    End If
    If IsNull(HoNV) = True Then
        MsgBox "Ho nhan vien khong duoc phep rong"
        Exit Sub
    End If
    If IsNull(TenNV) = True Then
        MsgBox "Ten nhan vien khong duoc phep rong"
        Exit Sub
    End If
End If
    DoCmd.RunCommand acCmdSaveRecord   
    MaNV.SetFocus      
    sang_mo_nut True
    khoa_mo_dieu_khien True
    Call Form_Current
End Sub
--------------------------------

Private Sub cmdsua1_Click()
    HoNV.SetFocus
    khoa_mo_dieu_khien False
    MaNV.Locked = True
    sang_mo_nut False
    khoa_nut_di_chuyen False
    End Sub
--------------------------------

Private Sub cmdthem1_Click()
    DoCmd.GoToRecord , , acNewRec
    MaNV.SetFocus
    khoa_mo_dieu_khien False
    sang_mo_nut False
    khoa_nut_di_chuyen False
End Sub
--------------------------------

Private Sub cmdxoa1_Click()
    If MsgBox("Ban co muon xoa nhan vien co ma so" & " " & MaNV & " " & "khong ?", vbQuestion + vbYesNo) = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings False
    End If
    If IsNull(MaNV) = True Then
       DoCmd.GoToRecord , , acPrevious
       End If
  End Sub
--------------------------------

Private Sub Command16_Click()
On Error GoTo Err_Command16_Click
    DoCmd.Close
Exit_Command16_Click:
    Exit Sub
Err_Command16_Click:
    MsgBox Err.Description
    Resume Exit_Command16_Click
   End Sub
--------------------------------

Private Sub Form_Current()
MaNV.SetFocus
    khoa_nut_di_chuyen True
    If CurrentRecord = 1 Then 
        cmddau.Enabled = False
        cmdtruoc.Enabled = False
    ElseIf CurrentRecord = RecordsetClone.RecordCount Then
        cmdsau.Enabled = False
        cmdcuoi.Enabled = False
    End If
End Sub
--------------------------------

Private Sub Form_Load()
    MaNV.SetFocus
    sang_mo_nut True
    khoa_mo_dieu_khien True
End Sub


IV.Thiết kế form “KHACHHANG”:
1.Phần thiết kế:

2.Thuộc tính các đối tượng:
Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label8
Caption
THÔNG TIN VỀ KHÁCH HÀNG
Font
Vni-Times
Label
Name
MaKH_Label
Caption
Mã &khách hàng
Font
Vni-Times
Label
Name
HoTenKH_Label
Caption
&Họ tên khách hàng
Font
Vni-Times
Label
Name
DiaChi_Label
Caption
Địa &chỉ
Font
Vni-Times
Label
Name
DienThoai_Label
Caption
Điện Th&oại
Font
Vni-Times
Text
Name
MaKH
Control soure
MaKH
Font
Vni-Times
Text
Name
HoTenKH
Control soure
HoTenKH
Font
Vni-Times
Text
Name
DiaChi
Control soure
DiaChi
Font
Vni-Times
Text
Name
DienThoai
Control soure
DienThoai
Font
Vni-Times
Text
Name
Text14
Control soure
=[CurrentRecord] & "/" & Count(*)
Font
Vni-Times
Command
Name
Cmddau2
Caption
|<
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdtruoc2
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdsau2
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdcuoi2
Caption
>|
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdthem2
Caption
Thê&m
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdsua2
Caption
&Sua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdxoa2
Caption
&Xoa
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdghi2
Caption
&Ghi
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdboqua2
Caption
&Bo qua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Command9
Caption
&Thoat
On click
[Event Procedure]
Font
VNI-Times
Form
Record source
KHACHHANG
Caption
KHACHHANG
On current
[Event Procedure]
On load
[Event Procedure]

3.Mã code:
Option Compare Database
'sang mo nut
Private Sub sang_mo_nut(sang As Boolean)
    cmdthem2.Enabled = sang
    cmdsua2.Enabled = sang
    cmdxoa2.Enabled = sang
    cmdghi2.Enabled = Not sang
    cmdboqua2.Enabled = Not sang
End Sub
------------------------------
'khoa dieu khien
Private Sub khoa_mo_dieu_khien(khoa As Boolean)
    MaKH.SetFocus
    MaKH.Locked = khoa
    HoTenKH.Locked = khoa
    DiaChi.Locked = khoa
    DienThoai.Locked = khoa
End Sub
------------------------------
'khoa nut di chuyen
Private Sub khoa_nut_di_chuyen(khoa As Boolean)
    cmddau2.Enabled = khoa
    cmdtruoc2.Enabled = khoa
    cmdsau2.Enabled = khoa
    cmdcuoi2.Enabled = khoa
End Sub
------------------------------

Private Sub cmdboqua2_Click()
    MaKH.SetFocus
    Me.Undo
    sang_mo_nut True
    khoa_mo_dieu_khien True
    If IsNull(MaKH) = True Then
        DoCmd.GoToRecord , , acPrevious
    End If
    Call Form_Current
End Sub
------------------------------

Private Sub cmdcuoi2_Click()
    DoCmd.GoToRecord , , acLast
End Sub
------------------------------

Private Sub cmddau2_Click()
    DoCmd.GoToRecord , , acFirst
End Sub
------------------------------
Private Sub cmdsau2_Click()
    DoCmd.GoToRecord , , acNext
End Sub
------------------------------
Private Sub cmdtruoc2_Click()
    DoCmd.GoToRecord , , acPrevious
End Sub
------------------------------

Private Sub cmdghi2_Click()
    If Me.NewRecord Then
        If IsNull(MaKH) = True Then
            MsgBox "Ma khach hang bi rong"
            Exit Sub
        End If
        If DCount("makh", "khachhang", "makh='" & MaKH & "'") > 0 Then
            MsgBox "Ma khach hang da co"
            Exit Sub
        End If
        If IsNull(HoTenKH) = True Then
            MsgBox "Ten khach hang bi rong"
            Exit Sub
        End If
    End If
    DoCmd.RunCommand acCmdSaveRecord
    MaKH.SetFocus
    sang_mo_nut True
    khoa_mo_dieu_khien True
    Call Form_Current
End Sub
------------------------------

Private Sub cmdsua2_Click()
    MaKH.SetFocus
    khoa_mo_dieu_khien False
    sang_mo_nut False
    khoa_nut_di_chuyen True
End Sub
------------------------------

Private Sub cmdthem2_Click()
    DoCmd.GoToRecord , , acNewRec
    MaKH.SetFocus
    khoa_mo_dieu_khien False
    sang_mo_nut False
    khoa_nut_di_chuyen False
End Sub
------------------------------

Private Sub cmdxoa2_Click()
    If MsgBox("Ban co muon xoa khach hang co ma so la" & " " & MaKH & " " & "khong?", vbQuestion + vbYesNo) = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings True
    End If
    If IsNull(MaKH) = True Then
        DoCmd.GoToRecord , , acPrevious
    End If
End Sub
------------------------------

Private Sub Command9_Click()
On Error GoTo Err_Command9_Click
    DoCmd.Close
Exit_Command9_Click:
    Exit Sub
Err_Command9_Click:
    MsgBox Err.Description
    Resume Exit_Command9_Click
    End Sub
------------------------------

Private Sub Form_Current()
    MaKH.SetFocus
    khoa_nut_di_chuyen True
    If CurrentRecord = 1 Then
        cmddau2.Enabled = False
        cmdtruoc2.Enabled = False
    ElseIf CurrentRecord = RecordsetClone.RecordCount Then
        cmdsau2.Enabled = False
        cmdcuoi2.Enabled = False
    End If
End Sub
------------------------------

Private Sub Form_Load()
    MaKH.SetFocus
    sang_mo_nut True
    khoa_mo_dieu_khien True
End Sub

IV.Thiết kế form “SANPHAM”:
1.Phần thiết kế:

2.Thuộc tính các đối tượng:

Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label8
Caption
THÔNG TIN VỀ SẢN PHẨM
Font
Vni-Times
Label
Name
MaSP_Label
Caption
Mã sản &phẩm
Font
Vni-Times
Label
Name
TenSP_Label
Caption
Tê&n sản phẩm
Font
Vni-Times
Label
Name
DonViTinh_Label
Caption
Đơn &vị tính
Font
Vni-Times
Label
Name
DonGia_Label
Caption
Đơn gi&á
Font
Vni-Times
Text
Name
MaSP
Control soure
MaSP
Font
Vni-Times
Text
Name
TenSP
Control soure
TenSP
Font
Vni-Times
Text
Name
DonViTinh
Control soure
DonViTinh
Font
Vni-Times
Text
Name
DonGia
Control soure
DonGia
Font
Vni-Times
Text
Name
Text29
Control soure
=[CurrentRecord] & "/" & Count(*)
Font
Vni-Times
Command
Name
Cmddau3
Caption
|<
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdtruoc3
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdsau3
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdcuoi3
Caption
>|
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdthem3
Caption
Thê&m
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdsua3
Caption
&Sua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdxoa3
Caption
&Xoa
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdghi3
Caption
&Ghi
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdboqua3
Caption
&Bo qua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Command10
Caption
&Thoat
On click
[Event Procedure]
Font
VNI-Times
Form
Record source
SANPHAM
Caption
SANPHAM
On current
[Event Procedure]
On load
[Event Procedure]

3.Mã code:
Option Compare Database
'sang mo nut
Private Sub sang_mo_nut(sang As Boolean)
    cmdthem3.Enabled = sang
    cmdxoa3.Enabled = sang
    cmdsua3.Enabled = sang
    cmdghi3.Enabled = Not sang
    cmdboqua3.Enabled = Not sang
End Sub
-----------------------------------------
'khoa nut di chuyen
Private Sub khoa_nut_di_chuyen(khoa As Boolean)
    cmddau3.Enabled = khoa
    cmdtruoc3.Enabled = khoa
    cmdsau3.Enabled = khoa
    cmdcuoi3.Enabled = khoa
End Sub
-----------------------------------------
'khoa dieu khien
Private Sub khoa_mo_dieu_khien(khoa As Boolean)
    MaSP.Locked = khoa
    TenSP.Locked = khoa
    DonViTinh.Locked = khoa
    DonGia.Locked = khoa
End Sub
-----------------------------------------

Private Sub cmdboqua3_Click()
    MaSP.SetFocus
    Me.Undo
    If IsNull(MaSP) = True Then
        DoCmd.GoToRecord , , acPrevious
    End If
    sang_mo_nut True
    khoa_mo_dieu_khien True
    Call Form_Current
End Sub
-----------------------------------------

Private Sub cmdcuoi3_Click()
    DoCmd.GoToRecord , , acLast
End Sub
-----------------------------------------

Private Sub cmddau3_Click()
    DoCmd.GoToRecord , , acFirst
End Sub
-----------------------------------------
Private Sub cmdsau3_Click()
    DoCmd.GoToRecord , , acNext
End Sub
-----------------------------------------

Private Sub cmdtruoc3_Click()
    DoCmd.GoToRecord , , acPrevious
End Sub
----------------------------------------

Private Sub cmdghi3_Click()
    If Me.NewRecord Then
        If IsNull(MaSP) = True Then
            MsgBox "Ma san pham bi rong"
            Exit Sub
        End If
        If IsNull(TenSP) = True Then
            MsgBox "Ten san pham bi rong"
            Exit Sub
        End If
    End If
    DoCmd.RunCommand acCmdSaveRecord
    MaSP.SetFocus
    sang_mo_nut True
    khoa_mo_dieu_khien True
    Call Form_Current
End Sub
-----------------------------------------

Private Sub cmdsua3_Click()
    MaSP.SetFocus
    khoa_mo_dieu_khien False
    sang_mo_nut False
    khoa_nut_di_chuyen False
End Sub
-----------------------------------------

Private Sub cmdthem3_Click()
    DoCmd.GoToRecord , , acNewRec
    MaSP.SetFocus
    khoa_mo_dieu_khien False
    sang_mo_nut False
    khoa_nut_di_chuyen False
End Sub
-----------------------------------------


Private Sub cmdxoa3_Click()
    If MsgBox("Ban co muon xoa san pham co ma so la" & " " & MaSP & " " & "khong?", vbQuestion + vbYesNo) = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings True
    End If
    If IsNull(MaSP) = True Then
        DoCmd.GoToRecord , , acPrevious
    End If
End Sub
----------------------------------------

Private Sub Command10_Click()
On Error GoTo Err_Command10_Click
    DoCmd.Close
Exit_Command10_Click:
    Exit Sub
Err_Command10_Click:
    MsgBox Err.Description
    Resume Exit_Command10_Click  
End Sub
----------------------------------------

Private Sub Form_Current()
    MaSP.SetFocus
    khoa_nut_di_chuyen True
    If CurrentRecord = 1 Then
        cmddau3.Enabled = False
        cmdtruoc3.Enabled = False
   ElseIf CurrentRecord = RecordsetClone.RecordCount Then
        cmdsau3.Enabled = False
        cmdcuoi3.Enabled = False
    End If
End Sub
----------------------------------------
Private Sub Form_Load()
    MaSP.SetFocus
    khoa_mo_dieu_khien True
    sang_mo_nut True
End Sub

IV.Thiết kế form “HOADON”:
1.Phần thiết kế:

2.Thuộc tính các đối tượng:

Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label12
Caption
THÔNG TIN VỀ HÓA ĐƠN VÀ CHI TIẾT HÓA ĐƠN
Font
Vni-Times
Label
Name
MaHD_Label
Caption
Mã &hóa đơn
Font
Vni-Times
Label
Name
MaKH_Label
Caption
Mã &khách hàng
Font
Vni-Times
Label
Name
NgayLapHD_Label
Caption
Ngày &lập hóa đơn
Font
Vni-Times
Label
Name
MaNV_Label
Caption
Mã nhân &viên
Font
Vni-Times
Label
Name
NgayNhanHang_Label
Caption
Ngày nhận h&àng
Font
Vni-Times
Label
Name
CHITIETHD Subform_Label
Caption
Chi tiết hóa đơn
Font
Vni-Times
Text
Name
MaHD
Control soure
MaHD
Font
Vni-Times
Text
Name
MaKH
Control soure
MaKH
Font
Vni-Times
Text
Name
MaNV
Control soure
MaNV
Font
Vni-Times
Text
Name
NgayLapHD
Control soure
NgayLapHD
Font
Vni-Times
Text
Name
NgayNhanHang
Control soure
NgayNhanHang
Font
Vni-Times
Text
Name
Text14
Control soure
=[CurrentRecord] & "/" & Count(*)
Font
Vni-Times
Command
Name
Cmddau3
Caption
|<
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdtruoc3
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdsau4
Caption
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdcuoi4
Caption
>|
On click
[Event Procedure]
Font
Times New Roman EVT
Command
Name
Cmdthem4
Caption
Thê&m
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdsua4
Caption
&Sua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdxoa4
Caption
&Xoa
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdghi4
Caption
&Ghi
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Cmdboqua4
Caption
&Bo qua
On click
[Event Procedure]
Font
VNI-Times
Command
Name
Command13
Caption
&Thoat
On click
[Event Procedure]
Font
VNI-Times
Form
Record source
HOADON
Caption
HOADON
On current
[Event Procedure]
On load
[Event Procedure]
Before Update
[Event Procedure]
Subform
Name
CHITIETHD Subform
Record source
CHITIETHD Subform
Link child fields
MaHD
Link master fields
MaHD

3.Mã code:
Option Compare Database

Private Sub cmdboqua4_Click()
    MaHD.SetFocus
    Me.Undo
    sang_mo_nut True
    khoa_mo_dieu_khien True
    If IsNull(MaKH) = True Then
        DoCmd.GoToRecord , , acPrevious
    End If
    Call Form_Current
End Sub
-------------------------------------------------

Private Sub cmdcuoi4_Click()
    DoCmd.GoToRecord , , acLast
End Sub
-------------------------------------------------

Private Sub cmddau4_Click()
    DoCmd.GoToRecord , , acFirst
End Sub
-------------------------------------------------
Private Sub cmdsau4_Click()
    DoCmd.GoToRecord , , acNext
End Sub
-------------------------------------------------
Private Sub cmdtruoc4_Click()
    DoCmd.GoToRecord , , acPrevious
End Sub
-------------------------------------------------

Private Sub cmdghi4_Click()
    If Me.NewRecord Then
        If IsNull(MaHD) = True Then
            MsgBox "Ma hoa don bi rong"
            Exit Sub
        End If    
        If IsNull(MaKH) = True Then
            MsgBox "Ma khach hang bi rong"
            Exit Sub
        End If
        If IsNull(MaNV) = True Then
            MsgBox "Ma nhan vien bi rong"
            Exit Sub
        End If
        If IsNull(NgayLapHD) = True Then
            MsgBox "Ngay lap hoa don bi rong"
            Exit Sub
        End If
        If IsNull(NgayNhanHang) = True Then
            MsgBox "Ngay nhan hang bi rong"
            Exit Sub
        End If
    End If
    DoCmd.RunCommand acCmdSaveRecord
    MaHD.SetFocus
    sang_mo_nut True
    khoa_mo_dieu_khien True
    Call Form_Current
End Sub
-------------------------------------------------

Private Sub cmdsua4_Click()
    MaKH.SetFocus
    khoa_mo_dieu_khien False
    MaHD.Locked = True
    sang_mo_nut False
    khoa_mo_nut_di_chuyen False
End Sub
-------------------------------------------------

Private Sub cmdthem4_Click()
    DoCmd.GoToRecord , , acNewRec
    Me.MaHD = RecordsetClone.RecordCount + 1
    MaHD.SetFocus
    khoa_mo_dieu_khien False
    sang_mo_nut False
    khoa_mo_nut_di_chuyen False
End Sub
-------------------------------------------------

Private Sub Command9_Click()
    DoCmd.Close
End Sub
-------------------------------------------------

Private Sub cmdxoa4_Click()
    If MsgBox("Ban co muon xoa hoa don co ma so la" & " " & MaHD & " " & "khong?", vbQuestion + vbYesNo) = vbYes Then
        DoCmd.SetWarnings False
        DoCmd.RunCommand acCmdDeleteRecord
        DoCmd.SetWarnings True
    End If
    If IsNull(MaKH) = True Then
        DoCmd.GoToRecord , , acPrevious
    End If
End Sub
-------------------------------------------------

Private Sub Command13_Click()
On Error GoTo Err_Command13_Click
    DoCmd.Close
Exit_Command13_Click:
    Exit Sub
Err_Command13_Click:
    MsgBox Err.Description
    Resume Exit_Command13_Click  
End Sub
-------------------------------------------------

'sang mo nut
Private Sub sang_mo_nut(sang As Boolean)
    cmdthem4.Enabled = sang
    cmdsua4.Enabled = sang
    cmdxoa4.Enabled = sang
    cmdghi4.Enabled = Not sang
    cmdboqua4.Enabled = Not sang
End Sub
-------------------------------------------------

'khoa nut di chuyen
Private Sub khoa_mo_nut_di_chuyen(khoa As Boolean)
    cmddau4.Enabled = khoa
    cmdtruoc4.Enabled = khoa
    cmdsau4.Enabled = khoa
    cmdcuoi4.Enabled = khoa
End Sub
-------------------------------------------------

'khoa dieu khien
Private Sub khoa_mo_dieu_khien(khoa As Boolean)
    MaHD.Locked = khoa
    MaKH.Locked = khoa
    MaNV.Locked = khoa
    NgayLapHD.Locked = khoa
    NgayNhanHang.Locked = khoa
End Sub
-------------------------------------------------

Private Sub Form_BeforeUpdate(Cancel As Integer)
    'kiem tra ma hoa don
    If Me.NewRecord Then
        If DCount("*", "hoadon", "mahd=" & MaHD) > 0 Then
            MsgBox "Ma hoa don nay da co"
            Cancel = True
            Exit Sub
        End If
        If IsNull(MaKH) = True Then
            MsgBox "Ma khach hang bi rong"
            Cancel = True
            Exit Sub
        End If
    End If
End Sub
-------------------------------------------------

Private Sub Form_Current()
    MaHD.SetFocus
    khoa_mo_nut_di_chuyen True
    If CurrentRecord = 1 Then
        cmddau4.Enabled = False
        cmdtruoc4.Enabled = False
    ElseIf CurrentRecord = RecordsetClone.RecordCount Then
        cmdsau4.Enabled = False
        cmdcuoi4.Enabled = False
    End If
End Sub
-------------------------------------------------
Private Sub Form_Load()
    MaHD.SetFocus
    khoa_mo_dieu_khien True
    sang_mo_nut True
End Sub
IV.Thiết kế form “CHITIETHD subform”:
1.Phần thiết kế:

2.Thuộc tính các đối tượng:

Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label13
Caption
Mã sản phẩm
Font
Vni-Times
Label
Name
TenSP_Label
Caption
Tên sản phẩm
Font
Vni-Times
Label
Name
SoLuong_Label
Caption
Số lượng
Font
Vni-Times
Label
Name
Label9
Caption
Đơn giá
Font
Vni-Times
Label
Name
Label10
Caption
Thành tiền
Font
Vni-Times
Label
Name
Label23
Caption
Tổng thành tiền
Font
Vni-Times
Combo box
Name
MaSP
Control soure
MaSP
Font
Vni-Times
Text
Name
TenSP
Control soure
TenSP
Font
Vni-Times
Text
Name
SoLuong
Control soure
SoLuong
Font
Vni-Times
Text
Name
DonGia
Control soure
DonGia
Font
Vni-Times
Text
Name
ThanhTien
Control soure
ThanhTien
Font
Vni-Times
Text
Name
Text21
Control soure
=sum([ThanhTien])
Font
Vni-Times
Form
Caption
CHITIETHD Subform
Control soure
SELECT CHITIETHD.MaHD, CHITIETHD.SoLuong, SANPHAM.DonGia, [soluong]*[dongia] AS ThanhTien, SANPHAM.TenSP, CHITIETHD.MaSP FROM SANPHAM INNER JOIN CHITIETHD ON SANPHAM.MaSP=CHITIETHD.MaSP;
Default view
Continuous Forms

IV.Thiết kế form “THONGKE”:
1.Phần thiết kế:

2.Thuộc tính các đối tượng:

Đối tượng
Các thuộc tính
Giá trị
Label
Name
Label0
Caption
BÁO CÁO THỐNG KÊ
Font
Vni-Times
Label
Name
Label10
Caption
Hóa đơn số
Font
Vni-Times
Label
Name
Label12
Caption
Tháng
Font
Vni-Times
Label
Name
Label17
Caption
Năm
Font
Vni-Times
Label
Name
Label2
Caption
Báo cáo
Font
Vni-Times
Label
Name
Label4
Caption
Tất cả sản phẩm đã bán
Font
Vni-Times
Label
Name
Label6
Caption
Hóa đơn bán hàng
Font
Vni-Times
Label
Name
Label8
Caption
Khách hàng mua trong tháng
Font
Vni-Times
Text
Name
Hds
Visible
Yes
Text
Name
Thang
Visible
Yes
Text
Name
Nam
Visible
Yes
Option Group
Name
Chon
On click
[Event Procedure]
Option
Name
Option3
Option value
1
Option
Name
Option5
Option value
2
Option
Name
Option7
Option value
3
Command
Name
Xem
Caption
&Xem
On click
[Event Procedure]
Font
Vni-Times
Command
Name
In
Caption
&In
On click
In.in
Font
Vni-Times
Command
Name
Command15
Caption
&Thoát
On click
[Event Procedure]
Font
Vni-Times
Form
Caption
Thongke
On load
[Event Procedure]

3.Mã code:
Option Compare Database

Private Sub chon_Click()
    Select Case chon
        Case 1:
            hds.Visible = False
            thang.Visible = False
            nam.Visible = False
        Case 2:
            hds.Visible = True
            thang.Visible = False
            nam.Visible = False
            hds.SetFocus
        Case 3:
            hds.Visible = False
            thang.Visible = True
            nam.Visible = True
            thang.SetFocus
    End Select
End Sub
----------------------------------------------------
Private Sub Command15_Click()
    DoCmd.Close
End Sub
----------------------------------------------------

Private Sub Form_Load()
    hds.Visible = False
    thang.Visible = False
    nam.Visible = False
End Sub
----------------------------------------------------

Private Sub xem_Click()
    Select Case chon
        Case 1:
            DoCmd.OpenReport "R_thongke", acViewPreview, , , acWindowNormal
        Case 2:
            DoCmd.OpenReport "R_hoadon", acViewPreview, , , acWindowNormal
        Case 3:
            DoCmd.OpenReport "R_thang", acViewPreview, , , acWindowNormal     
    End Select
End Sub
V.Thiết kế Macros:
Macros in:
Thuộc tính:
Macros Name
Conditions
Action
Action Arguments
in
[chon]=1
OpenReport
Report Name: R_thongke
View: print

[chon]=2
OpenReport
Report Name: R_HoaDon
View: print

[chon]=3
OpenReport
Report Name: R_thang
View: print

PHẦN III

KẾT LUẬN

            Qua quá trình làm đồ án đã giúp chúng em biết thêm khá nhiều kiến thức và kinh nghiệm trong quá trình thực hiện một chuyên đề mà trong suốt quá trình học tập vì hạn chế thời gian chúng em không bao giờ thực hiện được. Đây là những kinh nghiệm đầu tiên và rất quan trọng để giúp chúng em hiểu rỏ thêm về Access và cũng là vốn kiến thức căn bản giúp chúng em có thể sau này tự nâng cao hơn.
          Trong quá trình thực hiện chúng em gặp không ít khó khăn, nhưng nhờ được sự chỉ dẫn nhiệt tình giáo viên hướng dẫn mà chúng em mới hoàn thành kịp đồ án này.
          Chúng em rất mong chương trình “Quản lý bán hàng” sẽ giúp ích cho việc quản lý . Nhưng vì chúng em còn thiếu kinh nghiệm về ngôn ngữ lập trình nên chương trình chỉ đủ đáp ứng theo yêu cầu của đề tài đặt ra mà không ứng dụng rộng rãi được.
          Chương trình “Quản lý bán hàng” chỉ được thực hiện một số thao tác cơ bản, dữ liệu đơn giản và còn nhiều hạn chế.
DOWNLOAD ĐỒ ÁN+PHẦN MỀM


Không có nhận xét nào:

Đăng nhận xét

Lên đầu trang
Vào giữa trang
Xuống cuối trang