Chú ý: Khóa chính có thể là một hoặc nhiều trường Đặt khóa chính cho bảng : Các mục khóa dùng để thiết lập trên một hay nhiều Field dùng để nhận diện cácmẫu tin của một Table hay dùng để
Trang 1Đề Tài :
VIẾT CHƯƠNG TRÌNH QUẢN LÝ BÁN HÀNG
ĐỀ CHUNG
A LÍ DO CHỌN ĐỀ TÀI
Cách đây hơn 20 năm khi nước ta còn lạc hậu chưa áp dụng công nghệ thông tinvào các khâu quản lý, như quản lý nhân sự, quản lý lương, quản lý hang hóa trongcác doanh nghiệp quốc doanh, các thủ kho thường phải trang bị cho mình một cuốn
vở thật to, thật dày để có thể ghi chép tất cả số liệu vào trong đó Mỗi khi có sai sót
gì thì phải ngồi lật từng trang để dò tìm, nếu cuốn vở đó còn nguyên vẹn thì việctìm kiếm còn nhanh chóng nhưng nếu bị mối mọt ăn thì xem như dữ liệu mất hết
Và việc truy xuất dữ liệu bằng phương pháp thủ công không những rất chậm màcòn có nhiều thiếu sót
Nhưng từ khi các doanh nghiệp bắt đầu áp dụng các phần mềm tin học vào khâuquản lý, các công việc như nhập xuất, lưu trữ đã trở nên nhanh hơn và độ an toàncủa dữ liệu cũng trở nên cao hơn Có rất nhiều hệ quản trị cơ sở dữ liệu như: SQL,
My SQL, ORACAL, Microsoft Access Phần mềm được sử dụng nhiều nhất chocác doanh nghiệp nhỏ là Microsoft Access, vì đây là một trong bốn phần mềm ứngdụng trong bộ Microsoft Office (Word, Excel, PowerPoint, Access) chuyên vềquản trị cơ sở dữ liệu (CSDL) cho các doanh nghiệp vừa và nhỏ
Sau đây chúng em xin lấy một ví dụ về quản lí cơ sở dữ liệu tại môt cửa hàng bánđiện thoại di động
B GIỚI THIỆU
I GIỚI THIỆU MICROSOFT ACCESS
Microsoft Access là một trong bốn phần mềm ứng dụng của bộ Microsoft Officechuyên về quản trị cơ sở dữ liệu (CSDL)
Trang 2Khởi động:Click nút Start -> program -> Microsoft Office -> nhấp vào MicrosoftAccess
Màn hình làm việc:
Chọn File -> New -> nhấp chọn Blank DataBase ở bên phải màn hình làm việc:
Trang 3II CƠ SỞ DỮ LIỆU TRONG ACCESS:
Mỗi CSDL của Access được lưu thành một tập tin và có phần mở rộng là mdb(Manage DataBase)
Mỗi CSDL của Access gồm 6 thành phần:
Table – Bảng dữ liệu: Là thành phần lưu trữ cần thiết cho CSDL Dữ liệuđược tổ chức thành các cột (Field) hay các dòng (Record)
Query – Bảng truy vấn: Dùng trích chọn, tính toán, xử lý dữ liệu trong mộthay nhiều bảng Query là bước trung gian cung cấp dữ liệu từ Table chocác biểu mẫu (Form), báo cáo (Report)
Form – Biểu mẫu: Là công cụ tạo ra các màn hình cập nhật hay trình bày
dữ liệu cho các Table của CSDL
Report – Báo cáo: Là công cụ tạo mẫu và in các báo cáo
Macro – Tập lệnh: Là một tập hợp các hành động (Action) được chọn vàsắp xếp cho việc tự động hóa các tác vụ thường dùng tới
Module – Đơn thể chương trình: Là phương tiện lập trình trong Access vớingôn ngữ lập trình Access Basic
III SƠ LƯỢC:
Quản lý điện thoại di động tại cửa hàng điện thoại di động
Một cửa hàng bán điện thoại di động quản lý điện thoại đang bán trong cửa hàngvới các công việc sau:
Trang 4Danh sách điện thoại: Mã điện thoại, tên điện thoại, ngày nhập, số lượng, đơn giá,thời gian bảo hành, mã công ty.
Chi tiết đơn đặ hàng: Mã đơn đặt hàng, mã điện thoại, tên điện thoại, đơn giá, sốlượng
Đơn đặt hàng: Mã đơn đặt hàng, ngày đặt hàng, số lượng đặt hàng, mã khách hàng,địa chỉ
Danh sách công ty: Mã công ty, tên công ty, địa chỉ công ty
Danh sách khách hàng: Mã khách, tên khách, địa chỉ, số điện thoại
Danh sách nhân viên: Mã nhân viên, tên nhân viên, giới tình, ngày sinh, địa chỉ, sốđiện thoại, lương căn bản
Hóa đơn: Số thứ tự, mã điện thoại, tên điện thoại, mã khách hàng, mã nhân viên,ngày bán, số lượng, đơn giá, tổng tiền
IV TỔNG QUAN VỀ BÁO CÁO:
Về Table: Gồm Table CONGTY, CTDDH, DDH, DIENTHOAI, KHACHHANG,
NHANVIEN
Table CONGTY: gồm MA_CT, TENCT, DIACHICT
Table CTDDH: gồm MA_DDH, MA_DT, SOLUONG, DONGIA, MA_NV
Table DDH: gồm MA_DDH, MA_KH, NGAYDH, DCKH
Table DIENTHOAI: gồm MA_DT, TENDT, NGAYNHAP,SOLUONGNHAP,DONGIA, MA_CT, TIME_BAOHANH
Table KHACHHANG: gồm MA_KH, TENKH, DIACHIKH, SODT
Table NHANVIEN: gồm MA_NV, TENNV, PHAI(NU), NGAYSINH,DIACHI, SODT, LUONGCB
Về Query: Query báo cáo doanh thu, báo cáo danh sách điện thoại, báo cáo hóa
đơn, phiếu bảo hành, phiếu tính lương, báo cáo tình hình nhân viên
Trang 5Về Form: Form báo cáo doanh thu, báo cáo danh sách điện thoại, báo cáo nhân
viên,báo cáo danh sách khách hang, hóa đơn, phiếu tính lương
Về Report: Bao gồm: Report biên lai, danh sách điện thoại, danh sách nhân viên,
doanh thu,phiếu tính lương,Khách hàng
PHẦN II: NỘI DUNG BÁO CÁO CHƯƠNG I: LÀM VIỆC VỚI TABLE
Tổng quan về Table trong Access:
1. Table : Là thành phần lưu trữ cần thiết cho CSDL Dữ liệu được tổ chức
thành các cột (Field) hay các dòng (Record)
Trường (Field): Là một cột của bảng, thể hiện một thuộc tính của chủ
thể cần quản lý
TRƯỜNG “MA_DT” TRƯỜNG “TENDT”
Trang 6 Các kiểu dữ liệu trong Access:
Date/Time Kiểu ngày/thời gian 8 byte
Trang 7nguyên theo thứ tự
Yes/ No Kiểu Boolean (logic), lưu
các giá trị Yes/ No, True/
Trang 8 Cách 2: nháy nút -> Design View
Xuất hiện cửa sổ thiết kề thuộc tính của trường trong Table
TÊN
TRƯỜNG
KIỂU DỮ LIỆU
MÔ TẢ
Trang 9Các bước tạo một trường:
Các tính chất của trường:
Thẻ General:
Field Size: Cho phép đặt kích thước tối đa cho dữ liệu trong trường với cáckiểu dữ liệu Text, Number, AutoNumber
Format : Quy định dạng thể hiện của dữ liệu khi hiển thị
Input Mask: Quy định mẫu nhập liệu cho từng vị trí của dữ liệu
B1: Gõ tên trường
vào cột Field Name B2: Chọn kiểu dữ liệu
B3: Mô tả nội dung trường
Trang 10 Caption : Nhãn của Field dùng làm tiêu đề trong chế độ Data Sheet, Form,Report.
Decimal Places: Số chữ số thập phân của dữ liệu kiểu Number
Default Value: Giá trị mặc định tự động gán cho Field khi tạo Report mới
Validation Rule: Biểu thức điều kiện miền giá trị cho Field khi nhập
Validation Text: Chuỗi sẽ được thông báo khi nhập không thỏa biểu thứcđiều kiện Validation Rule
Required : Chọn Yes nếu bắt buộc nhập liệu vào Field này, chọn No nếu chophép Field chứa giá trị NULL
Allow Zero Length: Cho phép chuỗi rỗng hay bằng 0
Indexed : Có sắp xếp mẫu tin theo Field này hay không
Thẻ Loopkup:
Display control:
Text Box: Hộp nhập dữ liệu thường
List Box: Hộp liệt kê
Combo Box: Hộp liệt kê thả
Check Box: Hộp kiểm tra (chỉ có đối với Field loại Yes/No)
Row Source Type:
Table/Query: Danh sách lấy dữ liệu từ một Table/Query
Value List: Tự nhập giá trị vào danh sách
Field List: Danh sách là các tên Field của Table/Query
Row Source: Nguồn giá trị trong danh sách
Column Count: Số cột hiển thị trong danh sách.
Trang 11Column Heads: (Yes/No) sử dụng tên Field làm tiêu đề trong danh sách hay
không
Chỉ định khóa chính
Khi xây dựng mỗi bảng trong Access, người dùng cần chỉ ra trường mà giá trị của
nó xác định duy nhất mỗi hàng của bảng Trường đó tạo thành khóa chính (Primarykey) của bảng Ta làm như sau:
Bước 1: Chọn trường làm khóa chính
Bước 2: chọn Edit -> Primary Key
Chú ý: Khóa chính có thể là một hoặc nhiều trường
Đặt khóa chính cho bảng :
Các mục khóa dùng để thiết lập trên một hay nhiều Field dùng để nhận diện cácmẫu tin của một Table hay dùng để thiết lập mối quan hệ giữa các Table
Cần phân biệt 2 loại khóa: khóa chính và khóa ngoại
Khóa chính (Primary Key): Là mục khóa thiết lập trên field dùng để nhậndiện duy nhất các mẫu tin của một Table và có thể dùng thiết lập mối quan
hệ với các Table khác
Trang 12Chiều dài của field khóa chính có ảnh hướng đến tốc độ truy xuất CSDL, nên taotạo Field khóa chính với chiều dài nhỏ nhất có thể được.
Khóa ngoại (Foreign Key): Là khóa thiết lập trên một hay nhiều field củaTable và có thể tham chiếu đến một hay nhiều field là khóa chính trong cácTable khác Một Foreign Key chỉ ra mối quan hệ của các tanle
Kiểu dữ liệu trong Primary Key và Foreign Key phải phù hợp nhau
Ví dụ :
Tạo Table DS_DIENTHOAI: quản lí thông tin điện thoại
Chú thích: Tạo Table DS_DIENTHOAI
Field Name Data Type Field Size Description Primary Key
THOAI
KHÓA
Trang 13NGAYNHAP Data/Time NGAY NHAP
TY
BAO HANHTương tự các tables còn lai
3 Mối quan hệ giữa các Table:
Khái niệm:
Mối quan hệ Microsoft Access là hệ quản trị CSDL nên có thể sử dụng dữ liệu từnhiều Table khác nhau nếu các Table này được thiết lập mối quan hệ với nhau.Tác vụ khai thác: MS – Access dựa vào mối quan hệ đã được định nghĩa giữa cácTable để thực hiện các tác vụ sau:
Tạo liên kết trong các bảng truy vấn (Query)
Hiển thị các mẫu tin có mối quan hệ trong biểu mẫu con (Subform) hay biểu báocáo con (Subreport)
Bắt buộc quá trình khai thác dữ liệu phải tôn trọng tính toàn vẹn quy chiếu dữ kiện(Referential Integrity) để bảo vệ mối quan hệ giữa các dữ kiện của các Table
Quy định mối quan hệ: Bằng cách khai báo nhiều Field của Table này mà Field đóchứa trị giống với trị trong những mẫu tin quan hệ ở Table kia
Những Field đối chiếu trong các Table có quan hệ với nhau thường có tên giốngnhau, tuy nhiên có thể không trùng tên nhưng phải cùng kiểu dữ liệu và chứa cùngloại thông tin
Ngoại lệ: Có thể liên kết với một Field kiểu AutoNumber với một Field kiểuNumber với thuộc tính field size của chúng là Long Integer hay Relicationid
Trang 14Trong nhiều trường hợp, định nghĩa sự quan hệ bằng cách liên hệ mục khóa chínhcủa một Table với một field đối chiếu của một Table khác.
Quy định quan hệ: Đóng tất cả các Table đang mở Không thể tạo hay hiệu
chỉnh các quan hệ giữa các Table đang mở Muốn quy định mối quan hệ,phải mở cửa sổ Relationships
Hiển thị cửa sổ Relatioships: Tại cửa sổ Database -> click nút trênToolbar hay Menu Tool -> Relationships Cửa sổ này trình bày sự quan hệ giữa cácTable
Thêm Table hay Query vào cửa sổ Relationships:
CÁC THAO TÁC TẠO QUAN HỆ CHO CÁC TABLE ĐƯỢC THỰC
HIỆN TẠI ĐÂY
Trang 15Đặt trỏ vào cửa sổ Relationships -> click phải -> chọn Show Table, hoặc vào View-> Show Table.
Chọn Table hay Query tham gia Sau đó Double click hay chọn rồi click Add từngTable tham gia vào mối quan hệ Kết hợp click chuột với phím Shift để chọn nhiềuTable cùng lúc Chọn Close để đóng hộp thoại
Trang 16Quy định mối quan hệ giữa các Table trong cửa sổ Relationships:
Đưa chuột đến Field từ Table chính đến Field của Table quan hệ
Hộp thoại Edit Relationships xuất hiện Field mục khóa chính thuộc Table chính(Table/Query), Field đối chiếu thuộc Table quan hệ (Related table) Click Create
để tạo mối quan hệ
Trang 17Hộp thoại gồm 2 phần:
Phần trên ghi tên các Field được tham gia mối quan hệ
Phần dưới ghi các lựa chọn về mối quan hệ:
Enforce Referntial Integrity: Thiết lập tính toàn vẹn tham chiếu cho haiTable quan hệ
Cascade Delete Related Records: Cho phép Access tự động lặp lại(Cascade) tác vụ xóa các mẫu tin có quan hệ Nghĩa là khi xóa mẫu tinnào trong Table chính thì các mẫu tin có quan hệ trong Table quan hệcũng bị xóa
Cascade Update Related Field: Cho phép Access tự động lặp lại các tác
vụ cập nhật các field có quan hệ Nghĩa là khi ta thay đổi trị mục khóachính thì mục khóa field quan hệ cũng được thay đổi
Chú ý:
Điều kiện thiết lập toàn vẹn tham chiếu: Field tương ứng từ Table chính làkhóa chính hay chỉ mục duy nhất
Field quan hệ có cùng kiểu dữ liệu với Field khóa chính
Cả 2 Table đều phải thuộc cùng một Database (trong cùng 1 file) Toàn vẹntham chiếu không có hiệu lực cho những Table liên kết trong Database cóđịnh dạng khác
Khi thiết lập toàn vẹn tham chiếu cần tôn trọng các quy tắc sau:
Khi nhập một trị vào Field tương ứng của Table quan hệ thi trịnày phải có trong Field mục khóa chính của Table chính
Không thể xóa mẫu tin trong Table chính nếu trong Table quan
hệ tồn tại mẫu tin có quan hệ với tin muốn xóa
Chỉnh sửa quan hệ Relationships:
Trang 18Ta mở hộp thoại Edit Relationships bằng cách nhấp chuột phải vào đường biểudiễn quan hệ của 2 Table -> chọn lệnh Edit Relationships Hay double click vàođường biểu diễn.
Ví dụ:
Tạo mối quan hệ Relationships giữa 2 Table : DS_DIENTHOAI và HOA_DON
Khi ta kéo thả MA_DT từ DS_DIENTHOAI (MA_DT là khóa chính) tạo mối quan
hệ với HOA_DON (MA_DT là khóa ngoại), sẽ xuất hiện bảng sau:
Trang 19Ta đánh dấu 3 toàn vẹn tham chiếu sau đó bấm Create để tạo quan hệ.
Khi đó mối quan hệ của hai Table DS_DIENTHOAI và HOA_DON được tạo quan
hệ (1-∞)
Như đã trình bày ở trên, chúng ta có 2 loại quan hệ: 1-1, 1-nhiều Ở trên chúng ta
đã tạo được loại quan hệ 1-1, sau đây chúng ta sẽ tạo loại quan hệ 1-nhiều: tạo quan
hệ DS_DIENTHOAI với CHI_TIET_DDH
Tương tự như trên ta cũng kéo thả MA_DT từ DS_DIENTHOAI đến MA_DT ởCHI_TIET_DDH
Đánh dấu
Trang 20Ta làm tương tự với các Table còn lại, ta được bảng sau:
Chú ý: Ta cần tuân thủ các bước sau trong Access
B1: Tạo Table
B2: Tạo quan hệ Relationships
B3: Tạo tham chiếu dữ liệu (Loopkup) cho tất cả các trường khóa ngoại
B4: Nhập dữ liệu
4 Tạo tham chiếu (Loopkup)
Thẻ Loopkup gồm các thành phần sau:
Trang 21 Text Box: Hộp nhập dữ liệu thường.
List Box: Hộp liệt kê
Combo Box: Hộp liệt kê thả
Check Box: Hộp kiểm tra (Yes/No)
Row Source Type:
Table/Query: Danh sách lấy dữ liệu từ một Table/Query
Value List: Tự nhập giá trị vào danh sách
Field List: Danh sách là các tên Field của Table/Query
Row Source: Nguồn giá trị trong danh sách
Column Count: Số cột hiển thị trong danh sách.
Column Heads: (Yes/No) sử dụng tên Field làm tiêu đề trong danh sách hay
không
List Rows: Định dạng là 8
List Width: Có dạng Auto
Limit to List: Có 2 dạng Yes/No Nên định dạng kiểu Yes
Ví dụ: Tạo Loopkup cho DS_DIENTHOAI trong DS_DIENTHOAI
Tại màn hình Design View của Table DS_DIENTHOAI, chọn Field MA_CT, chọnthẻ Loopkup, tại mục Display Control chọn Combo Box, tại mục Row Source clickvào nút để chọn nguồn dữ liệu là DS_CONGTY, các mục còn lại theo địnhdạng ở trên
Trang 22Khái quát:
Access cho phép nhập them, hiệu chỉnh dữ liệu trong Table theo nhiều cách:
Nhập, hiệu chỉnh trực tiếp khi làm việc với Table (DataSheet View)
Hoặc khi làm việc với Query DataSheet
Hoặc khi làm việc với biểu mẫu (Form)
Để đảm bảo các đặt tính của CSDL, người ta không nhập thông tin cho một đốitượng ở nhiều nơi, lưu trữ trên nhiều tập CSDL tránh trùng lắp thông tin và khôngnhất quán…
Để thực hiện nhập dữ liệu ta nhấp đúp vào tên Table trong mục Table hoặc chọntên Table sau đó click Open
Bảng dữ liệu
Table DS_DIENTHOAI:
Cách 1: Bước 1: chọn tên Table
Cách 1:
Bước 2:
chọn Open
Cách 2: nhấp đúp vào tên Table
Trang 23Table KHÁCH HÀNG:
Table CÔNG TY:
Trang 24Table CTDDH:
Table NHÂN VIÊN:
Trang 261 Khái niệm
Truy vấn là một đối tượng rất quan trọng của trong các hệ quản trị cơ sở dữ liệu.Với việc sử dụng truy vấn người sử dụng có thể thực hiện nhiều thao tác trên dữliệu
trong các bảngmột cách nhanh chóng, chính xác, an toàn
Chức năng của truy vấn:
- Truy vấn để lựa chọn, hiển thị, lọc, sắp xếp dữ liệu
- Truy vấn cho phép thêm, xóa, sửa, tạo ra các bảng dữ liệu
- Truy vấn cho phép tính toán, thống kê dữ liệu
- Làm nguồn cho các đối tượng khác trong chương trình (Form, Report)
Action Query: Tạo bảng mới, thêm, xoá, sửa các mẫu tin trong bảng
Union Query: Kết hơp các trường tương ứng từ hai hay nhiều bảng
Data-definition Query: Truy vấn được xây dựng từ một câu lệnh SQL dùng để tạomới hoặc thay đổi cấu trúc của bảng
3 Cách tạo Query: gồm 6 bước:
Chọn nguồn dữ liệu cho truy vấn mới, gồm: các bảng và các truy vấn đã
được tạo từ trước
Trang 27Tạo lập quan hệ giữa các bảng, truy vấn nguồn
Chọn các trường từ các bảng, truy vấn nguồn để đưa vào truy vấn mới
Đưa vào các điều kiện để chọn lọc các mẫu tin thoả mãn các điều kiện đưa vào Nếu không đưa vào các điều kiện để chọn lọc, thì kết quả (Dynaset) của truyvấn
bao gồm tất cả các bản ghi từ các bảng, truy vấn nguồn
Chọn các trường dùng để sắp xếp các mẫu tin trong Dynaset Nếu không
chọn trường sắp xếp, thì các mẫu tin trong Dynaset được hiển thị theo thứ tự như trongcác
bảng nguồn
6 Xây dựng các cột (trường) mới từ các trường đã có trong bảng, truy vấn nguồn Ví dụ: Trường mới là tổng, hiệu, tích, thương của hai trường có sẵn nào đó.Khi xây dựng trường mới, có thể sử dụng các phép toán, các hàm chuẩn của Access
và
các hàm tự lập bằng ngôn ngữ Access Basic
Tạo Query bằng Query Design View:
B1: Khởi động Design View
B2: Chọn các Table, Query tham gia
B3: Khai báo mối liên hệ giữa các Table nếu trước đó chưa khai báo (nếu cần)B4: Khai báo tiêu chuẩn lọc (nếu cần)
B5: Chạy thử, lưu
Ví dụ: + tạo Query BAOCAODOANHTHU để hiển thị mã điện thoại, ngày đặthàng, tổng số lượng đặt, tổng số tiền bán được Ta làm như sau:
Trang 28Cửa sổ làm việc xuất hiện:
Ta kéo thả các Table liên quan vào các Field,
Bước 1: nhấp chọn Query
Bước 2: nhấp đúp vào đây