Đồ án Xây dựng chương trình Quản lý Thư viện Trường Trung học cơ sở Tân Tiến

Trong tình hình thực tế hiện nay nhu cầu quản lý các tài liệu văn bản trong các cơ quan, và đặc biệt đối với thư viện trường THCS Tân Tiến vẫn lưu trữ và xử lý thông tin bằng sổ sách là một việc rất mất thời gian và khó khăn. Do đó chương trình Quản lý Thư viện này sẽ giúp nhân viên thư viện lưu trữ và xử lý thông tin kịp thời và nhanh chóng, đảm bảo các yêu cầu cần thiết của độc giả, đưa các thông tin và dữ liệu kịp thời mà quản lý bằng sổ sách không thể có được.

doc89 trang | Chia sẻ: aloso | Lượt xem: 2234 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng chương trình Quản lý Thư viện Trường Trung học cơ sở Tân Tiến, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng mượn Mượn trả Báo cáo Yêu cầu Yêu cầu Báo cáo - Trong sơ đồ này có 2 chức năng chính: + Chức năng TK Độc giả quá hạn. + Chức năng TK Độc giả đang mượn. - Khi cần thống kê về số độc giả hay do yêu cầu của Ban giám hiệu thì cán bộ thống kê sẽ thống kê được về số lượng độc giả đang mượn và số độc giả mượn quá hạn chưa trả để có biện pháp xử lý kịp thời. Tất cả dữ liệu được lấy ra từ kho thông tin Độc giả và Mượn trả. b) Thống kê Sách: TK sách nhập TK Loại sách TK sách đang mượn TK tên tác giả TK nhà cung cấp sách Sách Ban giám hiệu Báo cáo TT sách Mượn trả -Trong sơ đồ này gồm có 5 chức năng chính: + Chức năng TK Sách Nhập + Chức năng TK Loại sách. + Chức năng TK Tên tác giả. + Chức năng TK Sách đang mượn. + Chức năng TK nhà Cung cấp sách. - Có một tác nhân ngoài: Ban giám hiệu. *Tất cả các thông tin liên quan đến thống kê được lấy ra từ kho thông tin về sách. 3.4. Xây dựng mô hình thực thể liên kết E-R: 1. Mục đích: Mô hình thực thể liên kết: nhằm xác định khung khái niệm về các thực thể, thuộc tính và mối liên hệ ràng buộc giữa chúng, là cơ sở thiết kế cơ sở dữ liệu cho hệ thống quản lý. Hệ thống được xây dựng sẽ lưu trữ thông tin, xử lý và sử dụng dữ liệu trong hệ cơ sở dữ liệu được thiết kế. Quá trình thiết kế sẽ tối ưu trong việc phân tách các file dữ liệu sao cho việc lưu trữ ít nhất nhưng lại có thể truy cập dễ dàng nhất. Cách bố trí các file dữ liệu một cách logic sẽ trả lời được các câu hỏi đề ra của hệ thống như yêu cầu thông tin của một đối tượng, thông tin của một cuốn sách, tiến hành thu thập thống kê dữ liệu theo tiêu chí nào đó trong hệ thống. 2. Xác định các thực thể. a) Thực thể DOCGIA: Tên thuộc tính Ý nghĩa Madocgia Mã thẻ do thư viện cấp HovaTen Họ tên của độc giả NamSinh Năm sinh GioiTinh Nam hay Nữ Lop Lớp học SoThe Số thẻ học sinh b) Thực thể MUONTRA: Tên thuộc tính Ý nghĩa Madocgia Mã thẻ của độc giả Masach Mã thẻ của cuốn sách Ngaymuon Ngày mượn sách Ngayhentra Ngày hẹn trả sách Ngaytra Ngày trả sách c) Thực thể SACH: Tên thuộc tính Ý nghĩa Masach Mã của cuốn sách Tensach Tên của cuốn sách Tentacgia Tên của tác giả Loaisach Loại sách NhaXB Nhà xuất bản NamXB Năm xuất bản Sotrang Số trang của sách Sotap Số tập của sách Dongia Đơn giá của cuốn sách Soluong Số lượng sách Kesach Kệ sách Giasach Giá sách Ngaynhap Ngày nhập 3. Mối liên kết: * Độc giả và Mượn trả: DOCGIA MUONTRA * Sách và Mượn trả: SACH MUONTRA * Độc giả - Mượn trả - Sách: DOCGIA MUONTRA SACH 4. Mô hình thực thể liên kết: SACH MUONTRA DOCGIA Mã sách Tên sách Tên tác giả Loại sách Nhà xuất bản Năm xuất bản Số trang Số tập Đơn giá Số lượng Kệ sách Giá sách Ngày nhập Mã độc giả Họ và Tên Năm sinh Giới tính Lớp Số thẻ Mã độc giả Mã sách Ngày mượn Ngày hẹn trả Ngày trả * Giải thích: - Giữa thuộc tính độc giả và mượn trả là quan hệ 1 - n (một - nhiều). Có nghĩa là một độc giả có thể mượn được nhiều tài liệu. - Giữa thuộc tính mượn trả và thuộc tính tài liệu là quan hệ n - 1 (nhiều một). Có nghĩa là một tài liệu có thể mượn nhiều lần. Chương 4 THIẾT KẾ HỆ THỐNG THIẾT KẾ CHƯƠNG TRÌNH Với mục tiêu xây dựng một phần mềm đáp ứng được các chức năng trong việc quản lý giao dịch xuất nhập, đồng thời dễ sử dụng và thân thuộc với người sử dụng, em lựa chọn giải pháp lập trình ứng dụng trên nền Windows được cài đặt bằng ngôn ngữ lập trình Microsoft VisualBasic 6.0 với hệ quản trị cơ sở dữ liệu Microsoft Access. I. GIỚI THIỆU VỀ VISUAL BASIC 6.0: Microsoft Visual Basic 6.0 tuy không còn là hiện thân mới nhất và độc đáo của ngôn ngữ BASIC như cách đây vài năm nhưng nó vẫn còn tính năng ưu việt cho bạn hệ thống phát triển ứng dụng của Windows toàn diện và trọn gói. Microsoft Visual Basic 6.0 có nhiều công cụ hổ trợ mà bạn có thể viết thêm và biên dịch các file trợ giúp. Nó bao gồm: 1. Các công cụ điều khiển ( controls). Bao gồm các công cụ trên cửa sổ toolbox , những cái mà bạn có thể đặt vào biểu mẫu để tương tác với người dùng và điều khiển luồng chương trình. 2. Chương trình ( Program). Là tập hợp các câu lệnh để cho máy tính thực hiện các công việc nào đó theo ý muốn người lập trình. Bản thân Microsoft Visual Basic là trình ứng dụng. Bạn tải và thực hiện hệ thống giống như thực hiện các chương trình ứng dụng khác. Nó còn là công cụ rất tuyệt vời, các lập trình viên viết, kiểm tra và chạy các trình ứng dụng của Windows. Nó cung cấp các Form windows là vùng làm việc, nó duy trì các đối tượng tương tác của chương trình như các nút lệnh, các nhãn, các hộp thoại văn bản, các thanh cuộn và các công cụ điều khiển khác. 1. Đề án (Project): là tập hợp các file bạn tạo cho chương trình ứng dụng Windows của mình. 2. Wizard : Đây là các hộp thoại hỏi và trả lời tự động làm việc. 3. Trình biên dịch (Compiler): là hệ thống chuyển đổi chương trình bạn viết thành trình ứng dụng khả thi của máy tính. 4. Developer Studio: là môi trường phát triển của Visual Basic. Mặc dù Microsoft Visual Basic là ngôn ngữ lập trình toàn diện, nhưng nó vẫn duy trì ngôn ngữ BASIC thừa kế nó. Các lập trình viên vào cuối thập niên 1950 đã phát triển ngôn ngữ lập trình BASIC cho các lập trình viên sơ cấp. BASIC dễ sử dụng hơn các ngôn ngữ lập trình khác nhiều lần, như COBOL và FORTRAN. Microsoft không bao giờ quên nền tảng của VB khi phát triển nó. Nó giúp cho người lập trình có được nhiều chương trình Windows chỉ trong thời gian ngắn. Một số tính năng mới trong Visual Basic 6.0 : Microsoft Visual Basic 6.0 có nhiều tính năng mới, các điều khiển mới cho phép ta viết chương trình ứng dụng kết hợp giao diện, các xử lý và tính năng của office 97 và trình duyệt WEB Internet Explorer. Microsoft Visual Basic 6.0 cho phép ta lập trình để thêm điều khiển vào dự án tự động và có thể tạo ra các ActiveX hiệu chỉnh. 3. Làm việc với Microsoft Visual Basic 6.0. 3.1. Khám phá dữ liệu mới. Visual Basic cung cấp các đối tượng dữ liệu ActiveX ( ActiveX Data Object – ADO ). Trong các phiên bản trước của VB, truy cập dữ liệu được thực hiện thông qua DAO ( Đối tượng truy cập dữ liệu- Data Access Object ) và RDO ( Đối tượng dữ liệu từ xa- Remote Data Object). ADO tổng hợp và thay thế các kỹ thuật này. ADO dễ dùng hơn và có tầm hoạt động rộng hơn. Ta có thể dùng ADO để kết nối với cơ sở dữ liệu của một máy để bàn hoặc một máy chủ chứa cơ sở dữ liệu ở xa. Hơn thế nữa ADO còn cho phép truy cập nhiều kiểu dữ liệu, ví dụ thư điện tử. Kỹ thuật ADO hiện nay chứa trong điều khiển mới, điều khiển dữ liệu ADO. Nó trông giống như các điều khiển dữ liệu trong các phiên bản trước, nhưng phần thuộc tính của điều khiển, ta sẽ thấy có nhiều điểm khác. Nó cho phép kết nối với cơ sở dữ liệu để bàn hay cơ sở dữ liệu máy chủ ODBC trên mạng, hoặc ta có thể tạo kết nối đến các cơ sở dữ liệu khác. Ngoài ADO, Visual Basic 6 còn có bộ công cụ kỹ thuật mới giúp truy cập dữ liệu dễ dàng hơn. Trình thiết kế môi truờng dữ liệu cho phép cho phép xem xét và thao tác dữ liệu trong CSDL khác nhau, bởi vì bản thân môi trường dữ liệu là các đối tượng, ta có thể sử dụng chúng như một điều khiển dữ liệu. Thậm chí ta có thể gắn nó với các điều khiển khác như hợp văn bản hay nhãn. Một vài điều khiển dữ liệu khác cho phép ta tận dụng các thế mạnh của điều khiển dữ liệu ADO. Điều khiển DataGrid cho phép xem dữ liệu dưới dạng bảng và các dòng và cột. DataList và DataCombo tương tự như DBList và Dbcombo trong các phiên bản trước, ta có thể dùng chúng để lấy một danh sách dữ liệu từ điều khiển ADO trong cấu hình hợp danh sách (ListBox) hoặc hợp kết hợp (ComboBox) hoặc chúng ta có thể sử dụng FlexGrid để xem những dữ liệu phức tạp. Visual Basic 6.0 mở rộng khả năng báo cáo với các trình báo cáo dữ liệu cho phép tạo, xem trước và in các báo cáo trong Visual Basic tương tự như ACCESS. Ta có thể lấy các điều khiển báo cáo từ hộp công cụ báo cáo dữ liệu mới và đưa vào biểu mẫu báo cáo dữ liệu. Sau đó gọi phương thức PrintReport() của báo cáo dữ liệu. 3.2. Bổ sung mới về lập trình hướng đối tượng. Visual Basic 6.0 giúp tạo các lớp và điều khiển ActiveX phong phú hơn. Giờ đây ta có thể lưu dữ liệu qua các lớp tự tạo từ session này sang session khác thông qua túi thuộc tính ( Property bag ). Ta cũng có thể tạo hai kiểu lớp hiệu chỉnh data-aware là data source và Data consumers. Các kiểu lớp dữ liệu này hoạt động tương tự như các đối tượng dữ liệu ADO, nhưng chúng đáp ứng được yêu cầu của khách hàng nhiều hơn. Add-in là công cụ Visual Basic mà các lập trình viên có thể lập trình để tạo cho các lập trình viên khác. Nhưng Add-in được viết trong Visual Basic chỉ có thể thi hành trong IDE của VB. Trình tạo ứng dụng Application Wizard, trình biểu mẫu dữ liệu ( Data Forms Wizard ) là những phần thêm mới. • Một số Wizard / Add-in dùng trong mọi phiên bản như : - Trình đóng gói và triển khai tự động ( Package and development Wizard ) công dụng là chuẩn bị và triển khai ứng dụng cho các máy để bàn hoặc dùng qua mạng. - Trình tạo ứng dụng tự động (Application Wizard ): Khởi tạo khung sườn cho ứng dụng. Nó tự động thêm menu, thanh công cụ, tập tin tài nguyên, các điều khiển ActiveX và điều khiển dữ liệu. - Trình quản lý tự động ( Wizard Manager ): tổ chức các trình tự động khác nhau để có thể truy cập từ trong IDE. • Một số Wizard/Add-in dùng trong phiên bản Enterprise và Proffessional như: - Trình đối tượng dữ liệu tự động ( Data Object Wizard): Tạo các đối tượng dữ liệu liên kết với các điều khiển dữ liệu và các ActiveX hiệu chỉnh. - Tiện ích xây dựng lớp ( Class builder Ultility ): dùng tạo giao diện các lớp hiệu chỉnh. - Trình thanh công cụ tự động (toolBar Wizard): Dùng giao diện tạo thanh công cụ cho biểu mẫu. - Trình biểu mẫu dữ liệu tự động(Data Form Wizard): Tạo biểu mẫu chứa các điều khiển tham chiếu đến dữ liệu trong một CSDL. - Trình thiết kế Add-in (Add-in Designer): Tạo các Add-in hiệu chỉnh của VB. - Trình trang thuộc tính tự động( Property page Wizard): Tạo hộp thoại thuộc tính cho các điều khiển ActiveX tự tạo. - Trình gỡ rối T-SQL (T- SQL Debugger): Giúp gỡ rối khi viết các CSDL của SQL Server. - Trình duyệt API Viewer: Giúp tra cứu các khai báo hàm, hằng, kiểu của các Window APIs. - Trình giao diện điều khiển ActiveX (ActiveX control interface Wizard) : Tạo các điều khiển ActiveX. 3.3. Làm việc trong môi trường lập trình. • Tìm hiểu các thành phần của IDE - Định nghĩa IDE : IDE là tên viết tắt của môi trường phát triển tích hợp ( Integrated Development Enviroment). IDE là nơi tạo ra các chương trình Visual Basic, là nơi tập trung các menu, thanh công cụ và các cửa sổ để ta thao tác trên chúng. Mỗi thành phần của IDE có các tính năng ảnh hưởng đến hoạt động lập trình khác nhau. - Thanh menu cho phép bạn thao tác trên toàn bộ ứng dụng, thanh công cụ cho phép thao tác, truy cập các chức năng của thanh menu qua các nút trên thanh công cụ. - Các biểu mẫu (Form) là khối xây dựng chính của chương trình Visual Basic, chúng xuất hiện trong các cửa sổ Form. Chúng ta có thể thêm các công cụ điều khiển vào biểu mẫu của các đề án( Project). - Project Explorer hiển thị các đề án bạn đang làm cũng như các thành phần khác của đề án, bạn có thể duyệt, cài đặt các thuộc tính của điều khiển, biểu mẫu và module trong của sổ Properties. - Cuối cùng bạn xem xét một hoặc nhiều biểu mẫu trên màn hình thông qua của sổ Form Layout. • Sử dụng một số thanh công cụ trong IDE Chúng ta có thể thêm và xoá các thanh công cụ trong IDE của Visual Basic: Thanh công cụ là tâp hợp các nút bấm mang biểu tượng chứa trong một thanh thường đặt dưới thanh menu. Các nút bấm này phải đảm bảo các chức năng thông dụng trong cấu trúc của thanh menu của Visual Basic. Thanh công cụ rất hữu ích và tiết kiệm thời gian để ta chọn qua các mục ở menu con, ta click vào một nút nào đó trên thanh công cụ để gọi một chức năng nào đó trên thanh menu. - Sử dụng thanh công cụ Debug : Thanh công cụ Debug dùng để kiểm tra chương trình và giải quyết một số lỗi có thể xảy ra. Khi gỡ rối chương trình ta làm một số việc như chạy từng dòng chương trình, kiểm tra các giá trị biến, hoặc dừng chương trình tại một điểm nghi ngờ nào đó. - Sử dụng thanh công cụ Edit : Thanh công cụ Edit được dùng để viết chương trình trong các cửa sổ code. Nó bao gồm đầy đủ tính năng có ở menu Edit. Một tính năng lý thú của IDE là thanh công cụ Edit có chức năng complete Word, tự động hoàn tất các từ khoá, nó giúp cho ta tránh được các lỗi cú pháp do gõ sai chính tả. - Thanh công cụ Form Editor dùng để kéo giãn, di chuyển và sắp xếp các điều khiển trên biểu mẫu, nó có tính năng tương tự như menu Format. Thuộc tính ZOrder của điều khiển cho phép điều khiển nào có thể nằm lên trên điều khiển nào, điều khiển có ZOrder bằng không luôn nằm ở bên trên. - Sử dụng thanh công cụ chuẩn ( Standard )là thanh công cụ chính trong IDE, nó cung cấp nhiều tính năng trong menu File, Project, Debug và Run. • Thêm các điều khiển vào thanh công cụ Hộp công cụ là bảng chứa các điều khiển và ta thiết kế giao diện bằng cách chọn các mẫu điều khiển và đưa chúng vào biểu mẫu. Một số điều khiển có sẵn trong VB ta không thể gỡ bỏ khỏi hộp công cụ gọi là các điều khiển nội tại (intrinsic). Một số nằm ngoài VB chứa trong các tập tin có phần mở rộng là .OCX. Những điều khiển này có thể được thêm vào hoặc gỡ bỏ khỏi hộp công cụ. • Quản lý ứng dụng với Project Explorer Project Explorer trong VB 6.0 giúp ta định hướng và quản lý nhiều dự án, nó cho phép tổ chức nhiều dự án chung trong một nhóm gọi là Project groups. Ta có thể lưu tập hợp các đề án thành một tập tin nhóm đề án với phần mở rộng là .vbg. Project Explorer có cấu trúc cây phân cấp, các đề án nằm ở phần trên của cây và các bộ phận của đề án chứa trong phần dưới cây. Khi chúng ta cần thao tác trên thành phần nào của đề án ta chỉ việc chọn phần ấy và xem của sổ Form hoặc của sổ Code của nó. Đặc biệt nó vô cùng hữu ích cho chúng ta trong khi xây dựng nhiều dự án lớn. • Cửa sổ Properties: Mỗi thuộc tính trong cửa sổ có thể có một hoặc nhiều giá trị. Nó giúp bạn xem xét sửa đổi và điều khiển các thuộc tính của điều khiển ActiveX trong chương trình. • Hiển thị trong IDE Ta có thể hiển thị IDE của Visual Basic bằng hai cách : MDI và SDI. - MDI là giao diện đa tài liệu, cho phép ta hiển thị tất cả các cửa sổ thành phần trong IDE như là cửa sổ được chứa đựng trong cửa sổ mẹ. - Trái lại với giao diện SDI các cửa sổ thành phần hiển thị một cách độc lập nhau. Không có cửa sổ chính để chứa các cửa sổ thành phần. • Trợ giúp Không chỉ làm chủ ngôn ngữ lập trình VB, bạn cần phải cần sử dụng thuần thục môi trường VB cũng như hiểu các thông điệp mà VB gửi ra. Mircosoft đã cung cấp một trong những hệ thống trợ giúp tốt nhất cho công cụ phát triên ứng dụng. Những trợ giúp nhạy với ngữ cảnh ( Context-sensitive help) : tại vị trí bất kỳ trong VB bạn nhấn F1, hoặc nút trợ giúp. Nó sẽ kích hoạt hệ thống trợ giúp của Visual Basic, nơi có thể giải thích cũng như đưa ra các lời khuyên và các đoạn chương trình mẫu có liên quan. 3.4. Giới thiệu về thuộc tính, phương thức, sự kiện. Visual Basic là một ngôn ngữ lập trình hỗ trợ hướng đối tượng (Object-Oriented Programming). Trong lập trình hướng đối tượng , lập trình viên chia nhỏ các công việc thành các đối tượng. Từng đối tượng có đời sống riêng của nó, có những đặc điểm gọi là thuộc tính (Properties), có những chức năng riêng biệt gọi là phương thức ( methods). • Thuộc tính. Có thể hiểu nôm na là thuộc tính mô tả đối tượng. Mỗi đối tượng đều có thuộc tính mô tả riêng. Nhưng nhìn chung các đối tượng đều có những thuộc tính chung như : - Left : vị trí canh trái, - Right : vị trí canh phải, - Height :chiều cao của đối tượng điều khiển, - Width: chiều rộng của đối tượng, - Enable : Có giá trị logic ( True/False) quyết định người sử dụng có thể làm việc với các đối tượng này không. - Ngoài ra còn rất nhiều thuộc tính khác tuỳ theo từng đối tượng điều khiển. • Phương thức. Phương thức là những đoạn chương trình chứa trong điều khiển, cho điều khiển biết cách thực hiện công việc nào đó. Tương tự như thuộc tính, mỗi đối tượng điều khiển cũng có các phương thức khác nhau, nhưng cũng có các phương thức rất thông dụng cho hầu hết các đối tượng. Đó là: - Move : thay đổi vị trí của một đối tượng theo yêu cầu của chương trình. - Drag: thi hành hoạt động kéo thả của đối tượng. - SetFocus: cung cấp tầm ngắm cho đối tượng được chỉ ra trong lệnh gọi phương thức. - ZOder : qui định thứ tự xuất hiện của các đối tượng trên màn hình. • Sự kiện. Nếu như thuộc tính mô tả đối tượng, phương thức chỉ ra cách thức đối tượng hành động thì sự kiện là những phản ứng của đối tượng. Tương tự như thuộc tính và phương thức, sự kiện cũng có đặc trương ở từng đối tượng điều khiển. Nhưng những sự kiện thường gặp nhất của các đối tượng là: - Change: Người sử dụng sửa đổi chuỗi ký tự trong hộp kết hợp ( combobox) hoặc hộp văn bản (TextBox). - Click : Người sử dụng các phím của chuột để click lên các đối tượng. - Dblick : Người sử dụng sử dụng phím của chuột để nhấp đúp lên các đối tượng. - DragDrop : Người sử dụng kéo rê một đối tượng sang đối tượng khác. - DragOver: Người sử dụng kéo rê một đối tượng ngang qua một điều khiển khác. - GotFocus: Đưa một đối tượng vào tầm ngắm của người sử dụng. - KeyDown: Người sử dụng nhấn một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - KeyPress: Người sử dụng nhấn và thả một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - KeyUp: Người sử dụng thả một nút trên bàn phím khi một đối tượng đang trong tầm ngắm. - LostFocus: Đưa một dối tượng ra khỏi tầm ngắm. - MouseDown: Người sử dụng nhấn một nút chuột bất kỳ trong khi con trỏ chuột đang nằm trên một đối tượng. - MouseMove : Người sử dụng di chuyển con trỏ ngang qua một đối tượng. - MouseUp : Người sử dụng thả nút chuột trong khi con trỏ chuột đang nằm trên một đối tượng. 3.5. Khả năng sử dụng các DLL và Windows API. Windows cung cấp vô số các hàm gọi, dưới dạng thư viện lên kết động (Dynamic Link Libraries ). Trong Visual Basic 6.0 còn có các tiện ích gọi ngược của DLL ( DLL Callback Facilities ), nghĩa là thay vì ta gọi chương trình trong API, nó cho phép ta gọi một API mà bản thân nó có thể gọi ngược về chương trình của ta như là một phần chương trình của nó vậy. • Giới thiệu về thư viện liên kết động (DLL) Đối với các ngôn ngữ lập trình cổ điển như C, khi biên dịch chương trình, ta có một chương trình .EXE duy nhất có thể thi hành mà không dùng bất kỳ tập tin nào khác, còn tập tin .vbp của Visual Basic không như thế nó phải chạy trong môi trường Visual Basic. Có 2 loại thư viện liên kết : thư viện liên kết tĩnh (SLL) và thư viện liên kết động (DLL). - Liên kết tĩnh : Cung cấp một kết nối bền vững giữa chương trình và module viết sẵn lúc thiết kế, tương tự như viết thủ tục trong Visual Basic và gọi thủ tục đó, nhưng chỉ khác là liên kết tĩnh chứa bên ngoài Visual Basic. Tuy nhiên khi sử dụng cần phải copy đoạn chương trình viết sẵn của liên kết tĩnh vào tập tin chương trình khi biên dịch. Từ đó trở đi nó trở thành một phần của chương trình viết sẵn và gắn chặt với chương trình của ta. - Liên kết động : Là giải pháp linh hoạt hơn liên kết tĩnh, tập tin thư viện bên ngoài chương trình không bị ràng buộc với chương trình. Nó chứa một nơi sao cho tập tin EXE có thể tìm ra và gửi thông điệp cho nó. Khi thi hành các thông điệp này là các cuộc gọi đến các hàm/ thủ tục, yêu cầu phần nào đó của DLL được thi hành. Các DLL của Visual Basic nằm trong thư mục Windows \ System \ • Giới thiệu về các DLL của Windows. - KERNEL32 : Là DLL chính, đảm nhiệm quản lý bộ nhớ, thực hiện chức năng đa nhiệm và những hàm ảnh hưởng trực tiếp đến hoạt động của Windows. - USER32 : Là thư viện quản lý Windows. Thư viện này chứa các hàm xử lý menu, định giờ, truyền tin, tập tin và nhiều phần không được hiển thị khác của Windows. - GDI32 : Là thư viện chứa giao diện thiết bị đồ hoạ (Graphics Device Interface) cung cấp các hàm vẽ trên màn hình, cũng như kiểm tra phần biểu mẫu nào cần vẽ lại. - WINNM: cung cấp các hàm Multimedia để xử lý âm thanh, nhạc, video, thời gian thực, lấy mẫu, vv… Đây là thư viện 32 bit còn thư viện 16 bit tương ứng tên là MMSYSTEM. • Thế mạnh của DLL. - Nhất quán : Người sử dụng ưa chuộng Windows vì đa số đều có một giao diện phổ biến cho mọi ứng dụng, nghĩa là có chương trình chung để tạo ra chúng. - Dễ bảo trì : Những thay đổi hoặc bổ sung nếu có sẽ biểu hiện trên mọi ứng dụng. - Tập tin .EXE nhỏ hơn : Do một phần công việc chứa đựng ở nơi khác và không gắn kết “cứng nhắc” như liên kết tĩnh, kích cỡ tập tin nhỏ hơn. Tuy nhiên DLL còn chứa nhiều thành phần khác chứ không chỉ những gì chương trình của ta cần. Cấu trúc của Windows : DLL là nền tảng thiết kế của Windows. Windows thực chất là tập hợp các DLL để các ứng dụng khác nhau có thể dùng chung. Bên trong các DLL là hàng trăm, ngàn các hàm và thủ tục. Ta gọi chung là Windows API. • Giới thiệu về WIN API - Giao diện lập trình ứng dụng ( Application Programmer’s Interface ) là tập hợp các hàm có sẵn của Windows, chúng gần gủi với ngôn ngữ C/ C++ hơn. Visual Basic được thiết kế theo kiểu che bớt các công việc bên dưới hệ thống. Phần lớn các cuộc gọi đến hàm API được lồng trong các dạng lệnh của Visual Basic, bao gồm các từ khoá, phương thức và thuộc tính. Chúng sẽ được thông dịch thành WinAPI và chúng ta vận dụng các thế mạnh hổ trợ của chúng. - Lớp bọc API và các điều khiển hiệu chỉnh : Điều khiển hiệu chỉnh (OCX hay ActiveX) bản thân chúng là những lớp bọc API, chúng chuyển giao chuyển giao các chức năng theo kiểu Visual Basic một cách thân thiện. Các điều khiển ActiveX và OLE Automation Servers đưa chương trình vào các đề án mà không cần có các DLL thực sự. • Cách gọi hàm API. Gọi hàm API trong Visual Basic không khác với gọi hàm/ thủ tục trong module của đề án. 3.6. Thiết lập báo cáo và truy xuất thông tin. Thiết lập báo cáo trên cơ sở dữ liệu không chỉ là hiển thị cơ sở dữ liệu từ dữ liệu mà nó còn liên quan đến một số hoạt động khác trên dữ liệu. Sau đây tôi xin giới thiệu về một số công cụ lập báo cáo như Data Report, MS Access, Crystal Report. 3.6.1. Sử dụng một số công cụ để lập báo cáo trong Visual Basic. • Sử dụng thiết kế DATAREPORT: Đây là điểm nổi bậc trong VB 6, thiết kế Datareport là cách trực quan để tạo báo cáo trong môi trường phát triển VB, nó cung cấp các chức năng hết sức cơ bản nhưng lại lại dễ dùng. Các điều khiển Report bao gồm : - các điều khiển nhãn, - Điều khiển hợp văn bản, - Điều khiển ảnh, - Điều khiển đoạn thẳng và điều khiển hình dạng, - Điều khiển hàm cho phép chèn các tính toán tóm tắt vào báo cáo. Chúng ta có thể xem báo cáo trong chế độ Print Preview bằng cách thi hành phương thức Show • Sử dụng MS Access để lập báo cáo: MS Access cho phép viết các báo cáo cơ sở dữ liệu. Nó hổ trợ giao diện dễ dùng và trực quan. Nó cho phép sắp xếp và phân nhóm cũng như sử dụng các hiệu chỉnh trong báo cáo. Hai kỹ thuật để thực hiện là: - Sử dụng Automation để thi hành báo cáo Access. - Sử dụng VSREPORTS để thi hành báo cáo Access. • Sử dụng CRYSTAL REPORT để lập báo cáo: Ta không thể tạo báo cáo bằng chương trình mà thay vào đó ta dùng Crystal Report để xây dựng báo cáo. Sau khi xây dựng xong báo cáo ta lưu nó và phân phát cùng các ứng dụng cho người sử dụng. 3.6.2. Sử dụng các công cụ in ấn trong Visual Basic. • Sử dụng đối tượng Printer. Ta có thể dùng đối tượng Printer của Visual Basic để in dữ liệu từ ứng dụng. Tuy nhiên cách này đòi hỏi lập trình nhiều và không linh hoạt trong những trường hợp cần kiểm soát kết quả in ấn. Khi sử dụng đối tượng printer ta cần thực hiện các bước sau: - Xác định hệ toạ độ ta sẽ dùng với đối tượng Printer. - Tạo các cách bố trí báo cáo. - Viết chương trình tạo đối tượng Recordset dùng bất cứ thư viện truy cập cơ sở dữ liệu nào tuỳ thích. Lặp xuyên qua các mẫu tin để trả về các đối tượng Recordset, gửi dữ liệu đến đối tượng Printer dùng các thuộc tính và các phương thức của nó. Đối tượng Printer đưa ra một số thuộc tính và các phương thức hổ trợ việc thể hiện trang in và các tác vụ điều khiển như : - Thuộc tính CurentX, curentY : kiểm soát vị trí hiện hành trên trang in. - Thuộc tính Font là đối tượng điều khiển các thuộc tính của văn bản chứa trong trang in. - Phương thức Print : trình bày văn bản trên trang in. - Phương thức Newpages chèn một phép ngắt trang vào tác vụ in, thuộc tính page trả về trang in hiện hành của tác vụ in, phương thức KillDoc xoá bỏ một tác vụ in. - Phương thức đồ hoạ như Line, Point, Circle. - Phương thức EnDoc: gửi toàn bộ tác vụ in cho máy in. Thi hành phương thức này ở cuối tác vụ in sử dụng đối tượng Printer. II. QUY TRÌNH QUẢN LÝ: Trong quá trình quản lý thủ công, các thông tin thường xuyên được đưa vào sổ sách đó các thông tin được kết xuất để lập ra các bảng biểu, báo cáo cần thiết. Kiểu thủ công có nhiều công đoạn chồng chéo nhau, chẳng hạn như trong công tác kế toán một chứng từ phải làm nhiều sổ sách để phục vụ cho mục đích khác nhau. Do đó có nhiều sai sót có thể xảy ra ở nhiều công đoạn do việc dư thừa thông tin. Trong quá trình quản lý do khối lượng công việc lớn nên nhiều khi không chú trọng vào một số khâu là đối tượng quan trọng. Vì thế mà thông tin không được đầy đủ. III. MÔ HÌNH MỘT HỆ THỐNG QUẢN LÝ: 1. Mô hình luân chuyển dữ liệu: Để hệ thống quản lý có tính chất ta cần phải có các giải pháp kỹ thuật tương ứng đối với các modul. - Cập nhật thông tin có tính chất cố định để tra cứu. - Cập nhật thông tin có tính chất thay đổi thường xuyên. - Lập sổ sách báo cáo. 2. Cập nhật thông tin có tính chất tra cứu: Thông tin loại này cần cập nhật nhưng không thường xuyên, mà yêu cầu chủ yếu là ta phải tổ chức sao cho hợp lý để có thể tra cứu nhanh chóng các thông tin cần thiết. 3. Cập nhật thông tin động: Khi thiết kế các modul ta nên lưu ý đến các chức năng xử lý đòi hỏi tốc độ nhanh và độ tin cậy cao. Để thực hiện được ta cần lưu ý: - Các thông tin cần lọc từ các thông tin động. - Giao diện màn hình phải hợp lý, giảm tối đa các thao tác cho người nhập. - Tự động nạp các thông tin đã biết và các giá trị lặp. - Kiểm tra tối đa các sai sót có thể xảy ra trong quá trình nhập. 4. Lập sổ sách báo cáo: Để thiết kế được phần này thì trước đó ta phải nắm rất vững về nhu cầu quản lý nghiên cứu kỹ các biểu mẫu, báo cáo… Để sau khi thiết kế được các bảng biểu ta có thể kiểm tra được sự đúng đắn của số liệu sau khi nhập. IV. CÁC NGUYÊN TẮC ĐẢM BẢO: Để xây dựng một thông tin quản lý hoàn chỉnh là một việc hết sức khó khăn đối với tất cả chúng ta, vì để lập chúng vào đó thì sẽ mất thời gian. Vì vậy việc xây dựng hệ thống quản lý thường dựa trên một số nguyên tắc sau: 1. Nguyên tắc cơ sở thông tin thống nhất: Thông tin ở đây được tích luỹ và thường xuyên cập nhật. Do vậy ta phải loại trừ các thông tin trùng lặp, và một điều cần loại trừ nữa là trong bảo đảm thông tin là một sự không nhất quán. 2. Nguyên tắc linh hoạt của thông tin: Thực chất của nguyên tắc này là ngoài các mảng thông tin cần thiết để thực hiện cho một bài toán, ngoài ra có công cụ đặc biệt để tạo ra các mảng làm việc cố định. Do vậy việc tuân theo nguyên tắc này là rất thuận lợi 3. Nguyên tắc làm việc cực tiểu thông tin vào và thông tin ra: Để xây dựng một hệ thông tin quản lý hoàn chỉnh thì nguyên tắc này không thể thiếu được. Vì dựa vào nó mà ta có thể giảm bớt thời gian lãng phí để đưa số liệu vào và còn làm tăng thêm hiệu xuất sử dụng máy tính. Vì chính đầu vào và đầu ra của máy tính là khâu hẹp nhất của hệ thống. Để làm được việc này cần phải có phương hướng có thể ngày càng nhiều việc chuyển tải dữ liệu trên các thiết bị mạng thông tin. Để đảm bảo việc truy xuất nhanh chóng và tăng tốc độ tin cậy của thông tin đầu vào. V. CÁC BƯỚC XÂY DỰNG HỆ THỐNG: 1. Nghiên cứu sơ bộ và xác lập dự án: Ở bước này ta tiến hành tìm hiểu, khảo sát hệ thống phát hiện nhược điểm còn tồn tại, từ đó đề xuất các giải pháp khắc phục, cần cân nhắc tính khả thi dự án. Từ đó định hướng cho các giai đoạn tiếp theo. 2. Phân tích hệ thống: Tiến hành phân tích một cách chi tiết hệ thống hiện tại để xây dựng các lược đồ khái niệm, trên cơ sở đó tiến hành xây dựng lược đồ cho hệ thống mới. 3. Thiết kế tổng thể: Nhằm xác định vai trò vị trí của máy tính trong hệ thống mới. Phân tích rõ phần việc nào sẽ được xử lý bằng máy tính, phần việc nào xử lý thủ công. 4. Thiết kế chi tiết: - Thiết kế các thủ tục thủ công nhằm xử lý thông tin trước khi đưa vào máy tính. - Thiết kế các phương pháp cập nhật và xử lý thông tin cho máy tính - Thiết kế chương trình, các giao diện người sử dụng, các tệp dữ liệu - Chạy thử chương trình VI. THIẾT KẾ DỮ LIỆU: 1. Bảng dữ liệu “DOCGIA”: 2. Bảng dữ liệu “MUONTRA”: 3. Bảng dữ liệu “SACH”: * Sơ đồ quan hệ giữa các bảng (Relationships): VII. GIAO DIỆN CHƯƠNG TRÌNH: * Form MENU: * Form Cập nhật Độc giả: * Form Cập nhật Sách: * Form Tìm kiếm theo Độc giả: + Tìm kiếm theo Mã độc giả: + Tìm kiếm theo tên độc giả: * Form Tìm kiếm theo Sách: + Tìm kiếm theo Mã sách: + Tìm kiếm theo Tên sách: * Form Xử lý thông tin Mượn: * Form Xử lý thông tin Trả: * Form Xử lý thông tin quá hạn: * Giấy báo trả sách: Chương 5 CÀI ĐẶT, SỬ DỤNG ĐÁNH GIÁ KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN I. CÀI ĐẶT, SỬ DỤNG: * Cài đặt: Chương trình được cài đặt bởi Visual Basic 6.0 với giao diện dễ nhìn với các nút lệnh làm việc thuận tiện cho việc cập nhật hay xử lý thông tin. * Sử dụng: Tạo thư mục “QLTV” và Copy file có tên là “QLTV.vbp” có trong đĩa CD vào ổ cứng. Sau đó chạy chương trình bằng biểu tượng “QLTV” hoặc tạo biểu tượng ra màn hình Desktop để chạy trực tiếp. Chương trình sẽ tự động chạy với form chính. Sau khi sử dụng xong người sử dụng muốn ra khỏi chương trình thì đưa chuột đến Menu thoát để kết thúc làm việc với chương trình Quản lý Thư viện. II. ĐÁNH GIÁ KẾT LUẬN CH ƯƠNG TRÌNH: 1. Tính khả thi của đề tài: Đề tài Quản lý Thư viện là một đề tài mang tính chất thực tế cao, được viết trên ngôn ngữ VB 6.0. Đề tài dựa trên quá trình khảo sát cụ thể hệ thống của trường và đưa ra những giải pháp tối ưu mang lại hiệu quả cao cho người Quản lý Thư viện và độc giả, đề tài này có thể ứng dụng vào trường THCS Tân Tiến hiện nay. 2. Kết quả đạt được: Sau khi chạy thử chương trình, chương trình đã đạt được một số kết quả do bài toán đặt ra như: - Cập nhật độc giả nhanh chóng. - Cập nhật và lưu trữ sách đầy đủ. - Các thông tin xử lý mượn trả sách nhanh gọn. - Tìm kiếm thông tin nhanh, chính xác. - Kiểm soát được số lượng sách, số lượng độc giả. - Thông kê báo cáo chính xác đạt hiệu quả cao. 3. Những hạn chế cần khắc phục: Tuy bài toán đã đạt được một số yêu cầu ban đầu của giáo viên hướng dẫn đặt ra. Tuy nhiên, về giao diện cũng như quy trình khai thác hệ thống cũng chưa thật sự thân thiện và dễ sử dụng cho người khai thác hệ thống. Ngoài hệ thống cần phải sửa đổi một số chức năng, cấu trúc dữ liệu cho phù hợp với thực tế. 4. Hướng phát triển của đề tài: Kết quả chủ yếu của đồ án tốt nghiệp này là mở ra một hướng mới cho việc phát triển chương trình Quản lý Thư viện của trường THCS Tân Tiến với những gì thu được qua quá trình khảo sát hệ thống thực tế. Do thời gian có hạn nên em chi dừng lại mức phân tích thiết kế hệ thống và một phần trong công việc xây dựng hệ thống mới. Chính vì vậy, hệ thống mà em thực hiện không thể tránh khỏi những sai sót nhất định. Mục đích của đề tài mới tập trung vào mô hình Quản lý Thư viện trường THCS Tân Tiến, chưa có tính mở rộng cho các trường khác cùng hệ cùng mô hình. KẾT LUẬN Trong tình hình thực tế hiện nay nhu cầu quản lý các tài liệu văn bản trong các cơ quan, và đặc biệt đối với thư viện trường THCS Tân Tiến vẫn lưu trữ và xử lý thông tin bằng sổ sách là một việc rất mất thời gian và khó khăn. Do đó chương trình Quản lý Thư viện này sẽ giúp nhân viên thư viện lưu trữ và xử lý thông tin kịp thời và nhanh chóng, đảm bảo các yêu cầu cần thiết của độc giả, đưa các thông tin và dữ liệu kịp thời mà quản lý bằng sổ sách không thể có được. Sau một thời gian làm đề tài với thời gian có hạn chương trình đã đạt được cơ bản yêu cầu ban đầu đặt ra. Tuy vậy để chương trình được ứng dụng tốt hơn thân thiện hơn với người sử dụng và ứng dụng được vào cho trường THCS Tân Tiến thì tác giả cần phải đầu tư thêm nhiều thời gian và công sức thì mới có thể đưa vào ứng dụng thực tế. Tuy vậy, do chưa nhiều kinh nghiệm nên chương trình không tránh khỏi những thiếu sót. Rất mong được sự giúp đỡ của các thầy cô và bạn bè để chương trình được hoàn thiện hơn. Một lần nữa em xin chân thành cảm ơn cô giáo ThS.Nguyễn Thanh Hương cùng các thầy cô trong Bộ môn Công nghệ thông tin đã tận tình chỉ bảo em trong quá trình thực tập. Cảm ơn ban Quản lý thư viện và các thầy cô trường THCS Tân Tiến đã tạo điều kiện cho em thực tập trong thời gian qua. Hưng yên, tháng 03 năm 2008 Sinh viên thực hiện Quách Thị Huế PHỤ LỤC * Modul_chinh: 'Khai bao bien cho toan chuong trinh Global cn As New ADODB.Connection Global rs As New ADODB.Recordset Public dd, s As String Public rsktra As New ADODB.Recordset Public flag_taomoi As Boolean Sub main() dd = App.Path & "\QLTVien.mdb" cn.CursorLocation = adUseClient cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & dd & ";" & _ "Persist Security Info=False" cn.Open frmmain.Show 'frmCNDG.Show End Sub Function mo_bang(caulenh_sql As String) As ADODB.Recordset If mo_bang Is Nothing Then Set mo_bang = New ADODB.Recordset If mo_bang.State = adStateOpen Then mo_bang.Close mo_bang.Open caulenh_sql, cn, adOpenDynamic, adLockOptimistic, adCmdText End Function * Form Main: Private Sub mncapnhatsach_Click() frmCNS.Show End Sub Private Sub mnudg_Click() frmCNDG.Show End Sub Private Sub mnuQH_Click() 'frmDGQH.Show frmXLQH.Show End Sub Private Sub mnuthoat_Click() Unload Me End Sub Private Sub mnutimDG_Click() frmTKDG.Show End Sub Private Sub mnutimsach_Click() frmTKS.Show End Sub Private Sub mnuXLMS_Click() frmMS.Show End Sub Private Sub mnuXLTS_Click() frmTS1.Show End Sub Private Sub TKDGCMS_Click() frm_TKDGchuaMS.Show End Sub Private Sub TKDGMS_Click() frm_TKDGMS.Show End Sub Private Sub TKNCC_Click() frm_TKNhaXB.Show End Sub Private Sub TKSCM_Click() frm_TKSChuamuon.Show End Sub Private Sub TKSDM_Click() frm_TKSDangmuon.Show End Sub * Form Cập nhật độc giả: Dim sqlktra As String Dim sql As String Sub mo_csdl() sql = "SELECT * FROM DOCGIA " Set rs = mo_bang(sql) Set gridDG.DataSource = rs hienthi ' goi thu tuc hien thi du lieu cmdhuy.Enabled = False cmdluu.Enabled = False cmdtaomoi.Enabled = True End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtmadg.Text = !Madocgia txthoten.Text = !HovaTen txtlop.Text = !Lop txtnsinh.Value = !NamSinh txtsothe.Text = !SoThe If !GioiTinh = -1 Then optnam.Value = True If !GioiTinh = 0 Then optnu.Value = True End With End If End Sub Private Sub cmdhuy_Click() txtmadg.Text = "" txthoten.Text = "" txtlop.Text = "" txtnsinh.Text = "" txtsothe.Text = "" If flag_taomoi = True Then rs.CancelUpdate End If cmdluu.Enabled = False cmdhuy.Enabled = False cmdtaomoi.Enabled = True cmdxoa.Enabled = True cmdsua.Enabled = True End Sub Private Sub cmdinthe_Click() frmTTV.Show End Sub Private Sub cmdluu_Click() If txtmadg.Text = "" Then MsgBox "Ban chua nhap ma doc gia!", vbInformation, "Thong bao" txtmadg.SetFocus Exit Sub End If If txthoten = "" Then MsgBox "Ban chua nhap ho ten!", vbInformation, "Thong bao" txthoten.SetFocus Exit Sub End If If (flag_taomoi = True) Then ' Kiem tra xem co ton tai MADG khi tao moi sqlktra = "SELECT Madocgia FROM DOCGIA WHERE Madocgia='" & txtmadg.Text & "'" Set rsktra = mo_bang(sqlktra) If rsktra.RecordCount > 0 Then MsgBox "Da ton tai Ma doc gia:" & txtmadg.Text, vbInformation, "Thong bao" txtmadg.SetFocus rsktra.Close Exit Sub End If rs.AddNew 'luu du lieu lay tu cac text vao database rs!Madocgia = txtmadg.Text rs!HovaTen = txthoten.Text rs!Lop = txtlop.Text rs!NamSinh = txtnsinh.Value rs!SoThe = txtsothe.Text End If rs.Update rs!HovaTen = txthoten.Text rs!Lop = txtlop.Text rs!NamSinh = txtnsinh.Text rs!SoThe = txtsothe.Text cmdtaomoi.Enabled = True cmdhuy.Enabled = False cmdluu.Enabled = False cmdsua.Enabled = True cmdxoa.Enabled = True End Sub Private Sub cmdsua_Click() flag_taomoi = False txtmadg.Locked = True txtmadg.Enabled = False cmdluu.Enabled = True cmdsua.Enabled = False End Sub Private Sub cmdtaomoi_Click() txtmadg.Text = "" txtlop.Text = "" txtnsinh.Text = "" txtsothe.Text = "" txthoten.Text = "" flag_taomoi = True cmdtaomoi.Enabled = False cmdluu.Enabled = True cmdhuy.Enabled = True cmdsua.Enabled = False cmdxoa.Enabled = False End Sub Private Sub cmdthoat_Click() Unload Me End Sub Private Sub cmdxoa_Click() If rs.RecordCount <= 0 Then MsgBox "Khong con doc gia nao de xoa!", vbInformation Exit Sub End If If MsgBox("co xoa doc gia voi ma la " & txtmadg.Text & " khong?", vbQuestion + vbYesNo) = vbYes Then rs.Delete If rs.BOF = True Then rs.MoveNext If rs.BOF = False Then rs.MovePrevious rs.Requery hienthi End If cmdluu.Enabled = False End Sub Private Sub Form_Load() mo_csdl End Sub Private Sub gridDG_Click() hienthi End Sub * Cập nhật sách: Dim sqlktra As String Dim sql As String Sub mo_csdl() sql = "SELECT * FROM SACH " Set rs = mo_bang(sql) Set gridsach.DataSource = rs hienthi ' goi thu tuc hien thi du lieu cmdhuy.Enabled = False cmdluu.Enabled = False cmdtaomoi.Enabled = True End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtNgaynhap.Value = !Ngaynhap txtMS.Text = !Masach txtTentg.Text = !Tentacgia txtTensach.Text = !Tensach txtLS.Text = !Loaisach txtNXB.Text = !NhaXB txtNamXB.Text = !NamXB txtSotrang.Text = !Sotrang txtSotap.Text = !Sotap txtDG.Value = !Dongia txtSL.Value = !Soluong txtKesach.Text = !Kesach txtGiasach.Text = !Giasach End With End If End Sub Private Sub cmdhuy_Click() txtNgaynhap.Value = "" txtMS.Text = "" txtTentg.Text = "" txtTensach.Text = "" txtLS.Text = "" txtNXB.Text = "" txtNamXB.Text = "" txtSotrang.Text = "" txtSotap.Text = "" txtDG.Value = "" txtSL.Value = "" txtKesach.Text = "" If flag_taomoi = True Then rs.CancelUpdate End If cmdluu.Enabled = False cmdhuy.Enabled = False cmdtaomoi.Enabled = True cmdxoa.Enabled = True cmdsua.Enabled = True End Sub Private Sub cmdluu_Click() If txtNgaynhap.Value = "" Then MsgBox "Ban chua nhap ngay nhap!", vbInformation, "Thong bao" txtNgaynhap.SetFocus Exit Sub End If If txtMS = "" Then MsgBox "Ban chua nhap ma sach!", vbInformation, "Thong bao" txtMS.SetFocus Exit Sub End If If (flag_taomoi = True) Then ' Kiem tra xem co ton tai MASACH khi tao moi sqlktra = "SELECT Masach FROM SACH WHERE Masach='" & txtMS.Text & "'" Set rsktra = mo_bang(sqlktra) If rsktra.RecordCount > 0 Then MsgBox "Da ton tai Ma sach:" & txtMS.Text, vbInformation, "Thong bao" txtMS.SetFocus rsktra.Close Exit Sub End If rs.AddNew 'luu du lieu lay tu cac text vao database If rs.RecordCount > 0 Then With rs !Ngaynhap = txtNgaynhap.Value !Masach = txtMS.Text !Tentacgia = txtTentg.Text !Tensach = txtTensach.Text !Loaisach = txtLS.Text !NhaXB = txtNXB.Text !NamXB = txtNamXB.Text !Sotrang = txtSotrang.Text !Sotap = txtSotap.Text !Dongia = txtDG.Value !Soluong = txtSL.Value !Kesach = txtKesach.Text !Giasach = txtGiasach.Text End With End If End If rs.Update With rs !Ngaynhap = txtNgaynhap.Value !Masach = txtMS.Text !Tentacgia = txtTentg.Text !Tensach = txtTensach.Text !Loaisach = txtLS.Text !NhaXB = txtNXB.Text !NamXB = txtNamXB.Text !Sotrang = txtSotrang.Text !Sotap = txtSotap.Text !Dongia = txtDG.Value !Soluong = txtSL.Value !Kesach = txtKesach.Text !Giasach = txtGiasach.Text End With cmdtaomoi.Enabled = True cmdhuy.Enabled = False cmdluu.Enabled = False cmdsua.Enabled = True cmdxoa.Enabled = True End Sub Private Sub cmdsua_Click() flag_taomoi = False txtMS.Locked = True txtMS.Enabled = False cmdluu.Enabled = True cmdsua.Enabled = False End Sub Private Sub cmdtaomoi_Click() txtNgaynhap.Value = "" txtMS.Text = "" txtTentg.Text = "" txtTensach.Text = "" txtLS.Text = "" txtNXB.Text = "" txtNamXB.Text = "" txtSotrang.Text = "" txtSotap.Text = "" txtDG.Value = "" txtSL.Value = "" txtKesach.Text = "" txtGiasach.Text = "" flag_taomoi = True cmdtaomoi.Enabled = False cmdluu.Enabled = True cmdhuy.Enabled = True cmdsua.Enabled = False cmdxoa.Enabled = False End Sub Private Sub cmdthoat_Click() Unload Me End Sub Private Sub cmdxoa_Click() If rs.RecordCount <= 0 Then MsgBox "Khong con sach nao de xoa!", vbInformation Exit Sub End If If MsgBox("co xoa sach voi ma la " & txtMS.Text & " khong?", vbQuestion + vbYesNo) = vbYes Then rs.Delete If rs.BOF = True Then rs.MoveNext If rs.BOF = False Then rs.MovePrevious rs.Requery hienthi End If cmdluu.Enabled = False End Sub Private Sub Form_Load() mo_csdl End Sub Private Sub gridsach_Click() hienthi End Sub * Form Mượn sách: Dim sqlMS As String Dim sqlDG As String Dim sqlktra As String Dim sql As String Sub mo_csdl() sql = "SELECT * FROM MUONTRA" Set rs = mo_bang(sql) Set gridMuonsach.DataSource = rs hienthi ' goi thu tuc hien thi du lieu End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtMaDG.Text = !Madocgia txtMS.Text = !Masach txtNgaymuon.Value = !Ngaymuon txtNgaytra.Value = !Ngayhentra End With End If End Sub Public Sub DM_Masach() sqlMS = "Select Masach From SACH" Set rsMS = mo_bang(sqlMS) Set txtMS.RowSource = rsMS txtMS.ListField = "Masach" 'Hien thi truong ma sach End Sub Public Sub DM_MaDG() sqlDG = "Select Madocgia From DOCGIA" Set rsDG = mo_bang(sqlDG) Set txtMaDG.RowSource = rsDG txtMaDG.ListField = "Madocgia" 'Hien thi truong ma doc gia End Sub Private Sub cmdhuy_Click() txtMaDG.Text = "" txtMS.Text = "" txtNgaymuon.Value = "" txtNgaytra.Value = "" rs.CancelUpdate End Sub Private Sub cmdMuon_Click() If txtMaDG.Text = "" Then MsgBox "Ban chua chon Ma doc gia!", vbInformation, "Thong bao" txtMaDG.SetFocus Exit Sub End If If txtMS = "" Then MsgBox "Ban chua chon Ma sach!", vbInformation, "Thong bao" txtMS.SetFocus Exit Sub End If 'luu du lieu lay tu cac text vao database rs.AddNew If rs.RecordCount > 0 Then With rs !Madocgia = txtMaDG.Text !Masach = txtMS.Text !Ngaymuon = txtNgaymuon.Value !Ngayhentra = txtNgaytra.Value End With End If rs.Update With rs !Madocgia = txtMaDG.Text !Masach = txtMS.Text !Ngaymuon = txtNgaymuon.Value !Ngayhentra = txtNgaytra.Value End With End Sub Private Sub cmdthoat_Click() Unload Me End Sub Private Sub Form_Load() mo_csdl DM_Masach DM_MaDG End Sub Private Sub gridMuonsach_Click() hienthi End Sub Private Sub txtNgaymuon_Change() txtNgaytra = txtNgaymuon + 30 End Sub * Form Trả sách: Dim sqlMS As String Dim sqlDG As String Dim sqlktra As String Dim sql As String Sub mo_csdl() sql = "SELECT * FROM MUONTRA" Set rs = mo_bang(sql) Set gridTS.DataSource = rs hienthi ' goi thu tuc hien thi du lieu End Sub Sub hienthi() cboMDG.Text = rs!Madocgia cboMS.Text = rs!Masach cboNgayhentra.Value = rs!Ngayhentra cboNT.Value = rs!Ngaytra End Sub Public Sub DM_MaDG() sqlDG = "Select Madocgia From MUONTRA" Set rsDG = mo_bang(sqlDG) Set cboMDG.RowSource = rsDG cboMDG.ListField = "Madocgia" 'Hien thi truong ma doc gia End Sub Private Sub cboMDG_Click(Area As Integer) Set rs = New Recordset rs.Open "Select Masach from MUONTRA where Madocgia= '" & cboMDG.Text & "'", cn, adOpenDynamic, adLockOptimistic cboMS.Text = rs.Fields("Masach") End Sub Private Sub cmdquahan_Click() Dim Thongbao As Integer If (rs!Ngaytra - rs!Ngayhentra) <= 0 Then Thongbao = MsgBox("Doc gia tra sach dung han!Xin xoa TT doc gia", vbOKOnly, "Thong bao") If vbOK Then rs.Delete Else frmXLQH.Show End If End Sub Private Sub cmdthoat_Click() Unload Me End Sub Private Sub cmdtra_Click() If cboMDG.Text = "" Then MsgBox "Ban chua chon Ma doc gia!", vbInformation, "Thong bao" cboMDG.SetFocus Exit Sub End If If cboMS = "" Then MsgBox "Ban chua chon Ma sach!", vbInformation, "Thong bao" cboMS.SetFocus Exit Sub End If 'luu du lieu lay tu cac text vao database 'rs.AddNew If rs.RecordCount > 0 Then With rs !Madocgia = cboMDG.Text !Masach = cboMS.Text !Ngayhentra = cboNgayhentra.Value !Ngaytra = cboNT.Value End With End If rs.Update With rs !Madocgia = cboMDG.Text !Masach = cboMS.Text !Ngayhentra = cboNgayhentra.Value !Ngaytra = cboNT.Value End With End Sub Private Sub Form_Load() mo_csdl 'DM_Masach DM_MaDG End Sub Private Sub gridTS_Click() If Not rs!Ngaytra Then hienthi Else cboMDG.Text = rs!Madocgia cboMS.Text = rs!Masach cboNgayhentra.Value = rs!Ngayhentra cboNT = "" End If End Sub * Form Xử lý quá hạn: Dim rs As New ADODB.Recordset Dim sqlMS As String Dim sqlDG As String Dim sqlktra As String Dim sql As String Sub mo_csdl() sql = "SELECT * FROM MUONTRA where (Ngaytra-Ngayhentra)>0" Set rs = mo_bang(sql) Set Grid1.DataSource = rs hienthi ' goi thu tuc hien thi du lieu End Sub Sub hienthi() If rs.RecordCount > 0 Then With rs txtMDG.Text = !Madocgia txtMS.Text = !Masach txtNgaymuon.Value = !Ngaymuon txtNgayhentra.Value = !Ngayhentra txtNgaytra.Value = !Ngaytra 'txtQuahan.Text = !Quahan End With End If 'txtQuahan = txtNgaytra - txtNgayhentra End Sub Private Sub cmdquaylai_Click() 'txtMDG.Text = "" ' txtMS.Text = "" ' txtNgaymuon.Value = "" ' txtNgayhentra.Value = "" ' txtNgaytra.Value = "" ' txtQuahan.Text = "" rs.MovePrevious End Sub Private Sub cmdthoat_Click() Unload Me End Sub Private Sub cmdtieptuc_Click() 'txtMDG.Text = "" ' txtMS.Text = "" ' txtNgaymuon.Value = "" ' txtNgayhentra.Value = "" ' txtNgaytra.Value = "" ' txtQuahan.Text = "" rs.MoveNext End Sub Private Sub cmdxoaDG_Click() End Sub Private Sub Form_Load() mo_csdl 'If rs!Ngaytra - rs!Ngayhentra > 0 Then 'End If End Sub Private Sub grid1_Click() hienthi txtQuahan = txtNgaytra - txtNgayhentra End Sub Private Sub txtQuahan_Change() txtQuahan = txtNgaytra - txtNgayhentra End Sub * Form Tìm kiếm độc giả: Public sql As String Dim rs_timkiem As New ADODB.Recordset Private Sub cmdthoat_Click() Unload Me End Sub Sub Ma_Docgia() Dim sql_MDG As String ' Dung cho Ma doc gia sql_MDG = "Select Madocgia from DOCGIA" Set rs = mo_bang(sql_MDG) Set cboMDG.RowSource = rs If rs.RecordCount <= 0 Then Exit Sub cboMDG.ListField = "Madocgia" 'cboMDG.BoundColumn = "Madocgia" End Sub Sub Ten_Docgia() Dim sql_TDG As String ' Dung cho Ten doc gia sql_TDG = "Select HovaTen from DOCGIA" Set rs = mo_bang(sql_TDG) Set cboTDG.RowSource = rs If rs.RecordCount <= 0 Then Exit Sub cboTDG.ListField = "HovaTen" 'cboTDG.BoundColumn = "HovaTen" End Sub Private Sub Form_Load() Ma_Docgia Ten_Docgia End Sub Private Sub cmdTK_Click() If optMDG.Value = True Then 'Tim kiem theo ma sql = "select * from DOCGIA where Madocgia like '" & cboMDG.Text & "%'" End If If optTDG.Value = True Then ' tim kiem theo ten DG sql = "select * from DOCGIA where HovaTen like '%" & cboTDG.Text & "'" End If Set rs_timkiem = mo_bang(sql) If rs_timkiem.RecordCount = 0 Then MsgBox "Khong tim thay ban ghi nao" End If Set gridTKDG.DataSource = rs_timkiem End Sub * Form Tìm kiếm sách: Public sql As String Dim rs_timkiem As New ADODB.Recordset Private Sub cmdthoat_Click() Unload Me End Sub Sub Ma_Sach() Dim sql_MS As String ' Dung cho Ma sach sql_MS = "Select Masach from SACH" Set rs = mo_bang(sql_MS) Set cboMS.RowSource = rs If rs.RecordCount <= 0 Then Exit Sub cboMS.ListField = "Masach" End Sub Sub Ten_Sach() Dim sql_TS As String ' Dung cho Ten sach sql_TS = "Select Tensach from SACH" Set rs = mo_bang(sql_TS) Set cboTS.RowSource = rs If rs.RecordCount <= 0 Then Exit Sub cboTS.ListField = "Tensach" End Sub Sub Ten_Tacgia() Dim sql_TTG As String ' Dung cho Ten tac gia sql_TTG = "Select Tentacgia from SACH" Set rs = mo_bang(sql_TTG) Set cboTG.RowSource = rs If rs.RecordCount <= 0 Then Exit Sub cboTG.ListField = "Tentacgia" End Sub Sub Ten_NhaXB() Dim sql_NXB As String ' Dung cho Ten nha xuat ban sql_NXB = "Select NhaXB from SACH" Set rs = mo_bang(sql_NXB) Set cboNXB.RowSource = rs If rs.RecordCount <= 0 Then Exit Sub cboNXB.ListField = "NhaXB" End Sub Private Sub Form_Load() Ma_Sach Ten_Sach Ten_Tacgia Ten_NhaXB End Sub Private Sub cmdTK_Click() If optMS.Value = True Then 'Tim kiem theo ma sql = "select * from SACH where Masach like '" & cboMS.Text & "%'" End If If optTS.Value = True Then ' tim kiem theo ten sach sql = "select * from SACH where Tensach like '%" & cboTS.Text & "'" End If If optTG.Value = True Then 'Tim kiem theo ten tac gia sql = "select * from SACH where Tentacgia like '" & cboTG.Text & "%'" End If If optNXB.Value = True Then ' tim kiem theo ten NXB sql = "select * from SACH where NhaXB like '%" & cboNXB.Text & "'" End If Set rs_timkiem = mo_bang(sql) If rs_timkiem.RecordCount = 0 Then MsgBox "Khong tim thay ban ghi nao" End If Set gridTKS.DataSource = rs_timkiem End Sub TÀI LIỆU THAM KHẢO 1. Giáo trình phân tích và thiết kế hệ thống thông tin quản lý – ThS.Nguyễn Hữu Trọng, Trường Đại Học Thuỷ Sản. 2. Microsoft Visual Basic 6.0 & Lập trình cơ sở dữ liệu – Nguyễn Thị Ngọc Mai (Chủ biên), NXB Lao động - X ã hội 3. Lập trình Visual Basic trong 21 ngày – Nathan Gurewich – On Gurewich, Nhà xuất bản Giáo dục. 4. Những bài thực hành CSDL Visual Basic Nâng cao - VN-GUIDE, Nhà xuất bản Thống Kê 5. Phân tích và thiết kế hệ thống thông tin - Nguyễn Văn Ba, Nhà xuất bản ĐHQG Hà Nội. 6. Visual Basic cho sinh viên & KTV Khoa CNTT - VN-GUIDE, Nhà xuất bản Thống Kê MỤC LỤC

Các file đính kèm theo tài liệu này:

  • doc32904.doc