Qua việc khảo sát hệ thống quản lý ở một trường nào đó ta thấy hệ thống còn thực hiện thủ công và bán thủ công nên gặp phải những nhược điểm sau:
- Thời gian cho công tác tính toán và tìm kiếm về các thông tin của sinh viên, của giáo viên, lịch phân công công tác là rất lớn bởi vì các thông tin cần tim kiếm nằm ở nhiều bộ phận nên phải mất nhiều thời gian để tìm kiếm, để tập hợp lại
- Không đảm bảo cung cấp thông tin kịp thời
- Độ tin cậy thông tin không cao, khó đạt được độ chính xác cao do khối lượng dữ liệu khá lớn.
- Mất nhiều thời gian câph nhật thông tin từng sinh viên một.
Với hệ thống quản lý gồm quản lý hồ sơ sinh viên, quản lý điểm , ta thấy đây là bài toán lớn và kha phức tạp. Bài toán gồm nhiều chức năng, thông tin đầu vào và thông tin đầu ra giữa các chức năng có mối liên hệ mật thiết với nhau. Để đạt được độ chính xác cao ta cần áp dụng tin học vào trong công tác quản lý. Điều đó không những giảm bớt cho người làm công tác quản lý các tháo tác thủ công tốn kém mất nhiều thời gian và điều quan trọng hơn nó giúp cho người quản lý có thể có những thông tin nhanh chóng, chính xác từ hệ thống.
Ngày nay với sự phát triển mạnh mẽ của khoa học KT – CN được ứng dụng vào nhiều ngành, nhiều cấp. Đặc biệt trong việc quản lý đã đạt được những thành tích to lớn góp phần thúc đẩy xã hội phát triển, giảm bớt mọi công việc nặng nhọc, mất nhiều thời gian băng thủ công trong việc quản lý sổ sách, giấy tờ về mọi lĩnh vực, giúp con người có nhiều thời gian vào công việc khác và phát triển trí tuệ của mình, đồng thời khai thác tiềm nằng bí ẩn, huyền diệu vốn có của máy tính vì thế việc đưa tin học hoá vào các trường học là điều cần thiết.
71 trang |
Chia sẻ: huong.duong | Lượt xem: 1340 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài quản lý sinh viên, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ệc khai thác thông tin và chiếm nhiều thời gian lưu trữ. Mục đích của việc xây dựng đề tài này là:
- Giảm bớt thời gian ghi chép, không gâyb nhầm lẫn, thiết chính xác.
- Thực hiện tìm kiếm, sửa dữ liệu rất thuận tiện
- Tận dụng tối đa khả năng tính đã có
- Mọi công việc cập nhật, điều chỉnh, tìm kiếm, tra cứu … đều được thực hiện nhanh chóng, chính xác, tiết kiêm thời gian
Công việc của cán bộ không còn vất vả mà hiệu xuất công việc lại cao.
Chương II
Tìm hiểu về VisualBasic
1. Giới thiệu về ngôn ngữ VisualBasic:
Khi tung ra VisualBasic 1.0 BillGates, chủ tich kiêm Tổng giám đốc Microsoft đã mô tả một đó là sản phẩm “đáng nể”. Trải qua gần 10 năm và 6 phiên bản, VisualBasic như một “công cụ dễ và mạnh để phát triển các ứng dụng Windows trong Basic ”. Điều đó hình như chưa đủ để chứng thực những phô chương trên cho đến khi bạn thực sự thấy rằng, hiện nay đang có hàng chục triệu người sử dụng và phát triển ứng dụng MS Windows.
VisualBasic đã nhanh mạnh hơn và dễ sử dụng hơn VisualBasic 1.0, VisualBasic 3.0 tăng thêm các cách thức đơn giản để điều khiển những cơ sở dữ liệu mạnh nhất sắn có. VisualBasic 4.0 hỗ trợ sự phát triển 32 Bit và bắt đầu tiến trình chuyển VisualBasic thành 1 ngôn ngữ lập trình hướng đối tựng đầy đủ. VisualBasic thêm khả năng tạo tập tin thi hành (.exe) thực sự và có khả năng lập các điêù khiển riêng cho bạn.
Phiên bản 6.0 mới nhất của VisualBasic kế tuch truyền thống này: những ứng dụng Windows 95/98 và Windows NT giờ đây được phát triển chỉ cần rất ít thời gian so với trước đây. Các lỗi lập trình (mối rối - bugs) không còn thương xuyên xẩy ra nữa và nếu có cũng dễ phát hiện và sửa chữa hơn. Nói đơn giản là với VisualBasic, việc lập trình dưới Windows trở nên hiệu quả hơn mà còn lý thú hơn.
Đặc biệt VisualBasic cho phép bổ sung các men nu, hộp văn bản, nút lệnh, nút tuỳ chọn, các hộp kiểm tra, các hộp danh sách, thanh cuộn và các hộp tập tin, thư mục cho các của sổ trống. Người dùng có thể dùng các lưới (Gird) để quản lý dữ liệu trên bảng. Chúng ta có thể chuyền thông với các ứng dụng Windows khác và có thể là quan trọng nhất có phương phát dễ dàng để người dùng điều khiển và truy cập các cơ sở dữ liệu (những thành phần đó được VisualBasic gọi là các điều khiển Control)
Có thể có nhiều cửa sổ trên màn hình. Các cửa sổ này có toàn quyền truy cập clipboard vào các thông tin trong hầu hết các ứng dụng Windows khác. Chúng ta có thể dùng VisualBasic để truyền thông với các ứng dụng khác đang chạy dưới Windows, dùng phiên bản hiện đại nhất của công nghệ COM/OLE trong Windows.
2. Lý Do Chọn VisualBasic :
Bất kể làm một việc gì chúng ta cũng đềubắt đầu từ những cái hiện có mà đi lên, không phải trở về con số không rồi mới bắt đầu.
Chúng ta từng làm việc trên máy tính, và ít nhất là thao tác trên Windows, tạo ra những văn bản trên word, vậy chúng ta thấy những gì? có phải đó là những giao diện màn hình(màn hình tương tác với người sử dụng) gồm các dẫy thực đơn (Menu), hộp thoại (dialog box), các nút lựa chọn (option button), các nút kiểm tra (check button), các nút lệnh (OK) (Cancel) … nếu phải học viên lập trình từ đầu, có thể nói chưa chắc chúng ta đã tạo ra những đề mục trên sau 1 đến 2 năm học. Nhưng với VisualBasic bạn đã có thể tạo ra được tất cả chúng, mà chỉ trong 1 đến 3 tháng mà thôi. Nói cách khác tất cả những gì chúng ta thấy phần mềm trong Windows chúng ta có thể tạo ra từ VisualBasic. Tuy nhiên không nói đến mặt trái của Visualbasic, thì cúng không thật khách quan khoa học. VisualBasic tuỳ thuộc hoàn toàn vào Windows, chúng ta không thể chạy các ứng dụng của VisualBasic trên một ứng dụng khác mà không phải là VisualBasic.
Chương III:
Phương pháp phân tích và thiết kế hệ thống
* Khái niệm chung về hệ thống thông tin quản lý
Hệ thống là một tập hợp các phần tử có mối ràng buộc với nhau để cùng hoạt động nhằm đạt được một số mục tiêu nhất định
Hệ thống được phân chia thành nhiều cấp, tạo điều kiện thuận lợi cho việc quản lý từ trên xuống dưới, có luồng thông tin vào ra.
I. Giai đoạn phân tích: Phân tích là giai đoạn quan trọng nhất trong toàn bộ quá trình phát triểnphương hướng cho toàn hệ thống.Hệ thống có đáp ứng được nhu cầu người sử dụng hay không hoàn toàn phụ thuộc vào giai đoạn phân tích.Giai đoạn này có hai nhiệm vụ chủ yếu là:
- Phân tích các chức năng nghiệp vụ.
- Phân tích về thực thể mối quan hệ giữa các thực thể.
II. Phân tích chức năng nghiệp vụ:
Trong giai đoạn này phải xác định được hệ thông cần phải làm gì ở hiện tại và tương lai. Người phân tích hệ thông về tất cả những gì hệ thống cần làm, từ đó xác định cấu trúc và đinh nghĩa chính xác các chức năng nghiệp vụ của hệ thống. Mỗi chức năng cần xác định rõ:
- Chức năng này làm cái gì.
- Chức năng tác động đến các đối tượng nào .
- Sự kiện nào kích hoạt chức năng.
- Chức năng nghiệp vụ có thể được xác định bằng cách:
* Thông qua phỏng đoán người dùng: Vì không ai hiểu rõ hệ thống cần dùng trong trong tương lai hơn người sử dụng nó.
Người phân tích hệ thông sẽ đặt ra những câu hỏi về hệ thống như: Quá trình diễn ra như thế nào,hệ thông đáp ưng gì…Với những cách phỏng đoán như vậy người phân tích viên sẽ rõ về hệ thốngtrong tương laimình định thiết kế sát với như thực tiễn người dùng.
* Thông qua các văn bản,tài liệu về hệ thống:
Ngoài những phỏng vấn người dùng,phân tích viên cần tham khảo thêm các tài liệu,giấy tờ liên quan đến hệ thống.Đó là những phản ánh đúng những hoat động,cách thức hệ thống hiện tại đang thực hiện.
III. Xác định các thực thể của hệ thống:
Trong phần này ta tiến hành xây dựng một cơ sở dữ liệu cho một hệ thống dựa trên những phân tích về dữ liệu đã cho ở phần trên. Mô hình quan hệ là một mô hình chuẩn cho cơ sở dữ liệu vì nó có thể cho phép người sử dụng có thể đưa ra các yêu cầu về dữ liệu mà không cần biết đến cấu trúc lưu trữ của cơ sở dữ liệu đó.
Qua trình xây dựng các bảng như sau: mỗi thực thể dữ liệu của hệ thống được biểu diễn bằng một bảng, trong đó mỗi hàng là một trường dữ liệu, các cột thể hiện một thuộc tính quan trọng của trường đó như kiểu dữ liệu, độ dài giá trị mặc định …các ràng buộc cho từng trường dữ liệu hoặc giữa các trường dữ liệu trong một bảng. Ngoài những dữ liệu co sắn do các hệ quản trị dữ liệu cung cấp, ta có thể sử dụng kiểu dữ liệu tự định nghĩa.
Các bảng dữ liệu được thiết lập trong cơ sở dữ liệu Access. Chúng ta đã biết, thực thể là một chủ điểm, một đối tượng hay là một sự kiện đáng quan tâm đối với việc xử lý của hệ thống.
IV. Hoàn Thành Mô Hình Dữ Liệu:
Sau khi xây dựng mô hình dữ liệu khái quát cho hệ thống ta tiếp tục chi tiết hoá, làm mịn từng phần, ở giai đoạn này người thiết kế phải sưu tầm đầy đủ các thuộc tính của từng thực thể và ngữ nghĩa liên kết.
Các thực thể và sự liên kết được xem xét một cách đầy đủ các chi tiết cần thiết trước khi cơ sở dữ liệu xác định có thể tạo ra.
Trước hết với thực thể:
Chúng là những đường tương đối mà tổ chức cần lưu thông tin về chúng
Chúng có tên duy nhất là những danh từ
Chúng có một khoá chính xác định duy nhất các thể hiện
Chúng có một số thuộc tính cần được ghi nhận
Chúng phải có ít nhất một liên kết với các thực thể khác
Chúng có thể phân rã thành các thực thể độc lập và các thực thể đặc tính mà chúng mô tả thực thể nhân
Chúng có thể kết hợp một phần với các thực thể khác để tạo nên thực thể giao khi giữa chúng có liên kết nhiều – nhiều …
Mô hình phải biểu diễn mọi thực thể đã được dùng trong tổ chức
V. Sơ đồ:
A. Sơ đồ chức năng nghiệp vụ:
Sơ đồ chức năng nghiệp vụ là công cụ lập mô hình đầu tiên trong quá trình phân tích.Nó giúp định nghĩa các ranh giói củ hệ thống trong nghiên cứu và cung cấp các thành phần cho kỹ thuật mô hình hoá sau này.
Tiến hành xây dựng:
bước1: Tiếp cận từ trên xuống.
bước2: Kiểm tra từ dưới lên.
* Bước1: Từ chức năng lớn nhất của hệ thống ta phan rã thành các chức năng con,chức năng con thể hiện đầy đủ nhiệm vụ của chức năng cha.Nếu chức năng con còn lớn thì lại phân rã thành chức năng nhỏ nữa.mỗi chức năng con này mô tả những gì chức năng cần làm chứ không phải làm thế nào.
* Bước2: Từ những thông tin hệ thống có được,người phân tích phải liệt kê ra được các chức năng không theo sự phân rã từ trên xuống và xem xét nếu không có trong hồ sơ nghĩa là sơ đồ còn thiếu và qua những kinh nghiệm bản thân,những thông tin nghiệp vụ để xem còn thiếu chức năng nào.
B. Sơ đồ liên kết thực thể:
Mô hình thực thể liên kết là một kỹ thuật để xác định thông tin cần cho hệ thống.Cùng với sơ đồ phân rã chức năng và sơ đồ luồng dữ liệu nó quyết định và đáp ứng của hệ thống đối với nghiẹp vụ.Sơ đồ liên kết thực thể bao gồm các bảng thuộc tính và các mối quan hệ giữa các thực thể với nhau.
Thực thể: Là một chủ điểm,một nhiệm vụ, một đối tưọng.
Thuộc tính: Sau khi xác định kiểu thực thể,tập hợp và bản chất của thực thể bước tiếp theo là phải xác định những thông tin nào cần phải lưu trữ cho mỗi thực thể .Thuộc tính là các đặc trưng của các thực thể biểu thị bằng các trường hoặc các cột của bảng.
Có 3 loại liên kết thực thể:
Một-Một
Một-Nhiều Nhiều-Nhiều
Một sơ đồ quan hệ thực thể nhất thiết phải ở dạng chuẩn,tối thiểu là ở dạng chuẩn ba.
VI. Giai đoạn thiết kế:
Mô hình liên kết những khái niệm chuẩn hoá của nó sẽ cung cấp một lý thuyết chặt chẽ về việc xây dựng cơ sở dữ liệu. Chuẩn hoá sẽ được dùng để bổ sung, củng cố các mô hình thực thể liên kết và đảm bảo rằng mọi thực thể kết hợp với các thuộc tính đúng đắn của nó, nhằm tránh sai sót trước khi chuyển mô hình sang bảng vật lý.
Nếu mô hình được triển khai cẩn thận, thì các bảng trong thiết kế ở dạng chuẩn hoặc gần với dạng chuẩn. Trong trường hợp đó công việc chuẩn hoá chỉ đơn giản là việc kiểm tra các công việc trước đó. Ngược lại nếu có lỗi trong mỗ mô hình liên kết thì việc chuẩn hoá sẽ phát hiện chúng trước khi cài đặt và thi hành mô hình.
Việc kiểm tra chuẩn hoá là giai đoạn cuối cùng của thiết kế và phân tích logic. Mô hình có thể chuyển thành đặc tả vật lý mà nó có thể được thực hiện bởi việc sử dụng hệ quản trị cơ sở dữ liệu nào đó.
Mỗi thực thể trong mô hình trở thành một bảng. Mỗi dòng trong bảng tương ứng với thể hiện của một thực thể. Các dòng có thể theo một thứ tự bất kỳ. Các cột tương ứng với các thuộc tính của thực thể. Một cột chứa tất cả các dữ liệu về thuộc tính đơn . Giai đoạn thiết kế bắt đầu khi phân tích đã kết thúc,nó sẽ sử dụng tất cả những thông tin chi tiết từ giai đoạn phân tích để tạo ra những mô hình ở mức Logic cho hệ thống. Thiết kế một CSDL quan hệ bao gồm việc chuyển đổi những mô hình ở mức khái niệm phản ánh thế giới thực sang những dạng thể hiện khác được gọi là mô hình Logic.
Về cơ bản giai đoạn thiết kế gồm hai phần:
- Thiết kế CSDL.
- Thiết kế giao diện và các MODULE chương trình.
Chương IV
Phân tích và thiết kế hệ thống:
I. Giới thiệu quy trình quản lý sinh viên:
Hệ thống bao gồm 3 chức năng sau:
Chức năng quản lý.
Tài liệu.
Trợ giúp.
1. Chức năng quản lý:
a. Quản lý sinh viên:
Chức năng này lưu trữ danh sách các sinh viên.(SốTT,họvà tên,ngày sinh…)
b. Quản lý điểm:
Chức năng này lưu trữ điểm các môn học của từng sinh viên đã được nhập vào hệ thống.Khi đó người sử dụng chỉ cần vào chức năng này để biét được điểm các môn học,qua đó có thể biết được học lực của từng sinh viên ở từng kỳ,từng năm.
c. Bảng mã môn học:
Chức năng này giúp người sử dụng nhập các dữ liệu về các môn học của từng sinh viên vào hệ thống quản lý,cũng như nhập thêm vào danh sách hoặc xoá bỏ đi.
d. Bảng mã sinh viên:
Chức năng này dùng nhập thêm hoặc xoá đi dữ liệu về mã sinh viên khỏi hệ thống quản lý.
2. Tài liệu:
a. Văn bản điểm:
Tài liệu văn bản này giúp cho người sử dụng có cái nhìn tổng thể về điểm của từng sinh viên thông qua các số thứ tự và các môn học.
Nó còn cho phép người sử dụng có thể in văn bản điểm ra qua chức năng Print,export.
b. Văn bản hồ sơ sinh viên:
Qua văn bản về hồ sơ của sinh viên,người sử dụng có thể nhận biết, in ra,lưu giữ để quản lý một cách tốt hơn.
3. Chức năng trợ giúp.
II/Phân tích hệ thống về xử lý:
1. Biểu đồ phân rã chức năng:
a. Biểu đồ phân cấp chức năng tổng quát:
Biểu đồ phân cấp chức năng tổng quát
Hệ thống quản lý sinh viên
Tài liệu
Trơ giúp
Quản lý
Quản lý điểm
Văn bản điểm
Help
Văn bản hồ sơ sinh viên
Quản lý sinh viên
Thoát
Bảng mã môn học
Bảng mã sinh viên
B. Biểu đồ phân rã chức năng chi tiết.
Tài liệu
Văn bản điểm
Văn bản hồ sơ sinh viên
Quản lý
Quản lý điểm
Quản lý sinh viên
Bảng mã môn
Bảng mã sinh viên
Trợ giúp
III/Thiết kế cơ sơ dữ liệu:
(kiểu dữ liệu:Number_N, Text_T, Date/Time_D)
1. Bảng mã sinh viên:
Tên trường
Kiểu dữ liệu
Độ rộng
Ghi chú
STT
Text
5
Số thứ tự
Ma SV
Text
5
Mã SV
Ho va ten
Text
25
Họ và tên
Ngay sinh
Date
Ngày sinh
2/Bảng điểm:
Tên trường
Kiểu dữ liệu
Độ rộng
Ghi chú
STT
T
Số thứ tự
Mon hoc
T
Môn học
3. Bảng Quản lý sinh viên
Tên trường
Kiểu dữ liệu
Độ rộng
Ghi chú
STT
T
Số thứ tự
Ma SV
T
Mã sinh viên
Ho ten
T
Họ và tên
Ngay sinh
D
Ngày sinh
Đia chi
T
địa chỉ
Quan
T
Quận
Tinh
T
Tỉnh
Điên thoai
T
Điện thoại
Email
T
Email
4/Bảng mã môn:
Tên trường
Kiểu dữ liệu
Độ rộng
Ghi chú
STT
T
Số thứ tự
Ma mon
T
Mã môn học
He so mon
T
Hệ số môn học
Mon hoc
T
Môn học
5/Bảng hồ sơ sinh viên:
Tên trường
Kiểu dữ liệu
Độ rộng
Ghi chú
STT
T
Số thứ tự
Ma SV
T
Mã sinh viên
Ho ten
T
Họ và tên
Ngay sinh
D
Ngày sinh
Đia chi
T
Địa chỉ
Quan
T
Quận
Tinh
T
Tỉnh
Điên thoai
T
Điện thoại
Email
T
Email
6/Bảng quản lý điểm:
Tên trường
Kiểu dữ liệu
Độ rộng
Ghi chú
STT
T
Số thứ tự
Môn hoc
T
Môn học
Chương V:
Thiết kế CODE và giao diện
Code của chương trình:
1. Module và ClassModule:
Option Explicit
Public Function checkNull(ByVal txtvalue As String) As Boolean
If txtvalue = vbNullString Then
checkNull = False
Else
checkNull = True
End If
End Function
Public Property Let value1(seting)
'luu giu seting trong bien cap Module
mVal1 = seting
End Property
Public Property Let value2(seting)
'luu giu seting trong bien cap Module
mVal2 = seting
End Property
Public Property Let value3(seting)
'luu giu seting trong bien cap Module
mVal3 = seting
End Property
Public Function chia()
If mVal2 0 Then 'kiem tra dieu kien mVal2 kahc khong.
chia = mVal1 / mmVal2
Else
chia = "Phep chia khong thuc hien duoc."
End If
End Function
Public Function Cong()
Cong = mmVal1 + mVal2 + mVal3
End Function
Public Function Nhan()
Nhan = mVal1 * mVal2
End Function 2.Code của Form mở đầu:
OptionExplicit
' Reg Key Security Options...
Const READ_CONTROL = &H20000
Const KEY_QUERY_VALUE = &H1
Const KEY_SET_VALUE = &H2
Const KEY_CREATE_SUB_KEY = &H4
Const KEY_ENUMERATE_SUB_KEYS = &H8
Const KEY_NOTIFY = &H10
Const KEY_CREATE_LINK = &H20
Const KEY_ALL_ACCESS = KEY_QUERY_VALUE + KEY_SET_VALUE+
KEY_CREATE_SUB_KEY+
KEY_ENUMERATE_SUB_KEYS+
KEY_NOTIFY + KEY_CREATE_LINK + READ_CONTROL
' Reg Key ROOT Types...
Const HKEY_LOCAL_MACHINE = &H80000002
Const ERROR_SUCCESS = 0
Const REG_SZ = 1 ' Unicode nul terminated string
Const REG_DWORD = 4 ' 32-bit number
Const gREGKEYSYSINFOLOC = "SOFTWARE\Microsoft\Shared Tools Location"
Const gREGVALSYSINFOLOC = "MSINFO"
Const gREGKEYSYSINFO = "SOFTWARE\Microsoft\Shared Tools\MSINFO"
Const gREGVALSYSINFO = "PATH"
Private Declare Function RegOpenKeyEx Lib "advapi32" Alias "RegOpenKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal ulOptions As Long, ByVal samDesired As Long, ByRef phkResult As Long) As Long
Private Declare Function RegQueryValueEx Lib "advapi32" Alias "RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName As String, ByVal lpReserved As Long, ByRef lpType As Long, ByVal lpData As String, ByRef lpcbData As Long) As Long
Private Declare Function RegCloseKey Lib "advapi32" (ByVal hKey As Long) As Long
Private Sub cmdSysInfo_Click()
Call StartSysInfo
End Sub
Private Sub cmdOK_Click()
Unload frmAbout
Load frmLogin
frmLogin.Show
End Sub
Public Sub StartSysInfo()
On Error GoTo SysInfoErr
Dim rc As Long
Dim SysInfoPath As String
' Try To Get System Info Program Path\Name From Registry...
If GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFO, gREGVALSYSINFO, SysInfoPath) Then
' Try To Get System Info Program Path Only From Registry...
ElseIf GetKeyValue(HKEY_LOCAL_MACHINE, gREGKEYSYSINFOLOC, gREGVALSYSINFOLOC, SysInfoPath) Then
' Validate Existance Of Known 32 Bit File Version
If (Dir(SysInfoPath & "\MSINFO32.EXE") "") Then
SysInfoPath = SysInfoPath & "\MSINFO32.EXE"
' Error - File Can Not Be Found...
Else
GoTo SysInfoErr
End If
' Error - Registry Entry Can Not Be Found...
Else
GoTo SysInfoErr
End If
Call Shell(SysInfoPath, vbNormalFocus)
Exit Sub
SysInfoErr:
MsgBox "System Information Is Unavailable At This Time", vbOKOnly
End Sub
Public Function GetKeyValue(KeyRoot As Long, KeyName As String, SubKeyRef As String, ByRef KeyVal As String) As Boolean
Dim i As Long ' Loop Counter
Dim rc As Long ' Return Code
Dim hKey As Long ' Handle To An Open Registry Key
Dim hDepth As Long '
Dim KeyValType As Long ' Data Type Of A Registry Key
Dim tmpVal As String ' Tempory Storage For A Registry Key Value
Dim KeyValSize As Long ' Size Of Registry Key Variable
'------------------------------------------------------------
' Open RegKey Under KeyRoot {HKEY_LOCAL_MACHINE...}
'------------------------------------------------------------
rc = RegOpenKeyEx(KeyRoot, KeyName, 0, KEY_ALL_ACCESS, hKey) ' Open Registry Key
If (rc ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Error...
tmpVal = String$(1024, 0) ' Allocate Variable Space
KeyValSize = 1024 ' Mark Variable Size
'------------------------------------------------------------
' Retrieve Registry Key Value...
'------------------------------------------------------------
rc = RegQueryValueEx(hKey, SubKeyRef, 0, _
KeyValType, tmpVal, KeyValSize) ' Get/Create Key Value
If (rc ERROR_SUCCESS) Then GoTo GetKeyError ' Handle Errors
If (Asc(Mid(tmpVal, KeyValSize, 1)) = 0) Then ' Win95 Adds Null Terminated String...
tmpVal = Left(tmpVal, KeyValSize - 1) ' Null Found, Extract From String
Else ' WinNT Does NOT Null Terminate String...
tmpVal = Left(tmpVal, KeyValSize) ' Null Not Found, Extract String Only
End If
'------------------------------------------------------------
' Determine Key Value Type For Conversion...
'------------------------------------------------------------
Select Case KeyValType ' Search Data Types...
Case REG_SZ ' String Registry Key Data Type
KeyVal = tmpVal ' Copy String Value
Case REG_DWORD ' Double Word Registry Key Data Type
For i = Len(tmpVal) To 1 Step -1 ' Convert Each Bit
KeyVal = KeyVal + Hex(Asc(Mid(tmpVal, i, 1))) ' Build Value Char. By Char.
Next
KeyVal = Format$("&h" + KeyVal) ' Convert Double Word To String
End Select
GetKeyValue = True ' Return Success
rc = RegCloseKey(hKey) ' Close Registry Key
Exit Function ' Exit
GetKeyError: ' Cleanup After An Error Has Occured...
KeyVal = "" ' Set Return Val To Empty String
GetKeyValue = False ' Return Failure
rc = RegCloseKey(hKey) ' Close Registry Key
End Function
Private Sub cmdCancel_Click()
End
End Sub
Private Sub Timer1_Timer()
Dim d As Integer
d = d + 20
If Me.Label3.Left > -5500 Then
Me.Label3.Left = Label3.Left - d
Else
Me.Label3.Left = 6000
End If
End Sub 3.Code của form Login: Option Explicit
Dim i As Integer
Public LoginSucceeded As Boolean
Private Sub cmdCancel_Click()
'set the global var to false
'to denote a failed login
LoginSucceeded = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
'check for correct password
If txtUserName = "Tran Hoai Nam" And txtPassword = "8522589" Then
'place code to here to pass the
'success to the calling sub
'setting a global var is the easiest
LoginSucceeded = True
Unload frmLogin
Unload frmAbout
MDIForm1.Show
MDIForm1.WindowState = 2
Else
MsgBox "Ban khong the vao duoc, xin dang nhap lai!", , "Login"
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
End Sub
Private Sub Timer1_Timer()
MsgBox ("Sorry, ban da het thoi gian.")
For i = 1 To 20
Beep
Next i
Unload frmLogin
Load frmAbout
frmAbout.Show
End Sub
4.Code của form MDI: Private Sub mnuHelp_Click()
End Sub
Private Sub InstallEngineCtl1_OnReadyStateChange(newState As Long)
End Sub
Private Sub MDIForm_Unload(Cancel As Integer)
Load frmAbout
frmAbout.Show
End Sub
Private Sub mnuMamonitem_Click()
Load frmMamon
frmMamon.Show
MDIForm1.Hide
End Sub
Private Sub mnuMasinhvienitem_Click()
Load frmMaSV
frmMaSV.Show
MDIForm1.Hide
End Sub
Private Sub mnumovanbandiemitem_Click(Index As Integer)
DataReport2.Show
End Sub
Private Sub mnumovanbanhocsinhitem_Click(Index As Integer)
DataReport1.Show
End Sub
Private Sub mnuQuanlyDiemitem_Click()
Load frmQLD
frmQLD.Show
frmQLD.WindowState = 2
MDIForm1.Hide
End Sub
Private Sub mnuQuanlyhocsinhitem_Click()
Load frmQLHS
frmQLHS.Show
frmQLHS.WindowState = 2
End Sub
Private Sub mnuThoatitem_Click()
Unload MDIForm1
Load frmAbout
frmAbout.Show
End Sub
Private Sub RichTextBox1_Change()
End Sub
5.Code của form Mamon: Option Explicit
Private cn As ADODB.Connection
Private mrscust As ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Const constr = "Provider=MSDataShape.1;Persist Security Info=False;Data Source=C:\Nam\Nam.mdb;Data Provider=Microsoft.Jet.OLEDB.3.51"
Private Sub Form_Load()
datPrimaryRS.ConnectionString = "Provider=MSDataShape.1;Persist Security Info=False;Data Source=C:\Nam\Nam.mdb;Data Provider=Microsoft.Jet.OLEDB.3.51"
Set grdDataGrid.DataSource = datPrimaryRS.Recordset
End Sub
Private Sub Form_Resize()
On Error Resume Next
'This will resize the grid when the form is resized
grdDataGrid.Width = Me.ScaleWidth
grdDataGrid.Height = Me.ScaleHeight - grdDataGrid.Top - datPrimaryRS.Height - 700 - picButtons.Height
End Sub
Private Sub Form_Unload(Cancel As Integer)
Screen.MousePointer = vbDefault
Unload frmMamon
Load MDIForm1
MDIForm1.Show
End Sub
Private Sub datPrimaryRS_Error(ByVal ErrorNumber As Long, Description As String, ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal HelpContext As Long, fCancelDisplay As Boolean)
'This is where you would put error handling code
'If you want to ignore errors, comment out the next line
'If you want to trap them, add code here to handle them
MsgBox "Data error event hit err:" & Description
End Sub
Private Sub datPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'This will display the current record position for this recordset
datPrimaryRS.Caption = "Record: " & CStr(datPrimaryRS.Recordset.AbsolutePosition)
End Sub
Private Sub datPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
'This is where you put validation code
'This event gets called when the following actions occur
Dim bCancel As Boolean
Select Case adReason
Case adRsnAddNew
Case adRsnClose
Case adRsnDelete
Case adRsnFirstChange
Case adRsnMove
Case adRsnRequery
Case adRsnResynch
Case adRsnUndoAddNew
Case adRsnUndoDelete
Case adRsnUndoUpdate
Case adRsnUpdate
End Select
If bCancel Then adStatus = adStatusCancel
End Sub
Private Sub cmdAdd_Click()
On Error GoTo AddErr
datPrimaryRS.Recordset.AddNew
Exit Sub
AddErr:
MsgBox Err.Description
End Sub
Private Sub cmdDelete_Click()
On Error GoTo DeleteErr
With datPrimaryRS.Recordset
.Delete
.MoveNext
If .EOF Then .MoveLast
End With
Exit Sub
DeleteErr:
MsgBox Err.Description
End Sub
Private Sub cmdRefresh_Click()
'This is only needed for multi user apps
On Error GoTo RefreshErr
datPrimaryRS.Refresh
Set grdDataGrid. DataSource = datPrimaryRS. Recordset ("ChildCMD") . .UnderlyingValue
Exit Sub
RefreshErr:
MsgBox Err.Description
End Sub
Private Sub cmdUpdate_Click()
On Error GoTo UpdateErr
datPrimaryRS.Recordset.UpdateBatch adAffectAll
Exit Sub
UpdateErr:
MsgBox Err.Description
End Sub
Private Sub cmdClose_Click()
Unload frmMamon
Load MDIForm1
MDIForm1.Show
End Sub
6.Code của form MaSV: Option Explicit
Private cn As ADODB.Connection
Private mrscust As ADODB.Recordset
Dim cnn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Const constr = "Provider=MSDataShape.1;Persist Security Info=False;Data Source=C:\Nam\Nam.mdb;Data Provider=Microsoft.Jet.OLEDB.3.51"
Private Sub Form_Load()
datPrimaryRS.ConnectionString = "Provider=MSDataShape.1;Persist Security Info=False;Data Source=C:\Nam\Nam.mdb;Data Provider=Microsoft.Jet.OLEDB.3.51"
Set grdDataGrid.DataSource = datPrimaryRS.Recordset("ChildCMD").UnderlyingValue
End Sub
Private Sub Form_Resize()
On Error Resume Next
'This wi
Các file đính kèm theo tài liệu này:
- BC697.DOC