The library is an important module for any educational institute. Library may contain thousands of books, and its management is a very tough job. The care should be taken for proper distribution of the resources. It should be managed in a manner so that its resources are used efficiently and conveniently. For this rules and rights should be provided to each user.
Manual management of such a large system is a very tedious job and errors may occur sometimes. This may affect the integrity and consistency of the system resulting in an improper resource distribution.
- To change the conventional manual management and replace it with a computerized library management system
- To provide efficient and convenient transaction operations for librarians and users alike
1.2 SOFTWARE OVERVIEW AND FEATURES
Visual Basic was developed from the old Quick Basic language that was available under the DOS operating system. Quick Basic is the same language as BASIC; it is just Microsoft's product name for its version of BASIC.
Visual Basic started out as the Brainchild of Alan Cooper. Cooper developed Visual Basic and then sold the product to Microsoft. Microsoft took the undeveloped product, code-named it "Thunder," the proceeded to create a programming language that would soon become one of the premier development environments in the windows environment. 
Features of Visual Basic
- Visual Basic is a superset of the Visual Basic for Applications (VBA) programming language, which is included with most of the office products.
- Includes a GUI development environment for development Windows applications.
- Provides the ability to develop and test applications using an interpretive run function.
- Allows for the creation of p-code and native code EXE files. P-code is a tokenized form of your source code that will be broken down at runtime into machine code. P-code can be stored more efficiently and executed faster than your source code, which is why Visual Basic will create this intermediary form.
- Object-based development is possible using class modules.
- Rapid application development (RAD).
- Allows for the creation of COM components such as ActiveX controls, DLLs, and EXEs.
- Has many internet development possibilities, including the following:
- ActiveX documents.
- DHTML applications that help you test browser application.
- IIS applications that help you build server-based application.
- Web browser control.
- FTP / HTTP support through a custom control.
- Winsock control.
- Has an excellent integrated "help" facility and many online Help References and also includes good debugging facilities. It has many wizards that help automate repetitive tasks.
- Can be extended easily through the use of Windows API calls, hundreds of third party controls and DLLs, and integration with other Windows applications through COM and DCOM.
- Uses many database access methods to get at different types of data. , , 
Weeks 1 - 3
- Acquiring Visual Basic 6.0 software
- Installing the software
- Learning the Visual Basic Language
Weeks 3 - 6
- Learning details about the application development software
- Learning how to integrate it to external applications and databases
- Acquiring Microsoft Office 2007
Weeks 6 - 9
- Installing Microsoft Office 2007
- Learning about MS Access
- Coding the initial pieces of the project
- Generating Graphical User Interface
- Generating functions and variables
Weeks 9 - 12
- Coding for issuing books in the library system
- Coding for returning books in the library system
- Designing templates of the "issue" and "return" interfaces
- Creating the GUI for "issue" and "return"
- Coding for interfacing MS Access database with the issuing and returning forms
Weeks 12 - 15
- Coding for management of fined books and fine amount of the library system
- Coding for users management and providing access hierarchy
- Designing the fines management GUI
- Integrating MS Access database to fined books
- Coding for changing fine values and updating the database accordingly
Weeks 15 - 18
- Designing overall GUI and adding additional features to software
- Compiling and testing final software
- Correcting errors
- Running final GUI to check for errors
- Organizing software
2. SYSTEM REQUIREMENTS
This section will illustrate the minimum system requirements needed to run this software.
2.1 MINIMUM REQUIREMENTS
- PLATFORM: Microsoft Windows 95 or later, or Microsoft Windows NT Workstation 4.0 (Service Pack 3 recommended) or later
- PROCESSOR: 486DX/66 MHz or higher processor (Pentium or higher processor recommended), or any Alpha processor running Microsoft Windows NT Workstation
- RAM: 16 MB of RAM for Windows 95/98, 32 MB of RAM for Windows NT Workstation
- CD-ROM / DISC DRIVE
- VGA-RESOLUTION SCREEN (Supported by Windows)
- MS OFFICE (MS OFFICE 2007 currently used) , 
Since VB is a very lightweight development tool, the minimum system requirements for it are met by most modern day computers.
3. PRELIMINARY DESIGN
To develop the Library Management Software, one must understand many basic principles / fundamentals of VB which include:
- Adding ActiveX Controls to the application development environment
- Customizing toolbars
- Creating and editing TAB objects
- Adding Progress Control and Data Grids to the project
After getting familiar with these components of the development environment, working with VB becomes simpler. These features will be explained in detail in the later sections. , 
3.2 SOFTWARE OUTLINE AND DESIGN
This software will mainly have three sub-classes:
The first sub-class, "Books", will help in monitoring and regulating:
- All books present in the library
- Books available for issuing
- Currently issued books
The second sub-class, "Users", helps in distinguishing access levels for a normal user compared to that of the system administrator / librarian.
The third sub-class, "Fines", will help in monitoring and also changing:
- The current list of fines for a book
- The fines value multiplier
3.3 DESIGNING TOOLS AND STEPS
3.3.1 ADOCE or ActiveX Data Objects for Windows CE
The ADOCE version 3.1 control is a separate download that must be setup in addition to the SDKs that ship with Microsoft eMbedded Visual Tools 3.0. Nine files must be downloaded onto the device in order for the control to work. Several of these files must be registered on the device. To register a component on a device, use the Control Manager in eMbedded Visual Basic or use the Regsvrce.exe utility.
Before you can use the ADOCE control in eMbedded Visual Basic, you must create a reference to the control in the integrated development environment (IDE). If the control is registered with the Control Manager, the correct components will be installed when you run your application on a device. The following procedure shows how to create a reference to the ADOCE control in the eMbedded Visual Basic IDE.
To use the ADO for WindowsCE control in eMbedded Visual Basic 3.0
- Choose References from the Project menu
- In the References dialog box, select the check box next to Microsoft CE ADO Control 3.1.
- Choose OK.
- The following code sample shows how to programmatically reference the ADOCE control using eMbedded Visual Basic.
Dim objConnection 'Declare a variable for the connection
Dim objRecordset 'Declare a variable for the recordset
Set objConnection = CreateObject("ADOCE.Connection.3.1")
Set objRecordset = CreateObject("ADOCE.Recordset.3.1")
Previous versions of the ADOCE control (2.0) do not have a version number in the programmatic identifiers, or ProgIDS; however, the new ADOCE 3.1 and ADOCE 3.0 do contain version numbers in the ProgIDS. If you do not specifically update your previous code to refer to version 3.1 of the control, an earlier version of the control may be instantiated, if it exists in a device's ROM. If the device's ROM does not contain an earlier version, you will get an "Invalid procedure call or argument: 'CreateObject'" error when you execute your application. The following ProgIDs are used with the ADOCE version 3.1 control:
A toolbar is a control bar containing the bitmap images of controls. These images are basically pushbuttons, check boxes, or radio buttons. Microsoft foundation Classes (MFC) supplies class CToolbar to manage toolbars.
Once enabled, users of MFC toolbars can
- dock them to the edge of a window or
- "Float" them anywhere within the application window.
MFC doesn't support customizable toolbars.
MFC also supports tool tips: pop-up windows that describe a toolbar button's purpose when you hover the mouse over the button. By default, when the user presses a toolbar button, a status string appears in the status bar (if there is one). "Fly by" status bar updating can be activated to display the status string when the mouse is positioned over the button.
As of MFC version 4.0, Windows 95 compliant toolbars are used.
For backward compatibility, MFC keeps hold of the older toolbar implementation in class COldToolBar. The documentation for earlier versions of MFC describes COldToolBar under CToolBar.
Create a first toolbar in your program by selecting the Initial Toolbar option in AppWizard. You can also create additional toolbars.
The progress control can be used to indicate the time taken and progress of a lengthy operation. It is a rectangle that is gradually filled with the system highlight color as the operation progresses. For example, while downloading a file, Windows Vista & 7 systems will fill the progress bar with a green color in correspondence with the progress of the download. MFC progress control class = CProgressCtrl.
When the progress control is first created, you specify its size and position, parent window (usually a dialog box), and ID. By using the dwStyle parameter, you can also specify various window styles for the control and styles for how it fills.
3.3.4 SSTab Control
The SSTab control makes life easier by letting the developer house many "pages" of information on, seemingly, just one "page" or in this case Tabs.
The SSTab control provides a group of tabs, each of which acts as a container for other controls. Only one tab is active in the control at a time, displaying the controls it contains to the user while hiding the controls in the other tabs.
The possible uses of this control are:
- To create a Microsoft Office or Windows 95 (or later) style tabbed dialog box.
- To create a custom tabbed dialog box.
3.3.5 Tab Object
A Tab object represents one out of a collection of tabs in the TabStrip control.
For each Tab object, you can customize its appearance, and you can specify its state with the Selected property.
The Insert Tab and Remove Tab buttons can be used, during design, on the Tabs tab in the Properties Page of the TabStrip control to insert and remove tabs, and use the text boxes to specify any of these properties for a Tab object: Caption, Image, ToolTipText, Tag, Index, and/or Key.
NOTE: It is not mandatory to specify these properties during the design phase. You can also specify these properties at run time.
The Caption and Image properties can be used to provide icons and names for Tabs used in the application.
- To use the Caption property, in the Caption text box on the Tabs tab in the Properties Page of the TabStrip control, type the text you want to appear on the tab or button at run time.
- To use the Image property, put an ImageList control on the form and fill the ListImages collection with ListImage objects, each of which has an index number and an optional key, if you add one. On the General tab in the Properties Page of the TabStrip control, select that ImageList to associate it with the TabStrip control. In the Image text box on the Tabs tab, type the index number or key of the ListImage object that should appear on the Tab object.
Make use of the ToolTipText property to display a string of text temporarily in a small rectangular box at run time when the user's cursor hovers over the tab. To set the ToolTipText property at design time, click on the ShowTips checkbox on the General tab, and after that in the ToolTipText text box on the Tabs tab, type the ToolTip string.
To return a reference to a Tab object a user has selected, use the SelectedItem property; to determine whether a specific tab is selected, use the Selected property. These properties are useful in conjunction with the BeforeClick event to verify or record data associated with the currently-selected tab before displaying the next tab the user selects.
Each Tab object also has read-only properties you can use to reference a single Tab object in the Tabs collection: Left, Top, Height and Width.
3.3.6 DataGrid Control
Displays and enables data manipulation of a series of rows and columns representing records and fields from a Recordset object.
The data-aware DataGrid control appears similar to the Grid control; however, you can set the DataGrid control's DataSource property to a Data control so that the control is automatically filled and its column headers set automatically from a Data control's Recordset object. The DataGrid control is really a fixed collection of columns, each with an indeterminate number of rows.
Each cell of a DataGrid control can hold text values, but not linked or embedded objects. You can specify the current cell in code, or the user can change it at run time using the mouse or the arrow keys. Cells can be edited interactively, by typing into the cell, or programmatically. Cells can be selected individually or by row.
If a cell's text is too long to be displayed in the cell, the text wraps to the next line within the same cell. To display the wrapped text, you must increase the cell's Column object's Width property and/or the DataGrid control's RowHeight property. While designing, we can change the column width by using the properties column of the object.
Recordset object's RecordCount determine the number of columns and rows in the control. A DataGrid control can have as many rows as the system resources can support and up to 32767 columns.
When you select a cell, the ColIndex property is set, thus selecting one of the Column objects in the DataGrid object's Columns collection. The Text and Value properties of the Column object reference the contents of the current cell. The data in the current row can be accessed using the Bookmark property, which provides access to the underlying Recordset object's record. Each column of the DataGrid control has its own font, border, word wrap, and other attributes that can be set without regard to other columns. At design time, you can set the column width and row height and establish columns that are not visible to the user. You can also prevent users from changing the formatting at run time.
NoteIf you set any of the DataGrid column properties at design time, you will need to set all of them in order to maintain the current settings.
NoteIf you use the Move method to position the DataGrid control, you may need to use the Refresh method to force it to repaint.
The DataGrid control functions similarly to the DBGrid control except that it doesn't support an unbound mode.
Refer to Appendix A for Source Code and Appendix B for Screenshots
4. CONCLUSION AND WORK TO BE COMPLETED
The fundamentals of Visual Basic 6.0 were understood and put into practice. Also, the basic outline for the software was developed and coded using current knowledge base on the developing tool.
The work still to be done includes:
- Writing code for Issuing / Returning books
- Writing code for Fines management
- Writing code for User account control
- Integrating with MS Access 2007
- Creating executable application to run on windows by compiling completed code
- MSDN Library Resource (http://msdn.microsoft.com/en-us/library/default.aspx)
- Mastering Visual Basic 6.0, Evangelos Petroutsos, Copyright 1998
- Visual Basic 6 Black Book: The Only Book You'll Need on Visual Basic, Steven Holzner, 1998 Edition
- Visual Basic 6.0 in-built Help topics