Với các tập thực thể có khóa gồm nhiều thuộc tính ghép lại, trong đó các thuộc tính chỉ phụ thuộc hàm vào một phần của khóa thì ta sẽ đưa nó vào một thực thể mới với khóa là bộ phận kh[r]
Trang 1Phần I CÁC BƯỚC PHÂN TÍCH MỘT CHƯƠNG TRÌNH QUẢN TRỊ Cơ Sở Dữ Liệu.
I/ Tổng quan
Một chương trình quản trị CSDL thường được dựa trên một quá trình phân tích thiết kế hệ thống, quản trị thông tin để đảm bảo tính chính xác và dễ dàng hơn trong việc bảo trì, phát triển chương trình Đối với một chương trình lớn, phức tạp sẽ do các nhóm chuyên viên thực hiện, việc xác định và phân tích do những người có chuyên môn và có kinh nghiệm phân tích, sau khi phân tích xong sẽ giao cho bộ phận thiết kế dưa ra bản thiết kế chi tiết sau dó bản thiết kế được giao cho nhóm lập trình viết chương trình dựa trên bảng phân tích và thiết kế đó, saukhi lập trình xong vấn đề còn lại là của nhóm kiểm thử và bảo trì sản phẩm Tuy nhiên đối với một chương trình quản trị thông tin phục vụ cho quản lý kế toán vànghiệp vụ của doanh nghiệp nhỏ hoặc cho một bộ phận của doanh nghiệp thì việc phân tích và viết chương trình có thể do một người thực hiện
II/ Quá trình thực hiện một chương trình
Một dự án có thể phân chia thành 7 giai đoạn chính sau đây: xác định, phân tích,thiết kế, thực hiện, kiểm thử hệ thống, kiểm thử chấp nhận và vận hành
- giai đoạn xác định: nhằm mục đích hiểu biết đầy đủ các vấn đề của người dùng
để hình dung đầy đủ các vấn đề của dự án
- giai đoạn phân tích: là nhằm mục tiêu xác định chính xác hệ thống xây dựng dự định sẽ làm những gì theo quan điểm của người sử dụng
- giai đoạn thiết kế
+ mức tổng thể: cho thấy kiến trúc chung của hệ thống về cả phần cứng lẫn phần mềm
+ tiếp tục chia nhỏ bản thiết kế thành những phần nhỏ hơn
+ thiết kế module: công việc này sẽ tiến hành ở giai đoạn thực hiện
- giai đoạn thực hiện: nhằm thiết kế chi tiết, cài đặt gáp nối các thành phần, các module trong hệ thống bao gồm phần cứng lẫn phần mềm
- giai đoạn kiểm thử hệ thống: tích hợp tấc cả các phần cùng hoạt động và kiểm tra cặn kẽ các phần, các moodule theo các chức năng trong khi thiết kế bao gồm
* Tóm tắc quá trình thực hiện chương trình quản trị dữ liệu
- Khảo sát yêu cầu của chương trình, làm rõ các thông tin đầu vào, các thông tin đầu ra và các báo cáo phục vụ cho việc quản lý
- Dựa trên yêu cầu của chương trình, xây dựng sơ đồ chức năng, lấy nó làm cơ sở
để xây dựng hệ thống menu cho chương trình, hệ thống menu phải thể hiện đầy đủ chức năng của chương trình
- Dựa trên sơ đồ chức năng, xây dựng sơ đồ dòng dữ liệu thể hiện các thông tin đưa vào hệ thống, và sau khi được các chức năng xử lý sẽ được lưu trữ hoặc tạo thành các báo cáo
- Qua phân tích sơ đồ dòng dữ liệu và các thông tin khảo sát ban đầu, xây dựng các thực thể (lưu trữ những thông tin cơ bản) và mối quan hệ giữa chúng Đó chính là bước xây dựng sơ đồ quan hệ thực thể, làm cơ sở để xây dựng các Table
và relationship trong Access
III/ Khảo sát thông tin yêu cầu của chương trình
1 Khảo sát ban đầu
2 Khảo sát chi tiết
3 Khảo sát hiện trạng
- Phương pháp quan sát
- Phương pháp phỏng vấn
- Phương pháp bảng hỏi
- Phương pháp mẫu bảng ghi
IV/ Mô tả một số chương trình cụ thể
Trang 2A Chương trình quản lý hàng hóa công nợ cửa hàng.
1 Mô tả yêu cầu
- Đối với nhà cung cấp:
+ Khi mua hàng (PNK) thì sẽ làm công nợ nhà cung cấp tăng
+ Khi cửa hàng trả tiền cho NCC (phiếu chi) thì công nợ giảm
- Đối với khách hàng mua hàng:
+ Khi xuất cho KH (PXK) sẽ làm công nợ khách hàng tăng
+ Khi cửa hàng thu tiền mặt của khách hàng trả nợ (phiếu thu TM) thì công nợ khách hàng giảm
- Báo cáo về tình hình công nợ của từng khách hàng và nhà cung cấp (nợ đầu kỳ,
nợ tăng trong kỳ, nợ giảm trong kỳ, nợ cuối kỳ)
2 Các thông tin quản lý
Qua mô tả cho thấy các thông tin quản lý bao gồm:
-Thông tin nhập: DMNCC, DMKH, DMHH, PNK, PXK, PHIEUTHU (KH trả nợ), PHIEUCHI (trả nợ NCC), CTPNK, CTPXK
-Thông tin xuất: Báo cáo nhập xuất hàng và tồn kho, báo cáo công nợ khách hàng
và nhà cung cấp Thông thường khi viết chương trình cho một công ty cụ thể thì công ty sẽ cung cấp các mẫu báo cáo mà công ty yêu cầu chương trình thực hiện
B Chương trình quản lý nhân sự tiền lương cho công ty
b Về quản lý tiền lương
Hàng ngày sau giờ làm việc nhân viên thống kê sẽ đến từng phòng ban để ghi nhận nhân viên nào vắng mặt, sau đó ghi vào sổ chấm công Dựa vào sổ chấm công người điều hành sẽ biết được NV nào vắng mặt trong ngày để ghi nhận vào sổ Cuối tháng
sẽ dựa vào sổ này để tính lương cho NV
- Nhập số liệu chấm công hàng tháng của từng NV trong công ty
- Thay đổi số liệu chấm công
- Thống kê lương theo phòng ban
- Thống kê lương theo toàn công ty
2 Các thông tin quản lý
Thông tin nhập: Nhập danh sách, lý lịch nhân viên, ds phòng ban, ds chức vụ, số liệu chấm công hàng tháng
Thông tin xuất: Báo cáo lý lịch NV theo từng cá nhân và theo phòng ban, thống kêlương cho NV theo từng cá nhân, theo phòng ban và toàn công ty
V/ Đưa ra các thực thể của hệ thống
Từ việc mô tả hệ thống ta đưa ra các thực thể của hệ thống mổi thực thể của hệ thống được ký hiệu bằng một hình chử nhật có dạng như sau
1 Vai trò:
Trang 3Mô hình thực thể xác định các đơn vị thông tin cơ sở cần thiết cho hệ thống và mối quan hệ giữa chúng Điều này có nghĩa là tất cả dữ liệu chỉ lưu giữ một lần trong toàn bộ hệ thống và có thể thâm nhập từ bất cứ chương trình nào.
Dữ liệu lưu trữ trong hệ thống dưới dạng bảng, mỗi bảng thể hiện một cơ sở dữ liệu (Database) Xây dựng mô hình thực thể sẽ xác định có bao nhiêu bảng dùng trong hệ thống và mối quan hệ giữa chúng
TD: Bảng DMKH
Mã KH Tên KH Phone Địa chỉ
KH001 Đinh Thế Hiển 0903711720 254 Điện Biên Phủ Q.3
KH002 Nguyễn Văn Bách 3A Nguyễn Thiện Thuật Q.3
2 Các thành phần của mô hình thực thể:
a Thực thể:
Là một đối tượng, một sự kiện, một thông tin nào đó được lưu trữ trong hệ thống bằng một dòng thông tin trong bảng Một thực thể bao gồm tên của thực thể và cácthuộc tính của thực thể
b Tập thực thể:
Là tập hợp các thực thể có cùng tính chất, mô tả cho một loại thông tin
Thí dụ Khách hàng là một tập thực thể vì nó mô tả từng khách hàng Trong sơ đồ thực thể, tập thực thể có dạng hình chữ nhật Nó tương đương với 1 bảng
Tập thực thể được sinh ra thuộc một trong 3 dạng sau:
- Liên quan đến một giao dịch chủ yếu của hệ thống TD: Đơn đặt hàng
- Liên quan đến thuộc tính hoặc tài nguyên hệ thống TD: Kho, NCC, KH
- Thông tin đã khái quát dưới dạng thống kê như Bảng lương
thực thể sinh ra thông qua tên thực thể sau đó mới xác định thuộc tính của thực thể
c Thuộc tính: Mỗi thực thể bao gồm nhiều thông tin, mỗi thông tin đó là một thuộc tính của thực thể, còn được gọi là những Field thể hiện trên từng cột của bảng VD: Thực thể khách hàng gồm các thuộc tính Mã KH, Số phone, Địa chỉ
Có 3 loại thuộc tính:
- Thuộc tính khóa: Là một thuộc tính của thực thể mà ta xác định duy nhất một thực thể chý ý thuộc tính khoá là không trùng nhau trong một tập thực thể nó cótính duy nhất TD: Mã KH là thuộc tính khóa của tập thực thể KH vì ứng với mỗi thực thể KH chỉ có một mã số duy nhất không trùng nhau
- Thuộc tính mô tả: là các thuộc tính mô tả thông tin về đối tượng TD: Tên KH,Phone, địa chỉ
- Thuộc tính kết nối: Đối với tập thực thể này là thuộc tính mô tả nhưng đối với thực thể khác nó là thuộc tính khóa, khi đó nó là thuộc tính kết nối thể hiện mối liên hệ giữa bảng này với bảng khác TD: Mã KH trong bảng Đơn hàng là thuộc tính kết nối
TD: 2 tập thực thể HV(Mã HV, Họ tên, Năm sinh, Địa chỉ) và Đề tài tốt nghiệp(Mã
đề tài, Tên đề tài, GVHD)
Mỗi HV chỉ được làm một đề tài tốt nghiệp duy nhất và sinh viên nào đã chọn một
đề tài tốt nghiệp thì các HV khác không được chọn đề tài đó
b Quan hệ 1-n
Một thực thể trong tập thực thể này quan hệ với nhiều thực thể trong tập thực thể kia
Trang 4TD: Mỗi HV chỉ làm một đề tài tốt nghiệp và một đề tài tốt nghiệp có thể có nhiều HV làm.
Thuộc tính khóa của HV là thuộc tính thể hiện của Đề tài TN
c Quan hệ n-n
Một thực thể trong tập thực thể này quan hệ với nhiều thực thể trong tập thực thể kia và ngược lại
TD: Mỗi HV có thể làm cùng lúc nhiều đề tài tốt nghiệp lấy điểm cao nhất trong
số đó, và một đề tài có thể có nhiều sinh viên chọn
2 Nhận xét
Quan hệ 1-n rất cần thiết trong việc thiết kết CSDL, trong đó thuộc tính khóa của tập thực thể bên một sẽ là thuộc tính mô tả của tập thực thể bên nhiều.Quan hệ 1-1 đưa đến việc nhập chung 2 tập thực thể thành 1 tập thực thể duy nhất
có thuộc tính là thuộc tính của 2 tập thực thể ban đầu
Quan hệ n-n cần phải được tách ra làm 2 mối quan hệ 1-n bằng cách tạo ra thêm 1 tập thực thể thứ 3 có thuộc tính khóa là tập hợp thuộc tính khóa của 2 tập thực thể ban đầu
VD:
Tập thực thể mới: Điềm TN(Mã HV, Mã Đề tài, điểm)
3 Phân tích mô hình dữ liệu cụ thể
Chương trình A
Từ DFD, kho dữ liệu được biến đổi thành các tập thực thể, sau đó xác định mối quan hệ giữa chúng bằng quá trình phân tích
Chương trình B
VII/ Mô hình dữ liệu quan hệ
Xây dựng mô hình dữ liệu quan hệ cho phép xác định một danh sách các thuộc tính của các bảng thực thể
Quá trình xây dựng mô hình dữ liệu quan hệ gồm các bước sau:
- Xác định các thuộc tính cần cho mối quan hệ
TD:
Khách hàng (Mã KH, Tên KH, Tên công ty, Phone, địa chỉ)
Trang 5Đơn đặt hàng (Số hiệu đơn, Mã KH, ngày đặt hàng)
- Loại bỏ các thuộc tính có giá trị là kết quả của những thuộc tính khác
- Những tập thực thể có vai trò và ý nghĩa rõ ràng và duy nhất
Phụ thuộc hàm:
- Với mọi giá trị của khóa tại thời điểm đang xét chỉ có tương ứng một giá trị cho từng thuộc tính khác trong bảng Nếu có thuộc tính không phụ thuộc hàm vào khóa thì nó phải nằm trong tập thực thể khác
Quá trình chuẩn hóa:
Chọn khóa
- Mỗi tập thực thể đều có khóa
- Khóa là 1 hay nhiều thuộc tính trong tập thực thể xác định tính duy nhất của thực thể
- Nếu các thuộc tính tự nhiên của tập thực thể không tạo thành khóa, ta cần đưathêm thuộc tính khóa vào TD: Mã KH
- Khi tập thực thể được tạo ra từ việc chuyển mối quan hệ n -n thành 2 mối quan
hệ 1-n, khi đó khóa của tập thực thể mới là tập hợp khóa của 2 tập thực thể ban đầu
Chuẩn hóa dạng 1
Các thuộc tính nào xuất hiện nhiều lần cùng với một thực thể thì loại bỏ và tách
ra cùng với thuộc tính khóa của tập thực thể ban đầu tạo thành tập thực thể mới.Chuẩn hóa dạng 2
Các thuộc tính trong tập thực thể phải phụ thuộc hàm vào toàn bộ khóa
Tập thực thể có khóa là 1 thuộc tính thì đương nhiên thỏa dạng chuẩn 2
Với các tập thực thể có khóa gồm nhiều thuộc tính ghép lại, trong đó các thuộc tính chỉ phụ thuộc hàm vào một phần của khóa thì ta sẽ đưa nó vào một thực thể mới với khóa là bộ phận khóa của tập thực thể ban đầu
Chuẩn hóa dạng 3
Các thuộc tính không chỉ phụ thuộc hàm vào khóa mà còn không được phụ thuộc hàm vào bất kỳ thuộc tính nào không phải là khóa trong thực thể
Khi có thuộc tính nào phụ thuộc hàm vào thuộc tính không là khoá trong thực thể
ta cần đưa chúng vào thực thể mới có khóa là thuộc tính mà nó phụ thuộc hàm.Kết hợp các tập thực thể:
Sau khi chuẩn hóa toàn bộ các tập thực thể, những tập thực thể giống nhau sẽ được kết hợp lại thành tập thực thể duy nhất
Nếu khóa có trong tập thực thể đánh dấu X
Nếu không phải khóa và có xuất hiện trong tập thực thể đánh dấu O
VIII/ Sơ đồ chức năng bfd (bussiness function diagram)
Trang 6- Một chức năng không nên có quá 6 chức năng con, thông thường khoảng 3 mức là phù hợp.
- Sơ đồ nên cân bằng, các chức năng cùng một mức có kích thước và độ phức tạp tương đương nhau
- Mỗi chức năng cần có một tên duy nhất, đơn giản, thể hiện bao quát các chức năng con của nó, phản ánh được thực tế nghiệp vụ
4 Phân tích BFD của 2 chương trình
2 Các thành phần trong DFD:
Chức năng hoặc tiến trình:
- Có tác dụng thay đổi thông tin đầu vào để tạo ra thông tin đầu ra
- Tên tiến trình trong DFD cần đặt trùng tên với tên chức năng trong BFD
Dòng dữ liệu: Thể hiện đường đi của thông tin vào ra một tiến trình Mỗi dòng dữliệu đều có tên
Kho dữ liệu: Là các File dữ liệu trong máy tính hoặc các tài liệu lưu trữ ở văn phòng
Tác nhân: Là những phần tử ngoài hoặc trong hệ thống và tác động trực tiếp đến tiến trình
3 Ký hiệu biểu diễn
- Tiến trình hình tròn
- Dòng dữ liệu hình mũi tên
- Tác nhân hình vuông
- Kho dữ liệu hình bình hành
4 Phân tích DFD của 2 chương trình
a DFD của chương trình A( trang 212 )
b DFD của chương trình B( trang 155 )
PHẦN II HƯỚNG DẪN THIẾT KẾ CHƯƠNG TRÌNH
I/ Quá trình thực hiện chương trình bằng Access
1/ yêu cầu về lý thuyết:
-trang bìa, lời nói đầu, trang nhập xét mô tả hoạt động của doanh nghiệp (trang206), mô tả các thực thể (tên, thuộc tính), mô hình thực thể quan hệ, mô hình quan hệ dữ liệu (trang 220), lưu đồ dòng thông tin (trang 212), sơ đồ chức năng (trang 222), giao diện người máy (giao diện), các chức năng của giao diện (các form) tài liệu tham khảo-> nguyễn văn a {1992} {nxb} “tên sách”, mục lục
2/ Yêu cầu thực hành:
Trang 7Việc thực hiện lập trình chương trình Access sẽ dựa trên bảng phân tích Nếu thiếu bước phân tích mà sử dụng Access để triển khai chương trình thì rất dễ bị thiếu sót hoặc lúng túng, đặc biệt là các Table của chương trình.
Sau khi có bảng phân tích, chúng ta lập trình theo các bước sau:
- Dựa trên sơ đồ thực thể (ERD) hoặc mô hình quan hệ để tạo các Table (bao gồm các field, kiểu dữ liệu, khóa của Table) và sử dụng Relationship để tạo các quan
- Tạo cáo Form cập nhật thông tin gắn vào menu cập nhật Chúng ta nên tạo các Form cập nhật danh mục trước (thí dụ DMHH, DMKH) rồi mới đến các Form chứa thông tin cập nhật thường xuyên (thí dụ PNK, PXK) Sau khi tạo form xong, nhập một số thông tin để phục vụ cho việc kiểm tra các Query xử lý, nhập thông tin cũng theo trình tự nhập thông tin bên form danh mục trước
- Xây dựng các Query xử lý, các modul và các Report phục vụ báo cáo Công việc này đòi hỏi kết hợp giữa Form, Query, Macro, Report và Modul để thực hiện theo ýmuốn
(chú ý không nhất thiết phải có Modul, không quan trọng chương trình sử dụng kỹ thuật nào mà phải đáp ứng được yêu cầu đề ra)
- Sau cùng chúng ta thiết kế Form khởi động chương trình để dễ dàng cho người sửdụng Chương trình phải thiết kế sao cho dễ sử dụng, rõ ràng, đơn giản
(chú ý tránh giao diện phức tạp, nhiều màu sắc làm rối mắt người dùng)
giới thiệu về database của access, tạo các table, tạo quan hệ giữa các table, nhập dữ liệu cho table, thiết kế các form nhập dữ liệu, viết mã lệnh các nút trên form, thiết kế query, sql, thiết kế report, thiết kế moodule, thiết kế các macro, form chức năng, kết nối chương trình, tạo setup
II/ Các Table sử dụng trong chương trình
Trang 8III/.Quan hệ giữa các table.
IV/ Nhập dữ liệu và save lại
Bộ dữ liệu nhập cho các TABLE:
- tạo modul capnhat
Option Compare Database
Public Sub moirec()
'DoCmd.GoToRecord , , acNewRec
DoCmd.RunCommand acCmdRecordsGoToNew
Trang 9End Sub
Public Sub luurec()
'DoCmd.DoMenuItem acFormBar, acRecordsMenu, acSaveRecord, , acMenuVer70 DoCmd.RunCommand acCmdSaveRecord
End Sub
Public Sub huyrec()
'DoCmd.DoMenuItem acFormBar, acEditMenu, acUndo, , acMenuVer70
DoCmd.RunCommand acCmdUndo
End Sub
Public Sub xoarec()
'DoCmd.DoMenuItem acFormBar, acEditMenu, 8, , acMenuVer70
'DoCmd.DoMenuItem acFormBar, acEditMenu, 6, , acMenuVer70
DoCmd.RunCommand acCmdDeleteRecord
End Sub
- tao module dichuyen
Option Compare Database
Public Sub daurec()
Public Sub dichuyen(sukien As String)
Select Case sukien
Trang 10End Select
End Sub
* chú ý khi thiết kế không chọn đối tượng control wizard trên thanh công cụ toolbox
V/ Thiết kế form giao diện:
1/.Thiết Kế Form Thay Đổi Ngày Hệ Thống
(Dùng làm form Startup trong chương trình)
- nhấn nút more control ở thanh công cụ toolbox,
chọn microsoft date and time picker control,
kéo thả vào form
Private Sub cancel_Click()
Nút ok: Khi nhấn vào sẽ sửa ngày hệ thống là ngày mà người sử dụng chọn trong đối tượng
Nút cancel: không cho sữa đổi ngày hệ thống
2/.Tạo Form Cập Nhật DMHH
- Vào Tab Form/New/Design View, record Source = DMHH
- Bật Form Header và Form Footer
- Thiết kế giống như sau:
Tạo 1 function trả về giá trị là mã hàng mới, tham số nhập vào là mã nhà cung cấp
Mở Table DMHH ở chế độ Design, vào menu View/Index, tạo 1 Index mới tên STT, sắpxếp field MAHANG giảm dần Mục đích sắp xếp để khi Browse Table này thì các mẫu tin sẽ được liệt kê theo MAHANG giảm dần
Khi người sử dụng nhấn nút tạo mới, Focus sẽ được chuyển đến comboBox mã nhà cung cấp cho người sử dụng chọn, sau khi chọn sẽ kích hoạt sự kiện After Update
để tạo ra 1 mã hàng mới
Viết Code cho sự kiện After Update của combo MANCC như sau:
Private Sub MANCC_AfterUpdate()
MAHANG = MAHH(Me.MANCC)
End Sub
Ta chỉ muốn cho ComboBox MANCC hiện ra khi người sử dụng nhấn nút tạo mới, còn đối với những mẫu tin đã có thì nó bị mờ đi bằng cách viết Code cho sự kiện Current của Form
Viết Code cho sự kiện Current của Form:
Private Sub Form_Current()
If IsNull(Me.MAHANG) Then
Me.MANCC.Enabled = True
Else
Trang 11sẽ đưa vào sau.
Public Function MAHH(NCC As String)
NCC01 cung cấp mặt hàng CocaCola => Mã hàng tương ứng là NCC01001
NCC01 cung cấp mặt hàng Pepsi => Mã hàng tương ứng là NCC01002
Giải thích các giải thuật trong hàm:
Khai báo biến DB kiểu Database (cơ sở dữ liệu), sau đó đặt biến DB tham chiếu đến cơ sở dữ liệu hiện đang mở, có nghĩa là DB chứa tất cả các Table từ DMKH đếnCTPXK
Khai báo biến RS kiểu Recordset (kiểu bảng), đặt biến RS tham chiếu đến bảng cần
xử lý là DMHH để tạo mã hàng tương ứng
Kiểm tra Table DMHH có mẫu tin nào chưa, nếu chưa có sẽ phát sinh mã hàng = Tham
số nhập vào & “001” (tham số nhập vào chính là MANCC)
Nếu đã có mẫu tin thì sẽ sắp xếp Table DMHH theo field MAHANG giảm dần bằng cáchgọi một Index tên STT đã tạo sẵn phần trên, sau đó nhảy lên mẫu tin đầu tiên.Thực hiện 1 vòng lặp tìm đến mã hàng nào có 5 ký tự đầu là mã nhà cung cấp đã nhập vào hàm, nếu tìm thấy mẫu tin đầu tiên thoả có nghĩa là mã hàng đó có 3 ký
tự sau cùng là giá trị lớn nhất, dùng hàm Right cắt 3 ký tự đó ra và cộng thêm
1, sau đó gắn vào bên trái nó mã nhà cung cấp tương ứng, trả giá trị này về cho hàm MAHH và thoát khỏi hàm Ngược lại, nếu tìm đến cuối mẫu tin vẫn chưa thấy hoặc đến mẫu tin nào có 5 ký tự đầu của mã hàng nhỏ hơn nhà cung cấp thì cho hàmMAHH trả về giá trị bằng nhà cung cấp ghép với số thứ tự 001
- nút đầu: đặt thuộc tính enable=no
- nút lưu, huỷ:visabled=no
- đặt thuộc tính form: default view – continuous forms
- đặt thuộc tính các text box: locked=yes
- mã lệnh cho form CNDMHH
Option Compare Database
Private Sub dau_Click()
On Error GoTo Err_dau_Click
Trang 12Private Sub lui_Click()
On Error GoTo Err_lui_Click
Private Sub toi_Click()
On Error GoTo Err_toi_Click
Private Sub cuoi_Click()
On Error GoTo Err_cuoi_Click
Private Sub thoat_Click()
On Error GoTo Err_thoat_Click
Private Sub moi_Click()
On Error GoTo Err_MOI_Click
Me.MAHANG.SetFocus
Call moirec
Me.MAHANG.Locked = False
Trang 13Private Sub luu_Click()
On Error GoTo Err_luu_Click
Private Sub huy_Click()
On Error GoTo Err_huy_Click
Private Sub xoa_Click()
On Error GoTo Err_xoa_Click
Call xoarec
Exit Sub
Err_xoa_Click:
Trang 14MsgBox Err.Description
End Sub
Vẽ 1 ComboBox trên Form Header, vào Properties của ComboBox, đổi Column Count =
2, chọn thuộc tính Row Source, nhấn vào nút có bên phải sẽ hiện ra 1 Query, Add vào Table DMNCC, chọn 2 cột hiển thị là MANCC và TENNCC giống như sau:
Option Compare Database
Private Sub dau_Click()
On Error GoTo Err_dau_Click
Private Sub lui_Click()
On Error GoTo Err_lui_Click
Private Sub toi_Click()
On Error GoTo Err_toi_Click
Me.MAKH.SetFocus
Call toirec
Trang 15Private Sub cuoi_Click()
On Error GoTo Err_cuoi_Click
Private Sub thoat_Click()
On Error GoTo Err_thoat_Click
Private Sub moi_Click()
On Error GoTo Err_MOI_Click
Private Sub luu_Click()
On Error GoTo Err_luu_Click
Trang 16MsgBox Err.Description
End Sub
Private Sub huy_Click()
On Error GoTo Err_huy_Click
Private Sub xoa_Click()
On Error GoTo Err_xoa_Click
Option Compare Database
Private Sub dau_Click()
On Error GoTo Err_dau_Click