Đề tài quản lý sinh viên

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.

 

doc71 trang | Chia sẻ: huong.duong | Lượt xem: 1340 | Lượt tải: 1download
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:

  • docBC697.DOC
Tài liệu liên quan