Anda di halaman 1dari 72


I hereby declare that the project entitled "Jim Management ' submitted for the B.Sc.IT (6th ) is my
orginal work and the project has not form the basis for the award of any degree, associate ship
fellowship or any other similar titles.

Signature of Student




This is to certify that project report entitled "Jim Management " is the bonafide work carried by
and .. student of B.Sc. IT ,

This was our first experience of making project in the practical Field. We are living in 21t
century, it is the era of science and technology. Life Style of this century is simply unthinkable.
Computer is a gift of science. At the Present time, computer is the heart of business and
communication. All of our work greatly depends on computer system, because now a day every
person want that they have saved the time and it is the best way of saving the time. By using
computer in Jim, we can easily keep records of Customer, Machines and Products. Records can
be easily entered by using simplified software .Here we have needed to keep all these records in
files. So we can say that it reduces paper work. All records of customer and all employees can
save forever in computer memory and also provides security and privacy like features.
Computerization introduces Accuracy, efficiency, integrity and errors anytime demands.
A Jim Management System (JMS) is a computerized
system designed to meet the information needs of all (or most) of a Jim .It gives so, many
facilities to human beings. The staff of Jim is available for 7 hours for the help of every
Customer as well as their parents if they have any enquiry regarding their wards.
Today, Schools are usually funded by the public sector, by
School Organizations, (for profit or nonprofit), under the various educational boards like Punjab
School Education Board, Central Board School Education and International Central School
Education. Historically, however, schools were often founded and funded by religious orders or
charitable individuals and leaders.
Conversely, modern-day schools are largely staffed by professional
Teachers and can say that Indian people saw 1st god in teachers. Under the chief of school well
experienced, honest staffs are appointed by the management of the school. All staff does their
work with co-operation manner when any student comes for good education, then all the records
of students are recorded like basic Information, personal information, vital signs, parents
information etc.
A school in the modern sense of the word is an institution for mind care by
providing good lessons to the students by specialized staff members. Our software has the
facility to give a unique id for every student and stores the details of every student and the staff
automatically. It includes a search facility to know the current status of each student. User can
search availability of students using the id.
The School Management System can be entered using a username and password. It is
accessible either by an administrator or accounts staff. Only they can add data into the database.
The data can be retrieved easily. The interface is very user-friendly. The data are well protected
for personal use and makes the data processing very fast.
This century witnessed a giant leap in information technology. Computers
are not only used to store the records but also these are used to teach the students in an
interactive manner with one hundred percent accuracy, but also they are used to increase the
efficiency in all fields ranging from fixing the appointment with the Principal to keeping the
record of the student.
Software application can provide solution
and services for the global schooling industry. By using the cutting edge technologies, School
Management can be improved with efficient work flow and communication. Any time any where
facilities of the INTERNET have helped the teachers and students and also to the parents of the
students to check the record or status of the wards. Various schools across the globe are
connected together. They can share information and even services the humanity. Relevant
Information is always stored in the computer and is available instantly in front of the user.


In problem definition, the analyst has to understand the problem and its context. Such analysis
typically requires a thorough understanding of the existing system, parts of which have to be
automated. A clear understanding is needed of the important data entities in the system, major
centers where action is taken, the purpose of the different actions that are performed, and the
input and outputs.
The problem that my software system has to solve is automating an existing
SCHOOL MANAGEMENT SYSTEM manual process. Along with the automation, the
automated system should provide to an organization with additional reports and functionalities
like calculating fine, providing information about all the transactions separately and
simultaneously, keeping records of all transaction, etc.


After defining the problem, the next step in the system analysis is to gather information.
Information gathering is an art as well as science. The approach and manner in which
information is gathered require persons with sensitivity, commonsense and knowledge of what
and when to gather and what channels to use in securing information. This means that
information getting is neither easy nor routine. Much preparation, experience and training are
required. Before one determines where to go for information of what information to gather. The
approach is to figure out what information to gather. The approach and the manner in which the
information is gathered require a person with sensitivity, skill and common sense of the
following: -


Knowing how information is to be accessed from the system and subsequently
making the access system simple and easy to use.
Getting to know how and when old data is to be disposed.


Before one determines where to go and what tool to use, first requirement is to figure out
what information to gather. The basic information required is how organization of proposal
or official contacts as well as appointment takes place.
Information is gathered from two main sources are: -

External sources
Internal sources

The basic aim of problem analysis is to obtain a clear understanding of the needs of the needs of
the clients and the users, what exactly is desired from the software, and what the constraints on
the solution are .Analysis leads to actual specification.
Analysis involves interviewing the clients and end users .These people and the existing
documents about the current mode of operation are the basic sources of information for the
analysts. Typically, analysts search a problem by asking questions of the clients and the users and
by reading existing documents .The process of obtaining answers to the questions that might
arise in an analysts mind continues until the analyst feels that all the information has been
I had learnt about the
organization by knowing first how the School System works and how many persons are there
and what are their jobs. It helps me in deciding various formats of forms, their coding and
reports. I had discussed my project with my teacher incharge Mr.Munish Shukla and
Miss.Harpreet Kaur and other staff members. They helped me in completing my project.
So in brief, the sources of information of my project are existing manual, existing
documents and other people who helped me in completing my project.


Once the problem is analyzed and the essentials understood, the requirements must be specified
in the requirement specification document. The requirements document must specify all the
functional and performance requirements. A basic purpose of software requirement specification
is to bridge the communication gap between the clients and developers. SRS is the medium
through which the client and user needs are accurately specified; SRS forms the basis of software


The Software is for the automation of School Management. It maintains two Levels of users:
Administrator Level
User Level

The Software includes:

Maintaining Students details,
Maintaining staff detail
Providing and maintaining all kinds of information to the parents and also to produce the
reports of the students.


It can be used in any School for maintaining students and teachers details and their test results.
Technologies to be used

This project will be a desktop application to be developed in advanced java having MS Access as
Database Design (Ms Access)
Form Design (
Coding (
Testing (
Reporting Tool (Data Report VB.Net)

Project is related to School Management System. The project maintains two Levels of users:
1. Administrator Level-Accounts department
2. User Level-Data Entry Operator
Main facilities available in this project are:
1. Maintaining records of students.
2. Maintaining students activities details.
3. Maintaining students fees and result records.
4. Providing billing details of expenditures.
5. Maintaining backup of data as per user requirements (between mentioned dates).
6. If user forgets his/her password then it can be retrieved by hint question.
7. In this project collection of data is from different departments.
8. Results of student will be automatically updated in the database.
9. User or Administrator can search a students record by his/her name or their admission


The purpose of the project entitled as SCHOOL MANAGEMENT SYSTEM is to computerize

the Front Office Management of School to develop software which is user friendly, simple, fast,
and cost effective. It deals with the collection of full information of students, Teachers and
visitors also. Traditionally, it was done manually. The main function of the system is to register and
store student and staff details and retrieves these details as and when required, and also to
manipulate these details meaningfully System input contains students details, admission details;
while system output is to get these details on to the CRTscreen.


1.Efficiently maintain the details about the students?

2. Simultaneously updates changes made to any data, item in the entire data base.
3. It is faster than manual system


In the problem Definition, the analyst has to under stand the problem and its context. Such
analysis typically requires a through understanding of the existing system, parts of which have to
be automated. A clear understanding is needed of the important data entities in he system , major
centers ,where action is taken , the purpose of the different action that are performed, and the
input and outputs.

Definitions of problems:

1. Lack of immediate retrievals: -The information is very difficult to retrieve and to find
particular information like- E.g. -To find out about the patients history, the user has to go
through various registers. This results in inconvenience and wastage of time.
2. Lack of immediate information storage: -The information generated by various transactions
takes time and efforts to be stored at right place.
3. Lack of prompt updating: - Various changes to information like patient details or
immunization details of child are difficult to make as paper work is involved.
4. Error prone manual calculation: -Manual calculations are error prone and take a lot of time
this may result in incorrect information.
5. Preparation of accurate and prompt reports: -This becomes a difficult task as information
is difficult to collect from various registers.
A software development is like a puzzle
which is to be solved to create a new system. When we start we should know clearly and
exactly about the problem where it exists and we should know every aspect of our problem we
start to solve the problem.
The problem seems vague at
starting because we are unaware that how the work is done actually what kind of difficulty are
met and how they are Tackled and every detail has to be studied because a little mistake in
studying detail leads to drastic change in the results. Here our project is prepared for Clifton
InfoTech Ltd.
As we know that all work in older
times was done manually that is man stored all student records which was too time consuming and
irritable method to store the records manually. The workers were quite busy if they need to know
about students background history. These records take a lot of delicacy and those records can be
lost at any time by any miss-happening.
So the work in older times was much tedious, irritable, time consuming. But
now-a-days we are living in computer age. We cannot think our self without computer. Computer
is our basic need because it fulfills our need, it reduces our tedious, time consuming and irritable
work as all work is done compute rally. That we can handle lots of records in computer without
wasting our much energy. The main objective is to enhance performance of existing system and to
manage the system efficiently

A school is an institution that acts as a source of information for the students. Students can
complete their studies from schools to become the civilized persons of the nation.

Objective and Scope

Following are the objectives which have been kept in mind after analyzing the existing manual
System and before preparing the outline of the proposed system.

Facility to input all data efficiently and accurately

Facilities to update data from time to time.
To prepare detailed informative records (to generate reports)
To retrieve information without wasting much time (To make queries)
Facilities of maintaining security of the system(authorized user Login)


The present scope of the project is very high. The search modules of the project make it
very powerful banking automation software.
Rather than buying very expensive banking automation softwares from market, this
software provides user with all the features that need to work with. The data access using this
project is very fast and reports can also be generated very effectively.
The project environment is so user friendly that even a beginner to computers can run
this software and handle all the transactions included in this software along with report
generation in this software .Provision for each and every condition is given in this software, so
even if the user does thing wrong, the database maintained by it remains unchanged as high level
validation checks have been used to avoid the wrong entry. The message boxes used in this
software to guide the user when any error occurs or when he is going through some transaction
are so clear that there can never be any problem while using the software.


TIME CONSUMING: A lot of time has been wasted in searching the
books, so there is a need for some specific system.
EXPENSIVE SYSTEM: A lot of money has been wasted in
purchasing stationary items.
UNCERTAINITY: Due to the manual system of re-entering the data,
error rates an increase that leads to uncertainty.
HIGH MAINTENANCE: Storing records in some sort of files or
registers requires a lot of maintenance; this comes out to be one of the
major drawbacks.
NATURAL CLAMITIES: Stored records can be lost because of
natural calamities like fire, flood, theft, earthquake etc. This means
that our records are not safe in the existing system.
HIGH SEARCH TIME: For making issue or return entry manually.

Constructing all of above problems in the manual system of the library, there is a great and
immediate end to computer-sized the working of library. Now the problem has been identified-ed
and we will specify the requirements, which will be needed throughout the development of the


The project goal is to remove the deficiencies of the present system such as INACCURACY ,
MAINTENANCE etc. of information as well as its being excessively costly in terms of time
money & manpower & unsatisfactory provision of information. Computerized reports would be
both quicker & cheaper than current manual methods of preparation.
The goal of this project is to DESIGN &
IMPLEMENT the proposed system. Develop an integrated computerized system that would
generate speedy, accurate & adequate reports at the time of need & would be advantageous to
both the top management as well as the concerned department.

The Proposed system for

is computerized. Today is the era of computers. This software project solves all the problems
discussed above in the present system. The main Objective of developing this project is to save
time and money. The proposed system provides the following features on different tasks.


User-Friendly package.
Efficient retrieval time.
Efficient linkage of information.
Validation checks to ensure accuracy.
Query facility for instant information.
Error messages or better user interface.
Online data capturing through well designed screens.


TIME SAVING: It saves a lot of time. It completes the whole work within few minutes as
compared to the manual work that takes hours to complete the task and also the time required
to re-enter the data is saved.
EASY TO CHANGE: The changes can be made easily by a program. There are no
complications in our project.

EASY TO UNDERSTAND: Language used is easy to understand for a layman.

EASILY ACCESSIBLE: Data can be easily accessed through the proposed system,
which saves our lot of time.

AUTHENTICATION: It provides access to only authorized persons and thus it helps in

maintaining the security and integrity of the system.

EASY TO HANDLE: It gives step by step instructions to process further and thus makes
it easier to understand even to a layman.

ADVANCEMENT: Using a computerized system, we preceded a step ahead and thus

modified a traditional system to an advanced one.

System Development Life Cycle

The Systems Development Life Cycle (SDLC) is a conceptual model used in project
management that describes the stages involved in an information system development project
from an initial feasibility study through maintenance of the completed application. Various
SDLC methodologies have been developed to guide the processes involved including the

waterfall model (the original SDLC method), Rapid Application Development (RAD),

Joint Application Development (JAD), the fountain model and the spiral model. Mostly, several
models are combined into some sort of hybrid methodology. Documentation is crucial regardless
of the type of model chosen or devised for any application, and is usually done in parallel with
the development process. Some methods work better for specific types of projects, but in the
final analysis, the most important factor for the success of a project may be how closely
particular plan was followed.
The image below is the classic Waterfall model methodology, which is the first SDLC method
and it describes the various phases involved in development.
Briefly on different Phases:


The feasibility study is used to determine if the project should get the go-ahead. If the project is
to proceed, the feasibility study will produce a project plan and budget estimates for the future
stages of development.

Requirement Analysis and Design

Analysis gathers the requirements for the system. This stage includes a detailed study of the
business needs of the organization. Options for changing the business process may be
considered. Design focuses on high level design like, what programs are needed and how are
they going to interact, low-level design (how the individual programs are going to work),
interface design (what are the interfaces going to look like) and data design (what data will be
required). During these phases, the overall structure is defined. Analysis and Design are very
crucial in the whole development cycle. Any glitch in the design phase could be very expensive
to solve in the later stage of the software development. Much care is taken during this phase. The
logical system of the product is developed in this phase.


In this phase the designs are translated into code. Computer programs are written using a
conventional programming language or an application generator. Programming tools like
Compilers, Interpreters, and Debuggers are used to generate the code. Different high level
programming languages like C, C++, Pascal, Java are used for coding. With respect to the type of
application, the right programming language is chosen.


In this phase the system is tested. Normally programs are written as a series of individual
modules, these subjects to separate and detailed test. The system is then tested as a whole. The
separate modules are brought together and tested as a complete system. The system is tested to
ensure that interfaces between modules work (integration testing), the system works on the
intended platform and with the expected volume of data (volume testing) and that the system
does what the user requires (acceptance/beta testing).


Inevitably the system will need maintenance. Software will definitely undergo change once it is
delivered to the customer. There are many reasons for the change. Change could happen because
of some unexpected input values into the system. In addition, the changes in the system could
directly affect the software operations. The software should be developed to accommodate
changes that could happen during the post implementation period.

Software Development

Software development is the process of developing software through successive phases in an

orderly way. It is a complicated process as it requires careful planning and execution to meet the
goals. Different phases in this development process include the actual writing of code,
preparation of requirements and objectives, the design of what is to be coded, and confirmation
that what is developed has met objectives. Before systems development methods came into
existence, the development of new systems or products was often carried out by using the
experience and intuition of management and technical personnel. However, the complexity of
modern systems and computer products long ago made the need clear for some kind of orderly
development process.

The different phases involved in Software Development are as follows:

1) Identification of required software

2) Analysis of the software requirements
3) Detailed specification of the software requirements
4) Software design
5) Programming
6) Testing
7) Maintenance

The Development Process

The software development process is guided by some systematic software development method
(SDM). Also referred by a number of terms, like process models, development guidelines, and
systems development life cycle models (SDLC). All these Software Development methods
generally include the following development phases:

The existing system is evaluated and its drawbacks identified, usually through interaction
with system users and support personnel.

The new system requirements are defined; the drawbacks in the existing system are
addressed with specific proposals for improvement.

The proposed system is designed and plans are laid out concerning the physical
construction, hardware, operating systems, programming, communications, and security

The new system is developed and the new components and programs are obtained and
installed. Users of the system must be trained in its use and all aspects of performance is
tested. If necessary, adjustments are made at this stage.

The system is put into use. This can be done in different ways. The new system can phase
in, according to application or location and the old system gradually replaced. In some
cases it may be more cost-effective to shut down the old system and implement the new
system all at once.

Once the new system is up and running for a while, it is exhaustively evaluated.
Maintenance is kept up rigorously at all times. Users of the system are kept up-to-date
concerning the latest modifications and procedures.
Systems Development Life Cycle Model

The Systems Development Life Cycle model was developed as a structured approach to
information system development that guides all the processes involved from an initial feasibility
study through to maintenance of the finished application. SDLC models take a variety of
approaches to development. Some of these life cycle models include:

The Waterfall Model: A classic SDLC model, with a linear and sequential method that has goals
for each development phase. The waterfall model simplifies task scheduling, because there are
no iterative or overlapping steps. One drawback of the waterfall model is that it does not allow
for much revision.

Rapid Application Development (RAD): This model is based on the concept that better
products can be developed more quickly by using workshops or focus groups to gather system

Joint application development (JAD): This model involves the client or end user in the design
and development of an application, through a series of collaborative workshops called JAD

Prototyping Model: In this model, a prototype (an early approximation of a final system or
product) is built, tested, and then reworked as necessary until an acceptable prototype is finally
achieved from which the complete system or product can now be developed.

Synchronize-and-Stabilize: This model involves teams working in parallel on individual

application modules, frequently synchronizing their code with that of other teams and stabilizing
code frequently throughout the development process.

Spiral Model: This model of development combines the features of the prototyping model and
the waterfall model. The spiral model is favored for large, expensive, and complicated projects

Feasibility study is a procedure that identifies, describes and evaluates system and selects
the best system for the job.
Depending on the result of the initial investigation,
the survey is expanded to a more feasibility study. A feasibility study is a test of system proposal
according to its workability impact on the organization, ability to meet the user need and
effective use of resources.
When the management approves the
proposed system, a feasibility study is initiated to describe the candidate system. Three key
considerations involves in feasibility analysis: economic, technical, social, operational and
behavioral. We determine the performance and cost effectiveness of the proposed system and if it
meets all the constraints, it is recommended in feasibility report.


What are the users demonstrable needs and how the candidate system meets them?
What resources are available for the candidate system meets them?
What resources are available for the candidate system? Is the problem worth solving?
What are the likely impacts of the candidate system on the organization?

The results of the feasibility study are a formal proposal. This is a simply a report, a formal
document detailing the nature and scope of the proposal system. Feasibility study involves
many steps. After all the steps feasibility report is prepared, which is given to the
management for the project. The proposal summarizes what is known and what is going to
be done. Therefore feasibility study also plays major role in the SYSTEM
There are different types of feasibility:-

1. Economic feasibility.
2. Technical feasibility.
3. Behavioral feasibility.
4. Social feasibility.
5. Operational feasibility.

Economic analysis is the most frequently used method for evaluating the effectiveness of a
candidate system, commonly known as cost benefits analysis, the procedure is to determine the
benefits and savings that are expected from a candidate system and compare them with costs, if
benefits outweigh costs then the decision is made to design and implement the system.
Our proposed system needs only a computer and a printer along with a couple of
computer operators working on data-entry and processing. Keeping in view the long-term
benefits provided by this computer-based system, these inputs costs are minimal.

Technical feasibility centers around the hardware and software required and to what extend these
will support our system along with the technical expertise required. The proposed system is
technically feasible because visual basic and access 7 are compatible and support the program
database design quite efficiently.

Computers are known to facilitate change and people are usually restraint to change. In
determining the behavioral feasibility, we make an estimate of how strong a reaction will the user
staff make towards the development of computerized system and try to keep the user response
Our proposed system needs a computer operator who only simplifies the job without
bringing about changes in way of working of existing system.

The survey of social feasibility is one of the most important steps in feasibility study. This is
most commonly seen. That the user often resist to change the working of existing system or user
often resist to adopt the new software and new hardware, because the user are the person who
will be using the system; users are the people who will be much affected by the new system so
their agreement for the new system must be asked. By the careful analysis of departments it is
found that the users are very keen to change the existing system and during system study they
responded very positively.

In the operation feasibility, we study that weather the purposed system will work in right manner,
when implemented. The purposed system seems to function well operationally.

The design activity begins when the requirements documents for the software to be developed
is available. While the requirements specification activity is entirely in the problem domain
toward the solution domain. Design is essentially the bridge between requirements specifications
and final solution for satisfying the requirements. The design of a system is essentially a
blueprint or a plan for a solution for the system.
The design process for software systems often has to levels. At the first
level the focus is on deciding which modules are needed for the system, the specifications of
these modules, and how the modules should be interconnected. This is what is called the system
design or top-level design. In the second level, the internal design of the modules, or how the
specifications of the modules can be satisfied, is decided. This design level is often called
detailed design or logic design. Detailed design essentially expands to contain a more detailed
description of the processing logic and data structures so that the design is sufficiently complete
for coding.
System design focuses on the detailed implementation of the
system recommended in the feasibility study. It is not a step-by-step implementation of clear
procedures and guidelines; much of the design work depends upon knowledge and experience of
the designer.










MS Office-Access
Visual Basic.NET
O.S:-Window XP


Introduction of Visual Basic.NET
Features of Visual Basic

Introduction to MS-Access
Features of MS-Access

Introduction to Operating System
Features of Operating System


Computer software is the collection of computer programs and related data that provide the
instructions telling a computer what to do. The term was coined to contrast to the old term
hardware (meaning physical devices). In contrast to hardware, software is intangible, meaning it
"cannot be touched". Software is also sometimes used in a more narrow sense, meaning application
software only. Sometimes the term includes data that has not traditionally been associated with
computers, such as film, tapes and records.

Types of software
Practical computer systems divide software systems into three major classes:
System Software, Programming Software and Application Software, although the
distinction is arbitrary, and often blurred.

System software

System software helps run the computer hardware and computer system. It
Includes a combination of the following:

device drivers
operating systems
window systems
The purpose of systems software is to unburden the applications programmer from
the often complex details of the particular computer being used, including such
accessories as communications devices, printers, device readers, displays and keyboards, and also
to partition the computer's resources such as memory and processor time in a safe and stable
manner. Examples are -Microsoft Windows, Linux, and Mac OS X.
Programming software

Programming software usually provides tools to assist a programmer in writing computer

programs and software using different programming languages in a more convenient way. The
tools include:

1. Compilers
2. Debuggers
3. Interpreters
4. Linkers
5. Text editors
An Integrated development environment (IDE) is a single application that
attempts to manage all these functions.

Application software

Application software allows end users to accomplish one or more specific (not directly computer
development related) tasks. Typical applications include:

industrial automation
business software
video games
quantum chemistry and solid state physics software
telecommunications (i.e., the Internet and everything that flows on it)
educational software
medical software
molecular modeling software image editing
spreadsheet simulation software
Word processing
Decision making software

Introduction of Operating system

Operating system is an interface between user and hardware machine, it is used to service the
other program and applications its the responsibility of operating system to utilize hardware
components. The main types of operating system are:

1) Batch Processing
2) Distributed Processing
3) Time Sharing Processing
4) Real Time Processing

What Is Windows XP?

Windows XP (which stands for experience) is the latest Microsoft operating system released on
October 25, 2001. Windows xp merges consumer operating environments (Windows NT, 2000)
creating a single high performance, stable consumer solution.
Windows XP is not a service pack for any other Microsoft operating
environment. Although windows XP are based closely on windows 2000, it is its own Windows
xp features.

Windows Xp object members review individual features in windows xp, including:

Remote desktop and remote assistance

Power management
Windows application compatibility
System tools, device driver rollback, last known good configuration and system restore.
Multi language toolkit
Personal firewall
Automatic unzip feature operating system


1) Memory Management
2) File Management
3) Command Interpreter
4) Security
We are using Microsoft Window-XP because Microsofts Wwindow-XP operating system
is the most significant and highly publicized computer software. Window-XP is a GGUI
operating system, which has two interfaces, one is the interface between the user and application
and other is the interface between the applications and the computers devices and files.
Window-XP is a class of graphical software called GUI (graphical user interface).


1) Window-XP is easier to learn than any of its predecessors like disk operating system and
windows-3.x (3.0, 3.1, 3.11).
2) Window-XP is a multi threaded and preemptive multitasking operating system.
Multithreaded means, it can run multiple application simultaneously. The preemptive
multitasking means program running in the background do not effect the interactive
program that you are running in the foreground.
3) It support long file name rather than the limited eight letter with extension of three letter file
name as used be DOS.
4) The major portion of the window-XP operating system is in 32-bit code that has better
compatibility with Intel 80386, 80486 and Pentium processors.
5) With the help of window-XP, you can setup the computer for use by different people, each
with their own desktop, shared resources, user rights and other settings.
6) It has taskbar that is always easily accessible on screen and it also has button listing about
the currently. running application and helps to easily switch between them.
7) It is more documents closer than windows-3.1 because the new windows user interface lets
you organize your on the computer by organizing documents on the desktop or in folders
and then user can click to open them that cannot do with older version of window clearly.
8) It has RAS (Remote Access Service), which helps window-XP users on the platform to call
into a window-XP network, log on and connect as just they do from their desktop machine,
sharing data and resources supplied by network services, printers, fax modems and other

Visual Basic .NET is the next generation of Microsofts popular Visual Basic programming
languages. Some programmers refer to the new incarnation as VB 7, but this is incorrect. Visual
Basic .NET is actually not backwards-compatible with VB6, meaning that code written in the old
version will not compile under VB.NET. In fact, the languages are sufficiently different that
many programmers consider them independent. As a language, Visual Basic.NET has the
following traits:


Visual Basic 6 included limited support for object-oriented design. Encapsulation was supported
with Public and Private Data types in Classes, as well as special access or / mutator pairs called
Properties (a feature unique to Visual Basic). Polymorphism received crude support through
the Implements keyword, which would require that one class implement all of the methods in
another, skeleton class. Inheritance was neglected completely.

As of VB.NET, all of this has changed. As with all .NET languages, VB.NET includes
full-blown support for object-oriented concepts, including simple inheritance. Unlike most other
OOP languages, everything in VB.NET is an object, including all of the primitives (Short,
Integer, Long, String, Boolean, etc.) as well as types, events, and even assemblies. Everything
inherits from the Object base class.

Inheritance & Polymorphism in VB.Net

We will learn the fundamental object oriented features such as inheritance and polymorphism in
VB.Net. We will start with building some understanding of inheritance and then will move
towards understanding how VB.Net supports inheritance. We will spend some time exploring the
Object class and then we will head towards polymorphism and how
Polymorphism is implemented within VB.Net. We will close this session with the understanding
of boxing, un-boxing and how the type-casting mechanism works in VB.Net

Unless this is your first brush with object oriented programming, you will have heard a lot about
Reusability and Extensibility. Reusability is the property of a module (a component, class or
even a method) that enables it to be used in different applications without any or little change in
its source code. Extensibility of a module is it's potential to be extended (enhanced) as new needs
evolve. Reusability in Object Oriented Programming languages is achieved by reducing coupling
between different classes while extensibility is achieved bysub-classing. The process of sub-
classing a class to extend its functionality is called Inheritance or sub-typing.
The original class (or the class that is sub-typed) is called the base, parent or super class. While
the class that inherits the functionality of base class and extends it in its own way is called a sub,
child, derived or an inherited class.

Inheritance in VB.Net

Before we go on to implementation, here are some key-points regarding inheritance inVB.Net

VB.Net, like C#, Java and contrary to C++, allows only single class inheritance.
Multiple inheritances of classes is not allowed in VB.Net
The Object class defined in the System namespace is implicitly the ultimate base
Class of all the classes in VB.Net (and the .Net framework)
Interfaces, in VB.Net, can inherit more than one interface. So, multiple inheritances of
interfaces is allowed in VB.Net (again similar to C# and Java). We will see interfaces in detail in
the coming lessons
Structures in VB.Net, can only inherit (or implement) interfaces and can not be inherited.


A radio has a tuner, an antenna, a volume control, and an on/off switch. To use it, you dont need
to know that the antenna captures radio frequency signals, converts them to electrical signals,
and then boosts their strength via a high-frequency amplification circuit. Nor do you need to
know how the resulting current is filtered, boosted, and finally converted into sound. You merely
turn on the radio, tune in the desired station, and listen. The intrinsic details are invisible. This
feature is great because now everyone can use a radio, not just people with technical know-how.
Hiring a consultant to come to your home every time you wanted to listen to the radio would
become awfully expensive. In other words, you can say that the radio is an object that was
designed to hide its complexity. If you write a piece of software to track payroll information, you
would probably want to create an Employee object. People come in all shapes, sizes, and colors.
They have different backgrounds, enjoy different hobbies, and have a multitude of beliefs. But
perhaps, in terms of the payroll application, an employee is just a name, a rank, and a serial
number, while the other qualities are not relevant to the application. Determining what something
is, in terms of software, is abstraction. In object-oriented software, complexity is managed by
using abstraction. Abstraction is a process that involves identifying the crucial behavior of an
object and eliminating irrelevant and tedious details. A well thought-out abstraction is usually
simple, slanted toward the perspective of the user (the developer using your objects), and has
probably gone through several iterations. Rarely is the initial attempt at an abstraction the best
choice. Remember that the abstraction process is context sensitive. In an application that will
play music, the radio abstraction will be completely different from the radio abstraction in a
program designed to teach basic electronics. The internal details of the latter would be much
more important than the former.
This is the Title of the Book, rights reserved.

Programming languages like C and Pascal can both produce object-like constructs. In C, this
feature is called a struct; in Pascal, it is referred to as a record. Both are user-defined data types.
In both languages, a function can operate on more than one data type. The inverse is also true:
more than one function can operate on a single Data type. The data is fully exposed and
vulnerable to the whims of anyone who has an instance of the type because these languages do
not explicitly tie together data and the functions that operate on that data.
In contrast, object-oriented programming is based on
encapsulation. When an objects state and behavior are kept together, they are encapsulated. That
is, the data that represents the state of the object and the methods (Functions and Subs) that
manipulate that data are stored together as a cohesive unit.
Encapsulation is often referred to as information
hiding. But although the two terms are often used interchangeably, information hiding is really
the result of encapsulation, not a synonym for it. They are distinct concepts. Encapsulation
makes it possible to separate an objects implementation from its behaviorto restrict access to
its internal data. This restriction allows certain details of an objects behavior to be hidden. It
allows us to create a black box and protects an objects internal state from corruption by its
Encapsulation is also frequently
confused with abstraction. Though the two concepts are closely related, they represent different
ideas. Abstraction is a process. It is the act of identifying the relevant qualities and behaviors an
object should possess. Encapsulation is the mechanism by which the abstraction is implemented.
It is the result. The radio, for instance, is an object that encapsulates many technologies that
might not be understood clearly by most people who benefit from it. In Visual Basic .NET, the
construct used to define an abstraction is called a class. The terms class and object are often used
interchangeably, but an object is actually an instance of a class. A component is a collection of
one or more object definitions, like a class library in a DL
Microsoft .Net

In the year 2000, Microsoft launched its new development environment, calling it Microsoft
Visual Studio .Net. Microsoft.Net, at its core, is very much similar to J2EE (Java 2Enterprise
Edition), but offered more of a compromise between the traditional 'un-managed and the newer
'managed' style of programming. It allows a programmer to run both managed (code managed by
the .Net Runtime) and un-managed code (not managed by the.Net runtime). In managed code,
.Net performs memory management, run-time type checking, memory access checking, and
exception handling on behalf of your program.
But does this mean that it has the same
performance penalty as Java? The answer is again NO! .Net uses Just In Time (JIT) compilers to
translate your intermediate compiled code to native executable code, which significantly
improves performance. .Net also provides 'Platform independence' along with 'Language
Independence'. The concept of Platform independence' is somewhat changed from Java, in that
Microsoft's implementation of .NET only provided support for running your one compiled
program on any h/w running any variant of the Windows OS (except for Windows 95). Open
source projects like Dot GNU and Mono are now also bringing .Net to other operating systems
and platforms, however. .Net also provides cross language support, meaning that modules and
components written in different .Net compliant languages can call/use each other's modules and
Hence, it is possible to write your class in
C#.NET, inherit it in VB.Net and finally use it inVC++.Net. At the time of this writing, as many
as 22 languages are supporting the .Net Platform (including VB.NET, VB, C++, J#, COBOL,
Eiffel, Pascal, FORTRAN, RPG, Smalltalk and others), enjoying full use of .net runtime and
huge Framework class library (FCL).
.Net is useful for building variety of
Windows applications, web application, web services, database applications and even embedded
applications (using .Net compact version). On the marketing and commercial side, Microsoft is
apparently putting 80% of its development resources and investment on .Net by providing a
number of .Net enabled/supported applications like SQL Server.Net and Windows Server 2003.
It will be a bit bold to say that Microsoft has bet its existence on the success of .Net. So, when a
company of this size and mass is putting that much effort in stabling the .Net platform, it will be
wise for a developer to take notice and go for it!

What is VB.Net?

VB.Net is the successor of the Visual Basic 6 programming language. VB.Net has brought about
a great number of architectural changes in the Visual Basic language that are not backward
compatible. A number of core elements and concepts in VB6 have been modified or removed. A
great many new features have been added to the VB.Net language. It will bright to say that
VB.Net will change the way Visual Basic programmers perceive their development. VB.Net has
gained some credibility among serious programmers. Visual Basic has gained much favor
amongst many developers. Currently, there are more VB programmers in the world than there are
for any other programming language and there is more application development done in VB than
in any other programming language. In the Microsoft .Net platform, VB.Net (along with
C#.NET) is the language of choice. Its probable that most of the current VB6 programmers
would like to switch to VB.Net when they decide to move to the .Net platform (which ultimately
all Windows developers will have to; certainly the .Net platform is very much a part of Long
Horn development).

VB.Net as a Programming Language

VB.Net is now a full-fledged object oriented programming language. It contains classes, objects,
inheritance, polymorphism, abstract classes, interfaces, structures, enumerations, delegates and
other common object oriented concepts. In VB.Net, the error handling mechanism has been
modified and is now more structured. VB.Net uses the .Net standard garbage collector to release
memory that is no more referenced by your apps. Probably the best thing about VB.Net is that it
is a part of the .Net framework and is integrated in the.Net platform. It means that VB.Net
programs can employ all the features and services exposed by the .Net framework. It can use
the .Net framework class libraries, interact with program modules written in other .Net language
and also use the old COM and Active components. Previously, Visual Basic was mainly used for
Windows applications and nothing else. Now VB.Net can be used to create console applications,
Windows applications, web applications, .Net components, .Net Form controls, .Net Web
controls, windows services, web services, database applications, and more. Using the .Net
framework libraries you can program new exciting features like reflection, attributes,
marshalling, remoting, threads, streams and also data access with ADO.Net. Compared to using
VB6, VB.Net will feel extremely powerful.

.Net Architecture and the .Net Framework

Architecture of VB.NET

The common language runtime provides the infrastructure for execution of code and also provide
other services, which can be used during execution. Some of the feature that CLR provides is:
Cross-language integration, especially cross language inheritance. Automatic memory
management, which manages object lifetime so that reference counting is unnecessary. Self-
describing object, which make using IDL (interface definition language), type libraries etc
Execution of VB.NET Programs

Source code (...vb extension)

Visual basic compiler (vb.exe)

MSIL (.il file)

Just in time compiler (JIT)


The ability to compile ones and run on any CPU and operating system that supports the run time
which makes the application platform independent.
In the .Net Architecture and the .Net Framework there are different
important terms and concepts which we will discuss one by one.

Common Language Runtime (CLR)

The most important concept of the .Net Framework is the existence and functionality of the.Net
Common Language Runtime (CLR), also called .Net Runtime in short. It is a framework layer
that resides above the OS and handles the execution of all the .Net applications. Our programs
don't directly communicate with the OS but go through the CLR.

MSIL (Microsoft Intermediate Language) Code:

When we compile our .Net Program using any .Net compliant language (like C#, VB.Net,C+
+.Net) it does not get converted into the executable binary code but to an intermediate code,
called MSIL or IL, understandable by CLR. MSIL is OS and hardware independent code. When
the program needs to be executed, this MSIL, or intermediate code, is converted to binary
executable code (native code). The presence of IL makes possible the Cross Language
Relationship as all the .Net compliant languages produce similar, standard code.

Just In Time Compilers (JITers)

When our IL compiled code needs to be executed, CLR invokes the JIT compilers which compile
the IL code to native executable code (.exe or .dll) that is designed for the specific machine and
OS. JITers in many ways are different from traditional compilers as they compile the IL to native
code only when desired; e.g., when a function is called, the IL of the function's body is converted
to native code just in time. So, the part of code that is not used by that particular run is never
converted to native code. If some IL code is converted to native code, then the next time it's
needed, the CLR reuses the same (already compiled)copy without re-compiling. So, if a program
runs for sometime (assuming that all or most of the functions get called), then it won't have any
just-in-time performance penalty. As JITersare aware of the specific processor and OS at runtime,
they can optimize the code extremely efficiently resulting in very robust applications. Also, since
a JIT compiler knows the exact current state of executable code, they can also optimize the code
by in-lining small function calls (like replacing body of small function when its
called in a loop, saving the function call time). Although Microsoft stated that C# and .Net are
not competing with languages like C++ in efficiency and speed of execution, JITers can make
your code even faster than C++ code in some cases when the program is run over an extended
period of time (like web-servers).
Framework Class Library (FCL)

The .Net Framework provides a huge Framework (or Base) Class Library (FCL) for common,
usual tasks. FCL contains thousands of classes to provide access to Windows API and common
functions like String Manipulation, Common Data Structures, IO, Streams, Threads, Security,
Network Programming, Windows Programming, Web Programming, Data Access, etc. It is
simply the largest standard library ever shipped with any development environment or
programming language. The best part of this library is they follow extremely efficient OO design
(design patterns) making their access and use very simple and predictable. You can use the
classes in FCL in your program just as you would use any other class. You can even apply
inheritance and polymorphism to these classes.

Common Language Specification (CLS)

Earlier, we used the term '.Net Compliant Language' and stated that all the .Net compliant
languages can make use of CLR and FCL. But what makes a language a '.Net compliant'
language? The answer is the Common Language Specification (CLS). Microsoft has released
small set of specifications that each language should meet to qualify as a .Net Compliant
Language. As IL is a very rich language, it is not necessary for a language to implement all the
IL functionality; rather, it merely needs to meet a small subset of CLS to qualify as a.Net
compliant language. This is the reason why so many languages (procedural and OO)are now
running under the .Net umbrella. CLS basically addresses language design issues and lays down
certain standards. For instance, there shouldn't be any global function declarations, no pointers,
no multiple inheritance and things like that. The important point to note here is that if you keep
your code within the CLS boundary, your code is guaranteed to be usable in any other .Net

Common Type System (CTS)

.Net also defines a Common Type System (CTS). Like CLS, CTS is also a set of standards. CTS
defines the basic data types that IL understands. Each .Net compliant language should map its
data types to these standard data types. This makes it possible for the 2 languages to
communicate with each other by passing/receiving parameters to/from each other. For example,
CTS defines a type, Int32, an integral data type of 32 bits (4 bytes) which is mapped by C#
through int and VB.Net through its Integer data type.

Garbage Collector (GC)

CLR also contains the Garbage Collector (GC), which runs in a low-priority thread and checks
for un-referenced, dynamically allocated memory space. If it finds some data that is no longer
referenced by any variable/reference, it re-claims it and returns it to the OS so it can be used by
other programs as needed. The presence of a standard Garbage Collector frees the programmer
from keeping track of dangling data. Ask any C++ programmer how big a relief it is!

.Net Framework

The .Net Framework is the combination of layers of CLR, FCL, Data and XML Classes and our
Window, Web applications and Web Services. The much publicized diagram of the .Net
Framework is presented here also for better understanding.

Visual Studio.Net & Its Common Features

Microsoft Visual Studio.Net is an Integrated Development Environment (IDE) which is a

successor of Visual Studio 6. It eases the development process of .Net Applications by a great
deal for VC#.Net, VB.Net, VC++.Net, JScript.Net, J#.Net, ASP.Net, etc. The revolutionary
approach in this new Visual Studio.Net is that for all the Visual Studio.NET Compliant
Languages there is the same IDE, debugger, project and solution explorer, class view, properties
tab, tool box, standard menu and toolbars. The key features of Visual
Studio.Net include:
1. Keyword and syntax highlighting
2. Intelligence (auto complete), which helps by automatically completing the syntax as
you type a dot (.) with objects, enumerations, namespaces and when you use the new keyword.
3. Project and solution management with solution explorer that helps to manage applications
consisting of multiple files, which is what usually happens.
4. Help building user interface with simple drag and drop over form window.
5. Properties tab that allow you to set different properties on a number of windows and web
6. Standard debugger that allows you to debug your program by putting break points for
observing run-time behavior of program.
7. Hot compiler that checks the syntax of your code as you type it and reports any errors present.
8. Dynamic Help on a number of topics using the Microsoft Development Network(MSDN)
9. Completing and building applications.
10. Execution of your application with/without the debugger.
11. Deploying your .Net application over the Internet or on CDs.


All previous versions of Visual Basic were event-driven, but this feature is heavily enhanced
under the .NET framework. Events are no longer recognized because they use a certain naming
convention (ObjectName_EventName), but now are declared with a Handles ObjectName
.EventName clause. Event handlers can also be declared at runtime using the Add Handler

Project and Solutions

A Project is a combination of executable and library files that make an application or module. A
project's information is usually placed in a file with the extension '.vbproj' where'vb' represents
Visual Basic. Similarly, C#.Net projects are stored as '.csproj' files. There are several different
kinds of projects such as Console Applications, Windows Applications, ASP.Net Web
Applications, Class Libraries and more. A solution on the other hand is a placeholder for
different logically related projects that make some application. For example, a solution may
consist of an ASP.Net Web Application project and a Windows Form project. The information for
a solution is stored in '.sln' files and can be managed using Visual Studio.NETs Solution
Explorer. Solutions are similar to VB6's Project Group and VC++ 6's workspace.

Toolbox, Properties and Class View Tabs

Now there is a single toolbox for all the Visual Studio.NETs languages and tools. The
toolbox(usually present on the left hand side) contains a number of common controls for
windows, web and data applications like the text box, check box, tree view, list box, menus, file
open dialog, etc.
The Properties Tab (usually present on the right hand
side in the IDE) allows you to set the properties on controls and forms without getting into code.
The Class View Tab shows all the classes that your project contains
along with the methods and fields in tree hierarchy. This is similar to VC++ 6's class view.

Author's Note: It is not necessary at all that you use Visual Studio.Net to build your .net
applications. You can write your code in any text editor like notepad and then compile and run it
from command prompt (which we will see shortly). But Visual Studio.Net takes a lot of these
responsibilities and smoothes the development process a lot, which allows you to spend more
time in your business logic rather than these compiling and building hacks.
Writing Your First "Hello World" Console Application in VB.Net

As follows, we will build our first VB.Net application without and then with Visual Studio.NET.
Instructions below show, how to write, compile, and execute a VB.Net application. An
explanation of the different concepts in the program will follow later in the chapter.

Without Visual Studio.Net

Open "Notepad" or a text editor of your choice and type the following code:
Imports System
Module Module1
Sub Main()
Console.WriteLine("Hello World!")
End Sub
End Module
Save this with any file name with the extension ".vb" (for example, 'MyFirstApplication.vb').To
compile the program, go to command prompt and type:
vbc MyFirstApplication.vb
This will compile your program and create an .exe file (MyFirstApplication.exe) in the same
directory. Errors will be reported if there are any. To run your program, type:
This action will print "Hello World!" on the console screen. Simple, isn't it? Let's try it in the
Visual Studio.Net IDE
The National Department of Education
Copyright 2008 Department of Education - Introduction to Visual Basic
VB.Net Page 15

With Visual Studio.Net

Start Microsoft Visual Studio.Net and from the menu select File > New > Project. A "New
Project" dialog will now be displayed. Select "Visual Basic Project" from "Project Type" and
select "Console Application" from "Templates". Type

Namespaces in VB.Net

A namespace is simply a logical collection of related classes in VB.Net. We bundle our related
classes (like those related with database activity for example) in a named collection, hence
calling it a namespace (e.g., Data Activity).
VB.Net does not allow two
classes with the same name to be used in a program. The sole purpose of using namespaces is to
prevent the name conflict, which may happen if your working with a large number of classes. It
is the same case in the Framework Class Library (FCL). It is highly possible that the
Connection Class in Data Activity conflicts with the Connection Class of Internet Activity. To
avoid this, these classes are made part of their respective namespace. The fully qualified name of
these classes will be DataActivity.Connection and InternetActivity. Connection, hence
resolving any ambiguity for the compiler. In the second line of the code there is a declaration
classes (enclosed inNamespace...EndNamespace block) which are part of the
MyHelloWorldApplicationnamespace.Namespace MyHelloWorldApplication
...End Namespace
The VB.Net namespaces have NO physical mapping, as is the case in Java.
Classes within the same namespace can be in different folders. The C# concept of mapping is
similar to "packages" in Java and "namespace" in standard C++. The namespace may contain
modules, classes, interfaces, events, exceptions, delegates and even other namespaces which are
known as "Internal namespace". These internal namespaces can be defined like this:
Namespace Parent
Namespace Child
End Namespace
End Namespace
The Imports Keyword

The first line of our program is

Imports System

The "Imports" keyword in the code sample above enables us to use classes in the "System
namespace. For example, Its possible to access the Console class from the Main() sub. One point
to remember here is that "Imports" allows access to classes in the referenced namespace only and
not in its internal/child namespaces. Hence we might need to write:
Imports System.Collections
In order to access the classes defined in Collection namespace which is a sub/internal namespace
of the System namespace.

The Module Keyword

A VB.Net program may contain one or more modules. The Main() sub-procedure usually resides
in one of these modules. Modules in VB.Net are a combination of general data(fields) and
general functions (methods) that are accessible to any code that can access the namespace of a
module. All the members (fields, methods, properties) defined inside a module are shared by
default. The concept of a Module will be discussed in more detail in future lessons. Modules
inVB.Net are defined using the Module statement, followed by the name of the module. The end
of a module is marked with the End Module statement.

Module MyHelloWorldModule
End Module

The Main() Sub-Procedure

In the next line the Main() sub-procedure of our program is defined:

Sub Main()
End Sub
This is the standard layout of a Main sub-procedure within a VB.Net module. The Main()sub-
procedure is the entry point of a program, i.e. a VB.Net program starts its execution from the first
line in the Main sub-procedure and ceases to exist with the termination of the Main sub-
procedure. We can also define the Main method inside a class, e.g.

Imports System

Namespace MyHelloWorldApplication

Class MyHelloWorldClass

Public Shared Sub Main()

Console.WriteLine("Hello World")

End Sub
End Class

End Namespace

The main sub-procedure is designated as "Shared" as it can be called by the

Common Language Runtime (CLR) without creating any objects from our MyHelloWorldClass
(this is the definition of Shared methods, fields and properties). The sub-procedure is also
declared as "Public" so that classes outside its namespace and assembly may call this method.
Minis the (standard) name of this method. More evidence of this shall be shown later. One
interesting point is that it is legitimate to have multiple Main() methods in VB.Netprogram.
However, you have to explicitly identify which Main method is the entry point for the program.
Printing on the Console

The next line of code prints "Hello World" on the Console screen:

Console.WriteLine("Hello World")

In the code, WriteLine() is called. It is a "Shared" method of the Console class that is defined in
the System namespace. This method takes a string (enclosed in double quotes) as its parameter
and prints it on the Console window.VB.Net, like other Object Oriented languages, uses the dot
(.) operator to access the member variables (fields) and methods of a class. Also, parenthatsis ()
are used to identify methods in the code. String literals are enclosed in double quotation marks
("). Lastly, it must be remembered that VB.Net is a case-insensitive language; hence Console
and console are the same words (identifiers) in VB.Net.


Comments are created by programmers who wish to explain the code. Comments are ignored by
the compiler and are not included in the executable code. VB.Net uses similar syntax for
comments as used in VB and assembly language. The text following a single quotation mark ('
any comment) is a line comment. the ending is the end of the line.
' This is my main method
Public Shared Sub Main()
Console.WriteLine("Hello World") ' It will print Hello World
End Sub

Important points to remember

Your VB.Net executable program resides in a class or module.
The entry point to a program is the Shared sub-procedure Main()
VB.Net is not a case sensitive language so integer and Integer mean the same thing
Horizontal white spaces (tabs and spaces) are ignored by the compiler between the code.
Hence, the following is also a valid declaration of the Main() method (although not
Public Shared Sub Main()
Console.WriteLine ( "Hello World" )
[/ul] End Sub
o You DON'T need to save your program with the same file name as that of the class or module
containing the Main() method
o There can be multiple Main() methods in your program, but you have to specify which one is
the entry point
o The boundaries of a namespace, class, module and method are defined by their respective
statements and closed with an End statement
o A namespace is only a logical collection of classes with no physical mapping on disk (unlike
o The "Imports" keyword is used to inform the compiler where to look for the definition of the
classes (namespaces) that you want to use
o Comments are ignored by the VB.Net compiler and are used only to enhance the readability
and understandability of the program for developers only.
o Enclosing your classes or modules in a namespace is optional. Its possible to write a program
where any classes or modules are not enclosed in a namespace
o It is not mandatory that the Main method of a program does not take any argument. It may take
arguments, such as:
o Public Sub Main(ByVal CmdArgs() As String)
o Console.WriteLine("Hello World")
[/ul] End Sub

VB.Net Language Fundamentals

This lesson is about learning the language fundamentals of VB.Net. We will explore the data
types in VB.Net, using variables, different kinds of operators in VB.Net, flow control statements
like If...Then...Else, looping structures and how to use arrays.
Basic Data Types and their mapping to the CTS (Common Type System)
There are two kinds of data types in VB.Net
1. Value type (implicit data types, Structure and Enumeration)
2. Reference Type (objects, delegates)
Value types are passed to methods by passing an exact copy while Reference types are passed to
methods by passing only their reference (handle). Implicit data types are defined in the language
core by the language vendor, while explicit data types are types that are made by using or
composing implicit data types.
As we saw in the first lesson, implicit data types in .net compliant languages are mapped to types
in Common Type System (CTS) and CLS (Common Language Specification). Hence, each
implicit data type in VB.Net has its corresponding .Net type. The implicit data types inVB.Net
Implicit data types are represented in language using 'keywords'; so each of above is a keyword
in VB.Net (Keyword are the words defined by the language and can not be used as identifiers). It
is worth-noting that string is also an implicit data type in VB.Net, so String is a keyword in
VB.Net. Last point about implicit data types is that they are value types and thus stored at the
stack, while user defined types or referenced types are stored at heap. Stack is a data structure
that store items in last in first out (LIFO) fashion. It is an area of memory supported by the
processor and its size is determined at the compile time. Heap is the total memory available at
run time. Reference types are allocated at heap dynamically (during the execution of program).
Garbage collector searches for non-referenced data in heap during the execution of program and
returns that space to Operating System.


During the execution of program, data is temporarily stored in memory. A variable is the name
given to a memory location holding particular type of data. So, each variable has associated with
it a data type and value. In VB.Net, a variables is declared as:
Dim <variable> as <data type>
Dim i As Integer
The above line will reserve an area of 4 bytes in memory to store integer type values, which will
be referred in the rest of program by identifier 'i'. You can initialize the variable as you declare it
(on the fly) and can also declare/initialize multiple variables of same type in a single statement,
Dim isReady As Boolean = True
Dim percentage = 87.88, average = 43.9 As Single
Dim digit As Char = "7"c

VB.Net Option Strict and Option Explicit Settings

There are two 'bad' features in VB.Net, which are inherent from earlier versions (VB5 andVB6):
You can declare a variable without specifying its type. VB.Net, in this case, assumes the type of
the variable as System. Object class
You can convert values (or objects) to incompatible types, e.g., String to Integer. Why I called
the two options bad? The use of these two features results in quite a number of bugs and makes
the overall design of application bad, complex and difficult to follow. With incompatible type
conversion, the program does compile without any error but throw a runtime error (exception).
But these two features can be turned off by using the Option Explicit and Option Strict

Option Explicit Statement

Option Explicit, when turned on, do not allow to use any variable without proper declaration.
There are two methods to apply the Option Explicit Statement.
To apply the Option Explicit settings to the complete project in Visual Studio.NET, right click
the project name in the solution explorer and select Properties. It will open the Property Pages
window. Now in the Common Properties tree at left, select Build, it will show the following
window From here, you can turn the Option Explicit (as well as Option Strict) on or off.
To apply the Option Explicit settings to the current file, use the Option Explicit statement
before any statement as,
Option Explicit On
When Option Explicit is on, it will cause the compile time error to write
myName = "Faraz" ' compile time error with Option Explicit On
Rather, you would have to write,
Dim myName As String = "Faraz"
Option Strict Statement

When the Option Strict statement is turned on, incompatible type conversion are not allowed.
Option Strict can be turned on or off in the similar fashion as Option Explicit. You can either use
Option Strict Statement as
Option Strict On
Or you can set it from the project properties. When Option Strict is On, the following
program will cause a compile time error
Sub Main()
Dim strNum As String = "1"
Dim intNum As Integer = strNum
End Sub
But if the Option Strict is turned off, the above program will actually compile and run without
error to print 1 on the Console! It is important to remember that Option Strict also does not allow
using un-declared types and hence there is no use turning the Option Explicit on if you are
already using Option Strict.
Finally, we do not discourage our readers to turn Option Explicit and Option Strict off; Its
strongly advised not to do so! Throughout the VB.Net School, we will implicitly assume that the
Option Strict is turned On

Constant or Symbols

Constants values once defined cannot be changed in the program. Constants are declared using
Const keyword, like:
Dim Const PI As Double = 3.142
Constants must be initialized as they are declared.
Dim Const MARKS As Integer
It is a notation convention to use capital letters while naming constants.
Microsoft Access


Access is an interactive, relational database management system. A database is an organized

collection of data stored in categories that are accessible in a logical or practical manner
.Relational databases enable data to be stored in multiple tables linked together via data indexes.
This makes working with the data faster and easier. Once entered into the database, the data may
be manipulated or viewed in various ways such as by sorting or by specially set-up queries and

Starting access

To start Access, click the Public button on the taskbar, and choose Access from the MS Office
After the initial start-up screen, the Access start-up window should appear like this:
This is a standard application window with a title bar at the top containing the minimized and
maximized buttons in the right corner. Below the title bar, is the menu bar with several of the
usual Windows menus including File, View, Edit and Help?

The Menus

As you perform different tasks in your session the menu and toolbars will change to display
menus and options applicable to each situation. The initial menu options are as follows. The File
menu allows you to create, open or close databases, create or rename objects associated with
databases, to import or export data and to print items. The Edit menu is a standard Windows
menu from which you can copy, paste and delete information and define relationships between
data. The View menu can be used to specify the object you wish to see and the style in which it is
to be displayed. You can also choose the style of the toolbars and set certain options. The Insert
menu provides an easy way to create any of the database objects you may need to use such as
tables and forms. The Tools menu contains utilities for autocorrecting text and setting database
security and encryption. You can also set up macros containing combinations of commonly used
procedures from here. The Window menu allows you to arrange the way in which the various
open windows are positioned on the screen. The Help menu offers three ways of obtaining on-
line help. You can call up the Office Assistant utility, see the contents of the Access Help system
or use the whats This? feature to point to an object and see a description of it.

Floating Menus

In addition to the normal menus, clicking the right mouse button whilst the cursor is over an
object produces a floating menu with several of the more commonly used menu options. You
may find this method faster to use.

Below the menu bar is the toolbar. Only three buttons on the toolbar can be used at this stage.
One to create a database, one to open an existing database and one on the far right which can be
used to obtain help. Many of the menu commands are duplicated in the toolbar. In addition to the
help system, pointing to any button in the toolbar will produce a pop-up label to describe the
function of the button. There is also a status bar at the bottom left of the screen that will display
information relevant to the current activity.

Creating Database

To create a database, choose New Database from the File menu or click on the new database
button in the toolbar and the following window appears:

As the Blank Database icon is already highlighted, just click on OK to produce the next dialogue
Type the name of the new database in the File Name box or accept the default already supplied.
The name will have the extension .mdb added automatically.
Make sure the correct drive (G: or A:) and folder are selected in the Save in box by
selecting from the drop down list visible when you click on the downward arrow to the right of
the box, then click on the Create button. The menus and tool bar of the Access window change
and database Window appears:

The Database Window contains three main buttons, New, Open and Design, along with a series
of Object tabs along the top.

Every database can contain several types of object. The data itself is contained in an object called
a table. The data can be used in a wide variety of formats, for example, mailing lists, forms,
reports and graphs. Each of these is a type of object. You create objects by clicking on the
appropriate tab in the Database window, then clicking on the new button. Once objects such as
tables have been created, they will be listed under the object tab whenever it is selected. To open
an existing object, click on its name so that it becomes highlighted then click on Open. All
objects have properties that can be set to determine how the object appears or operates.


A table is the first type of object to create in a database. It is away of defining how the data is to
be stored. As with all databases, a table consists of records (rows) and fields(columns).Each
record represents one individual item in the database, such as a person in an address book, and
each field represents component of the record such as a surname or part of an address. Access is
a relational database management system. This means that instead of having the data stored in
one large file or table, it can be divided into several smaller tables. This reduces the amount of
duplication of data and makes it easier to manage. The tables can be related to each other by a
common field such as a case identification number. You can work with several tables at the same

Creating a Table

To create a table, make sure that the Tables object tab is selected then click on the New button.
This presents you with a dialogue box with five choices:
If you select Table Wizard, Access will help you to create a standard table by using pre-defined
fields. Selecting Design View, on the other hand allows you to design your own table.

Select Design View and click OK to bring up the Table design

In the lower right corner of this window is an area containing a brief explanation of the section
containing the cursor.

Each field of the table has three components:

the Field Name, which identifies the data stored in the
the Data Type, which tells Access what kind of data will be
stored in the field, such as text, numbers or dates, and
the Description, which helps the user remember the
purpose of the field.
It is very important to choose the right data type for a field at this stage. Access will
automatically insert a data type when you name a field but if you need to change it, click on the
data type box, then click on the downward arrow that appears to the right of the box. You can
then choose a new data type from the drop-down list. As you type in the name of each field, a
Properties section appears in the lower left corner of the window where you can optionally
define several properties for each field. Here you can specify the format of the data to be entered
and specify criteria for validating the data as it is entered. When you have defined the name, data
type and properties of each field, save the table by choosing Save from the File menu. At this
point you will be informed that a Primary key has not been set and you will be asked if you wish
Access to create one.
Primary Keys

A Primary key field is a field that is used uniquely to identify each record. The field can be used
by Access to manipulate data more efficiently. You do not have to specify a key. If you wish to
use one, you can choose an existing field or, if you answer yes to the prompt for Access to create
a Primary key, Access will create an extra field containing an ID number for each case.

Entering Data

Once you have defined the structure of a table, you can start to enter data into it. You created the
table in Design view. To enter data, switch to Datasheet view by selecting Datasheet from the
View menu. This produces a spreadsheet style window with the name of each field at the top of a

The highlighted box or cell of the datasheet denotes the insertion point for data. If you requested
Access to create a Primary key, the first cell is a counter called ID, which is automatically filled
in by Access. Press TAB to move to the next cell containing your first field. To add a record, just
type in the appropriate data for the cell then press the TAB key to move to the next field. At the
end of each record, pressing TAB will move down to the next record.

Saving Data
You do not have to do anything special to save the data. When you leave a record to go to the
next one or close the table, Access automatically saves any changes. To close the table choose
Close from the File menu.

Finding Data

The simplest way to find a record in a table is:

From the database window, open the table in Datasheet view.
Select the field to search by clicking on its name box.
Choose Find from the Edit menu.
Enter the value you want to search for in the Find What? box and click on Find First.
You can also specify whether the search should match for case, in which direction to search and
whether to search other fields. When you initiate a search, the cursor moves to the first
occurrence of the search string in the table and the string is highlighted. To search for another
occurrence of the same value, use the Find Next button.


Using Find will only display one occurrence of a search valuate a time. To find all records with a
field containing a certain value, use a filter. For example, you could use a filter to select all
people from a particular town in an address book database.
To create a simple filter:
Open the table from the database window
Move to the column on which you want to use a filter and click on a cell containing the
value that you are interested in.
Choose Filter by selection from the Record menu
The result is a list of only those records, that contain the same value as the cell you highlighted.
You can also create a Form Filter that allows for more than one criterion to be used.
To do this:
Open the table.

Choose Filter by Form from the Filter option in the Records menu.
Click one of the fields then, from the drop down menu, choose one of the values that the
record must contain to pass the filter.
To perform several filters and sort functions at the same time use the advanced filter option:
Open the table from the database window.
Choose Advanced Filter/Sort from the Filter option in the Records menu. This will open a
Filter window in which you can define the records you want to see.
Click on the required field listed in the upper part of the window and drag it down to the
first Field cell in the lower part of the Filter window. Or double click on it to copy it
Specify search criteria by typing the required value in the first Criteria cell.
To apply the filter, choose Apply Filter/Sort from the Filter menu. The required records
will be displayed in a datasheet view.
For example, if you wanted to see all the records of people from an address database living in
London and there was a field in the table called Town, place the Town field in the Field cell then
type London in the criteria cell. The Filter window would like this:
Remember that you can specify any number of fields using this method.

By default, Access displays the table data in the order in which it was entered. You can sort an
entire table by opening it and using the Sort option from the Records menu. You can choose an
ascending or descending sort. You can also use the Filter window to produce a sorted listing of
filtered records by clicking on the Sort Cell in the Filter window and choosing the required sort
from the drop down menu.

Retrieving Data

- Queries.

Queries enable you to gather data from fields in tables, create and calculate new fields and
summaries data. They are similar to filters except that they can access fields in more than one
table at a time.
To set a query:
Open the database you want to work on
Click on the Queries tab in the Database window
Click on New. Just as when creating a table, you are given
a choice of using a wizard tool to create a standard query or choosing Design View to
design the query from scratch.
Select Design View to display the Show Table dialogue box.
Select the table or tables to be used by the query, clicking Add after selecting each one.
Close the Show Table dialogue box to reveal the Query window. The Query window is
very like the Filter window described earlier
Specify which fields and records you want to retrieve from the table(s) by pointing to the
field name in the Table window and dragging it to a Field cell in the lower part of the
Query window.
Save the Query and name it using Save from the File menu.
Choose Run from the Query menu to activate the query.
The fields specified in the query are displayed for each record in the database. The set of records
resulting from a query is called a dynaset.
You can select as many fields as you wish for the query. Each time you select one, the check
boxes in the Show cells are checked meaning that the data in the fields will be displayed when
the query is executed. You can vary which fields are displayed by unchecking any of these boxes.

Specifying Criteria

If you want to restrict the records displayed by a query to those in which a specified field
contains a certain value, use the Criteria cells of the Query window just as in the Filter window
described earlier. You can add and combine criteria in the Query window to create powerful
searches to meet exacting conditions. To modify a query, choose Design View from the View
menu or click on the Design View button.


You can control the way in which data is displayed by creating another type of object called a
form. To create a form:
Click on the Forms tab in the Database window.
Choose New and Design View. (Once again, you can use the Form Wizard and choose
Auto form to let Access provide you with a ready-made form if you prefer).
Type in the name of a table or query you wish to view or select it from the list under the
down arrow to the right of the cursor.
Choose Field List from the View menu to display a list of fields.
Drag the required fields to a position on the form
Save and name the form using Save from the File menu.
You can also create a form by selecting a table from the Database window then clicking the Auto
Form button on the toolbar. Once the form has been created, you can use it to view, change, add
and delete records in the table. To move from record to record, use the navigation buttons in the
corner of the Form window or use the Go To command in the Records menu Forms are
convenient when you want to view all the fields of a single record on the screen. You can switch
between Form view and the original Datasheet view using the View menu or the appropriate
buttons in the tool bar. To add records using a form, choose the Forms tab in the Database
window then select the form by name. A blank form appear awaiting data. Press TAB to move
between fields and continue entering the data. At the end of the form, pressing the TAB key will
save the data just entered and take you to another blank form.


A report is another type of object much like a form but with greater flexibility and control when
printing data including various ways of producing summary information.


A macro is an object used to automate a list of actions. For example, you might want a set of
forms opened automatically when a database is opened. Macros can be used in a variety of
places, for example, attached to a form, a report or a menu command.


Access contains its own programming language, Access Basic, which can be used to automate
more complex processes than macros can handle. A module is an object containing Basic

Linking and Importing Data

There are two ways of using data that is already stored in computer form. Firstly, data from
different file types such as spreadsheets and text files can be imported into an Access table. In
this case the data is copied from the original file into the table. To import data:
Open the database.
Choose Get External Data, Import from the File menu.
Select the location, the type of data and the specific file in the Import dialogue box.
Click on the Import button.

Alternatively, you can view and update data stored in another

database or in a file from another package such as Excel or Paradox without copying or moving
the data. To do this, you link the file to the current database. The original file format is
unchanged. To link a file:
Open the database.
Choose Get External Link from the File menu.
Select the location, the type of data and the specific file inthe Link dialogue box.
Click on the Link button.
Respond to any further dialogue boxes that appear for example, to select particular data sets from
the selected files. Note that in the case of linked data, you may not be able save any changes you
make, depending on what access rights you have to the original file.

Closing and Exiting

When you have finished working with a database, choose Close Database from the File menu.
You may then open another database or if you have finished your Access session, choose Exit
from the File menu.

Subsequent Access Sessions

When you start an Access session after having worked with a database previously, the initial
startup process is slightly different. On start-up, you will see the following dialogue box giving
you the option to start a new database, use the database wizard or open previously saved

Check the appropriate option and click OK.


You can import data from a Microsoft Access database into your contains folder in
outlook. You can also export outlook data back into Microsoft Access.
When you copy or cut data from Microsoft Access forms and datasheets, the settings for
font, alignment, and number formatting for column headings and data are retained when
you paste them into Microsoft Excel spreadsheets.
When you output a report with a sub report to a .txt, .rtf or .xls file format, the sub report
is output along with the main report.
When you need the grouping and formatting functionality of Microsoft Access reports for
data you have in Microsoft Excel spreadsheets, you can click Access report on the data
menu in Microsoft Excel to start the Microsoft Access report wizard.
When a Microsoft Excel spreadsheet by clicking convert to access on the data menu in Microsoft
Create a Pivot table control in a Microsoft Access form. Using the Pivot table wizard, you can
create a control on a form that allows you to summarize large amounts of data using a format and
calculation method you choose. A pivot table is like a cross tab query, but you can switch the row
and column headings dynamically to see a different view of the data.
You can link data from Microsoft Excel or a Lotus 1-2-3 spreadsheet as long as the data is arranged in an
appropriate tabular format.
When you use Microsoft access as an ActiveX component you can manipulate Microsoft Access
objects from another application, such as Microsoft Excel.

The following drag-and drop functionality is now available in Microsoft Access

You can drag and drop database objects between open Microsoft Access databases. (You must have two
instances of Microsoft Access running)
You can drag and drop Microsoft Access tables and queries into other applications, such as Microsoft
Word and Microsoft Excel
You can create a table by dragging and dropping a range of cells from a Microsoft Excel spreadsheet
into the database window.
You can drag and drop OLE object field in a form in Form View, or in a form or report in Design

Data Flow Diagrams is a graphical aid for defining systems inputs, processes and outputs. It
represents flow of data through system. The DFDs are used in modern methods of system
analysis. They are simple to the extent that the type of symbols and rules are very few. DFDs
serve two purposes:

It provides a graphic tool, which can be used by the analyst to explain his understanding
of the system to the user.
They can be readily converted into a structured chart, which can be used in designing.

A DFD shows the flow of data through a system. It views a system as a function that transforms
the inputs into the desired outputs. Any complex system will not perform this transformation in a
single step, and a data will typically undergo a series of transformation before it becomes the
output. The DFD aims to capture the transformation that takes place within a system to the input
data so that eventually the output data is produced. The agent that performs the transformation of
data from one state to another is called a process. So, a DFD shows the movement of data
through the different transformation or processes in the system. Named circles show the
processes and Named arrows represent data flow. A rectangle represents a source.

To Construct DFDs we use following notations:

An arrow identify the data flow


The circle stands for a process that converts

data into information


It represents a source or sink of system data


It represents data store