You are on page 1of 125

CONTENTS

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.

Introduction
Objective of the Project
Project Category
System Design
Hardware & Software Requirement
System Analysis
Feasibility Study
Implementation
Testing & Debugging
Context Diagram
Data Flow Diagram
Screenshot
Coding
Future Scope
Limitation of the Project
Bibliography

TITLE

OF

THE

PROJECT

Call center shift management system

INTRODUCTION
Call center shift allotment system is proposed for the
call centers using which they can computerized their
shifts organized, work distribution and employee
performances. Call centers are basically the work
centers, which provide 24 hours customer care via
telephones and Internets etc. Now a day every large
or small company has, their call centers situated at
different locations. Besides supporting customers via
a team of customer care executives, call centers has
one more team that of technical peoples responsible
for allocating, maintaining, updating and allotment
companys

communication

network.

In

order

to

schedule and distribute the work via which company


can run smoothly the call centers make differentdifferent teams and distribute the work task in
several shifts to facilitate both the customer and the
employee.

Team structure
Every team have two team leader one is head and
other is assistant. Each team has 12 members
including leaders. 5 teams working over the project
have a team supervisor that is basically responsible
for distributing the work among teams. At the top
most level there is a person called project manger
who is responsible for distributing the different
projects to different supervisor. And schedules time
charts for each project that is further broke by the
below team people to do the project.

OBJECTIVE
To collect the different project reports and grade
them

according

to

their

presentation

and

successfulness.
To award different teams for their performances.
To grade the team members according to their
professional and personal attitudes
To check whether the work progress is according
to the chart or not.
To distribute the different projects among the
different supervisors
To

schedule

timetables.

different

project

in

different

To distribute timetables among the teams.


To organize different shifts for different teams
To check and compute work progress of the
teams

PROJECT-CATEGORY
RDBMS (Relational database management system)

USER INTERFACE
GUI (Graphical User Interface) of the Software will be implemented through
Visual Basic.

TOOLS / ENVIRONMENT
Language :

Visual basic

Back end :

Oracle8

VISUAL BASIC
Visual basic covers every aspect of programming,
from educational applications to databases, and from
financial applications to Internet components. Visual
basic has two-database access technology.
To design desktop we can use VB-script, which is a
subset

of

visual

technology.

Visual

basic,
basic

and
have

object
several

oriented
tools

for

automating the development of WebPages like HTML

& DHTML and development of web application.


Visual basic provides IDE (Integrated Development
Environment) and the basic principles of developing
applications

with

visual

tools

and

event

programming. A project in visual basic is the central


mechanism

used

to

verify

and

coordinate

the

elements of a visual basic application. Creating


project is usually the first step in the process of
developing a visual basic application. Project keeps
track of the locations of the components used within
the

project

and

access

related

libraries

of

the

program that are stored in a common directory and


used by many applications. An exe file is generated in
order to run the project. When an EXE is generated
from a project all the elements of the project are
gathered and run according to the action performed.
ADOB is V.B database technology used to access the
data from the databases.

ORACLE DATABASE DRIVER


Oracle database connectivity is used to connect V.B
and oracle. MDSQL is a set of API used for executing
SQL statements. ADOB consists of a set of classes
and record set objects and interfaces to enable
programmer to make connections and to write SQL
statements.

WHAT IS ODBC ?
Open

Databases

connectivity,

or

ODBC

is

standard for accessing data. It was designed to


allow the programmer to use a common set of
routines to access the data stored in databases,
regardless of the type of database in which the
data

was

stored.

This

meant

that

once

the

programmer was connected to the database using


ODNC, they could manipulate the data without
worrying exactly where the data was stored, or
which type of database was storing it. It provided
interface transparency so the programmer could
access an Oracle database in the same way that
they accessed a SQL Server Database. So, ODBC
allows you to get at the basic information held in
any

database.

This

gives

the

programmers

freedom to concentrate onto functionality of the


application without worrying too much about the
underlying data, or even how to access it.

WHAT IS OLE-DB ?
OLE-DB is not next step in the evolution of the
anonymous data store. As well as being more
generic than ODBC, Microsoft has done a great
deal of work to ensure that OLE_DB is faster and
easier to used that ODBC. Eventually it may well
replace ODBC, although that wont be for a long
time yet, if only for the reasons that you often
have to rely on third parties writing new OLE-DB
provides and then when they are available they
are often more expensive than existing ODBC
drivers. So, consequently, theres a lot more ODBC
drivers out there still in use. The idea behind
OLE-DB is very similar to the idea behind ODBCbut in fact it allows access to a much broader
range of data stores. In fact, youll notice that
OLE-DB

that

effectively

your

legacy

database

through your existing ODBC connections.

SOFTWARE PRINCIPLE USED


The project uses the Data Access Objects (DAO)
and ADO ActiveX data Object. To interact with the
Database Engine which handles the mechanics of

storing, retrieving and updating data. It

also

handles indexing, locking, security and referential


integrity

programming

interfaces

that

gives

complete control of the Database. The DAO model


is collection of object classes that Corresponds to
the structure of a Relational Database System.
Each

of

the

classes

provides

properties

and

methods that allow performing operations like


Creating Database, Defining Tables, Fields and
indexes,

Establishing

Relation

between

tables,

querying the database and so on. This project


uses OOPS Object Oriented Programming.

DATABASE (OVERVIEW)
First of all lets talk about the database, which
gives us a strong platform to store the official
details. Using Oracle 8 as a backend gives us an
immense
source.

security
With

ROLLBACK

its

features
most

features

it

and

unique
is

the

reliable

data

COMMIT

and

most

promising

database. In this project there are eight tables


created in Oracle. Few constraints have also been
defined

at

backend

to

create

relationships

between the tables.

CONNECTION
Connection between the database and the front-end application is
very important. Without a proper connection errors may occur
while saving the data in the table. In my project I have used
ODBC to connect my front-end application with Oracle. For
connection to work properly I have to first create a service name
using Oracle Net Assistant. After creating the service we have to
create ODBC driver, with the help of which I will connect to
Oracle. While creating driver we have to keep an account of the
DSN (Data Source Name) because while connecting to the Oracle
we have to pass DSN for connection.

SYSTEM DESIGN
INTRODUCTION TO PHYSICAL SYSTEM

In

this

project

am

dealing

with

the

work

distribution, shift allotment and performances of the


employees in the call center. First of all the details
of new employee are entered. Then each of the
employees are assigned a particular work and shift.
Each employee is assigned a review date and a
reporting officer, to whom they will report after their
task is finished. At this stage the reporting officer
will review the performance of the employee and will
judge him accordingly. The average points given by
the reporting officer to the employee will be the final
and the deciding factor for the routine planning
monitoring system.

HARDWARE SPECIFICATIONS
Minimum Requirement:

Random Access Memory: 64 MB.


Hard Disk: 10 GB.
Processor: P I (100 MHZ)

SOFTWARE REQUIREMENT SPECIFICATIONS


PROBLEM DEFINITION

1. What are the criterias demanded by the project


team

from

their

teams

to

validate

their

performance?
2. What are the duties and responsibilities of
executive class and of technical class team
members?
3. What are the criterias that a project team
adopts in order to assign project work to his
team members?
4. What

are

distribution;

the

details

shift

of

allocated

project,
and

work
team

performances etc?
5. What are the reasons that leads the call centers
towards a completely computer based system?
6. How does the system can fulfill the shift and
work distribution demands?
7. What are the appropriate steps followed by the
project manager in allotment the projects?
8. What steps the team leaders and supervisors
take for properly distributing work and shifts to
their team members?
9. What an employee has to do in order to change
his shift times from one date to another?

ANALYSIS

A comprehensive review of the relevant manual


system including a computer assisted search will be
undertaking in order to develop an understanding of
previous work in the field of shift allocation, work
distribution and performance grading. At this stage
overall system is studied thoroughly and problem
definition is declared over which the whole system
revolve.
INTERVIEWS
This stage will explore the shift allocation, work
distribution

and

performance

grading

system

adopted by the call centers. The explorations will be


achieved

through

unstructured

and

informal

interviews with 5 to 6 employees of the call centers.


These unstructured interviews help in detecting the
problem details faced during the shift allocation,
work distribution and performance grading system
by the project leaders and team members. Interviews
will

take

place

to

score

the

effectiveness.

ORGANIZATIONAL EVALUATION

levels

of

quality

The interview stage and analysis stage will bring


together to evaluate the information collected for
detect and design the actual system
This stage results
A

Structured

requirement

design
of

the

that
shift

can

meet

allocation,

the
work

distribution and performance grading system is


evaluation as the result of the evaluation phase?
What are the actual problems faced during the
shift

allocation,

work

distribution

and

performance grading system?


What are the appropriate steps that can be
taken to solve the problem?
What the actual flow of the information in the
project?
Call centers journals, reports, documents etc are
used to know the working a predicting the solutions
find during the study. Visual basic is used as design
software that provides a complete GUI, using which
the

call

centers

can

easily

use

the

software

developed. As per hardware is concerned a hard disk


of heavy capacity is required to store the heavy
record size of the company. Oracle database is used
as a backend tool to store and manipulate different
records of the company use. The processor speed

must be high with respect to the heavily loaded


database. Also the RAM must be compatible with
other hardware and software existed.
FUNCTIONAL & BEHAVIORAL DESCRIPTION
As the software functionality is concerned the
software consists many functions depend over the
requirement of the shift allocation, work distribution
and performance grading system. The software
behave differently with the different users it means if
some one wants to move inside the admin module it
will be interrupted by the software to alert him or to
warn him.

SYSTEM ANALYSIS
After studying the call centers current status it is
investigated that

call center hassle software to

computerized its shift allotment, shift allotment,


performance calculation etc and also call center
wants to implement its 4 & 5 phases of conducting
different test to find out the most labors and
intelligent worker of the call center.

Input and output to the system is calculated after


studying the call center s documents, charts etc.
Software structure, database structure functioning,
importance, administrations duties, performance
requirements, employees work details, call center
projects, shift timings, shift details and overall
working of the call center are mentioned after
analyzing and studying the call centers mode of
working.
A meeting held within the call center helps us to
learn more about the call center functioning and
obligation. After a small analysis phase a coarse
modular design is derived to recognize the input
output processing of the call center, which is added
enhanced at the time of designing.

PRELIMINARY INVESTIGATION
This technique is defined as small comprehensive
and concentrated study of an individual in which
investigator brings to put up with all his skills and

methods or as an organized congregation of enough


Information about a person to permit one to
understand how he or she functions as a unit of the
call center. It is a form of qualitative analysis
connecting a very useful and complete scrutiny of an
employee, its work details, its point details, its shift
details etc. Its a way of exploring and analyzing the
aspects of employee unit, work unit, shift allocation
unit and collection of work feed back.

1.

STUDY

OF

CALL

CENTERS

WORKING UNIT
Information

is

gathered

individuals

involvement

by
(i.e.

investigating
contribution

the
of

employee, its contribution to its department and that


of evaluation department) and their involvements in
the whole Call Centers Shift ALLOTMENT System.
The information thus gathered plays an important
role

in

properly

defining

individuals

expectations from the software system.

needs

and

2.

KNOWLEDGE

OF

BEHAVIOR

PATTERNS
What are call centers methods of work distribution
and shift allotment? What is the need to
computerized the system? Such type of questions
tries to describe the factors like running project
details, work distributed, role of project leader in
shift allotment i.e. behavioral pattern, which implies
how the process works? Where the changes are
required? And what are the changes to be done?

3. PROCEDURE OF DATA GATHERING


Research design and methodology
Statement of research aim
To analyze the overall shift allotment system of the
call center and to develop an effective and interactive
user-friendly system for the people concerned with

the shift allotment, work distribution and point


distribution etc.

RATIONALE THE RESEARCH


QUESTIONNAIRES
1. Research objective: Factors that leads to the
computerized call centers shift allotment system?

Result: The research is intended to obtain the


problem faced by the manual system of call center.
The objective is solved by a number of questionnaires
phases conducted between the employee and the
allotment and work distribution dept of the call
center and the research team. Different questions
related to the shift allotment and work distribution
are asked from the employees in order to retrieve the
information.
Why
system?

the

call

center

needs

computer-based

What

problems

the

call

center

faced

in

maintaining their shift schedules?


How project works are distributed?
Most common problem area for the call center?
What is the flow of information?

2. Research Objective: Criteria of dividing the total


work time into different shifts and allotting these
shifts to the employees.
Result: The intention behind the research is to find
out the number of work area and number of working
hours and also the number of employees belonging
to an individual work which facilitates the designer
to design the graphical user interface environment
i.e. forms and database required for keeping the
records. Questions asked during the research are:
How many working hours the call center has?
Works details and their performance during the
work?
Which work requires maximum number of shifts?

Total number of employees and works the call


center has?
What are the conditions applied for shift allotment
to the employees?

3. Research

Objective:

Working

of

performance

grading department.
Result: The research is intended to obtain the
necessary terms and conditions applied for gathering
work dues, generating project and employee report
etc. How data moves from team leaders to the
grading department and what employees get from
the call center in the favor of their work. Research
also discloses that how employees are charged for
the work they have to do. What is the mode of
payment?
What is the date of work details submission?
How team leaders collect the employees work
details?

What commission the call center gives to the


employee?
What is the total sale during a day?
What are the total monthly sales?
How profit and loss is depicted inside the agency?
Which paper is in the demand?

FEASIBILITY STUDY
BENEFIT ANALYSIS
In the current system it is difficult for the employee
to work over a number of projects simultaneously
and for the call center to distribute the times. This
results to costing a call center in terms of

Unnecessary delays in the work planned

ahead

Extra manpower requirement to transfer

messages across the organization on a daily basis.

Employees

are

working

at

different

departments are not able to get some technical and


administrative

support

sometimes

from

the

call

center

and

proceed

in

their

own

way

which

sometimes leads to unnecessary delays I the ongoing


project.

The proposed system if implemented will


lead to cost saving in following ways:

Availability of information by the call center

from employees and vice versa related to the ongoing


project. Leading to efficient planning for the work
ahead in proper time shifts.
No

extra

manpower

requirement

for

the

communication between the employees and mangers


or any department. The system handles all the
communication activities.
No

extra

manpower

requirement

for

the

communication between the employees and mangers


or any department. The system handles all the
communication activities.
The

employees

get

the

technical

and

administrative support in terms of the articles posted

by other employees or administrator related to their


experiences and responses to the queries raised of
them in shorter period of time.

SOFTWARE ENGINEERING PARADIGM


Customer it means the call center has a legitimate
need of the software but is clueless about the details
and was unable to understand the extract picture of
their requirements. So according to the customers
stage of confusion we adopt the Waterfall Model of
the software Paradigm. The classic life cycle or the
waterfall model, the linear sequential model suggests
a

systematic,

sequential

approach

to

software

development that begins at the system level and


progresses through analysis, design, coding testing,
and support.

System/Information
engineering
Analysis

Design

Code

Test

The linear sequential model for software


engineering. Modeled after a conventional
engineering cycle, the linear sequential model
encompasses the following activities: System /Information engineering and modeling.
Software requirements Analysis.
Design.
Code Generation.
Testing.
Support.

IMPLEMENTATION OF THE SYSTEM

The

overall

system

is

Oracle-8.

software

of

implemented
The

Visual

Employee
using

Basic

management

Visual

provides

Basic
a

and

perfect

graphical user interface for implement the call


centers shift allotment system into the forms to
make the system user friendly and interactive. The
system is implemented in forms, which are connected
to oracle database, which in its turn is used to held
data or records for the further details. Call centers
shift allotment System is implemented into Visual
Basic forms used to take input i.e. details required
for the system. Detail manipulation and calculations
are

also

performed

via

the

forms

and

the

correspondent data is sent to the tables of the oracle


database.

TESTING
System testing is vital to the success of the system.
This phase of the system development life cycle is

immediately after the coding phase. System testing


takes a logical assumption that if all parts of the
system are correct, the goals will be automatically
achieved. Inadequate testing or non-testing leads to
errors that may not appear until months later.
Another reason for testing is its utility as user
oriented vehicle before implementation since even
best program is worthless if it does not meet user
requirements.
Testing which are performed on the system. They are
as follows:

UNIT TESTING
Data was separately prepared and tested for submodules of database management system, under all
relevant conditions. This process helps in finding out
the bugs if any. In the software thereby requiring the
rectification in the modules again. Unit testing is for
the program is done in parallel with the construction
of the programs. E.g. here in CALL CENTERS SHIFT

ALLOTMENT SYSTEM all the modules are tested


separately. All interface testing, control flow testing
is done.

INTEGRATED TESTING
After the completion of errors at levels of unit testing
for all the programs in a module, the module is
tested for integration with other modules in the
system. The goal of this testing is to detect design
errors, while focusing on testing the interconnection
between modules.
E.g. Here In this project all modules are integrated
and then tested as one.

SYSTEM TESTING
System testing tests the entire flow of data of data
through the entire system. Data flows from the tables
were checked. This also includes the preparation of
test data, checking the entire system with this data

to see if all the requirements are met and the system


performs as specified by the requirements.

ACCEPTANCE TESTING
After the system testing is performed, finally
acceptance testing is performed to demonstrate to
the client the operation of the system on the real life
data of the client.
e.g. here in CALL CENTERS SHIFT ALLOTMENT
SYSTEM ,the programmer visited and explained
about project in detail. And showed all functionalities
a working of the project, then acceptance is taken
from the client.

SYSTEM SECURITY MEASURES


AN EVALUATION OF RISK
The objectives, functions and performance of the
system are evaluated after analyzing the assumptions
and dependencies of the proposed system. The

considerations made are development risk, resource


availability and technology. The possible risks
associated with the system are:
Unavailability of the skilled personnel to develop
the project on the web related technologies.
Unavailability

of

the

hardware

and

software

required to develops the project.


Frequent

leaves

taken

by

the

project

team

members resulting in the delay of the project.


Unavailability of the technology to support the
features estimated of the project.

THE RISK MITIGATION STRATEGIES


Training/hiring of the staff who is skilled enough
in the technologies needed in the project.
Arranging the required hardware and software well
in time for smooth functioning of the project.
Keeping the backup of the personnel in case any of
the team members go on leave.

Reference

to

the

user

manuals

of

the

technologies/development projects or to Internet for


finding out the right products for the project related
requirement.

LEGAL RAMIFICATIONS
As the call center makes the project for its own
purpose and the team members who will be working
on the projects will be employees of the call center
only there are no legal implications as such.

COST ESTIMATION OF THE PROJECT


There are certain costs associated with the project
depending upon the type of the project. Broadly
these are

STARTUP COST
Cost of operating system Software: as without
operating system nothing is possible in computer. OS
is purchased to work on.

Cost of communication Equipment: As Internet is


used to consult or study this kind of projects
available in market. Moreover call centers other
senior programmers are consulted through mail.
1. Cost of star-up personnel: hiring new employees
for working on this project only. Cost of management
for startup activities: the management spent some
amount of startup activities to start a project.

PROJECT RELATED COSTS


Cost of application Software
purchased
Cost of training : to train the client our employees
are engaged.
Cost of documentation: documentation is done as it
helps very much when another software development
team does updating.

ONGOING TASKS
System Maintenance Costs (hardware, Software &
Facilities): this includes normal servicing of

equipment. Plus if any problem with hardware like


printer, monitor etc.

RENTAL COSTS
Here is the cost Breakup for the project
Team Size 2
Duration 6 Months @ 30 days a month
Total effort 50 man day @ 20 $ per man day
Cost of manpower on the project: 10000 $

SYSTEM MAINTENANCE COSTS


Hardware/Software/Facilities: per machine 100 $ per
month total 1200 $ for two machines (here the
software which is required of development, the
license cost of that Software is taken care of)
Stationary Cost (documentation activities): 100 $ for
the project 600$

Estimated cost of the


project: $18500

CONTEXT-LEVEL DIAGRAM

Project Manger

Team Member

Project Distribution

Shift
Team Leader

Allotmen
t
System
of

Supervisor

Call
centersGrading
Performance

Time Allotment

Shift Allocation

1ST LEVEL DFD


Project
Manger

Time
Allotment

Project
Distributio
n

n
Controllin
g
Project
Work
Distributio
n

Team
Supervisor
Functional
Bifurcatio
n of
modules
Gantt Chart
Formulatio
n

Team Members

Module
Distribution
&
Controlling

Team Leader
Team
Work
Distributio
n

Function
al
Timetabl
e

2ND LEVEL DFD

Project
Manger

Shift
Allocation
Controlling

Shift
Chart
Preparation

Supervisors

Notice
Board
Dispersio
n

3rd LEVEL DFD

Team Leaders

Project Manger

Project wise
Performance
Grading

Team Members

Best
Team
Member
Selection

Team
Member
Performance
Grading

Best
Superviso
r
Selection

Supervisor

Module
Wise
Performance
Grading

Team Leader
Best Team
Leader
Selection
Assistant

DATAFLOW
Understanding the data flow is very important in the
project. In this project first the official details of new
employees are entered into the employee details
table and the personal information of the employee is
filled in the personal details table. Now each and
every employee is assigned a job along with the start
date, end date and the review date and these details
are stored in the work details table. Now based on
the review date from the work table, the employee is
reviewed and his review details are stored in the
review details table and the points given by the
reporting officer for that particular review is stored
in the result details table. A shift schedule table is
made in which all the records about the shifts like
shift id , shift time and work id for which it is
designed etc are stored. There is a separate table for
recording employees working shifts. Every time an
employee is reviewed his review points is stored in

the point table. Then depending on the average of


the points in three reviews the performance can be
seen. This shows the movement of data within the
tables, which is very important to know for the
clients, was this project would be installed so that
during any problems in the application they can
identify as to where the problem exists.

FORMS DESIGN

EMPLOYEE DETAILS FORM

This form contains all the fields of employee details


table. It also contains few necessary navigation
buttons. It contain buttons for adding, saving and
deleting records. Records saved from this form goes
directly to employee_details table.

PERSONAL DETAILS FORM

This form is linked to the employee form. After


filling the official details in the employee form we

will fill in his personal details in this form. This form


is bound to the personal_details table and all the
record will be saved in this table.

WORK FORM

This form is used to assign the jobs to the


Employees. In this form the reporting officer is also
assigned to the employee along with the start, end,
review dates of the project. According to the review
date given in this form, the employees will be
reviewed.

REVIEW_FORM

Each and every employees review details is stored in


table from this form. There are two buttons in this
form. One is SAVE and another one is EXIT. In the
click event of save button there are some important
procedures, which needs some explanation. As I am
processing three reviews of each person, so it will be

very difficult to maintain record of all the three


reviews in this table. So I am moving the points of
each employee in the Points table each time a
person is reviewed along with his emp_no . Since
there is a number of dataflow from this form so it is a
very important form.

RESULT FORM

In this project result form is a sub form of the review


form. The average acquired from this form is passed
to the review form to calculate the final details for
the employee performance. As soon as the employees
review is done the records from this table is deleted,
so as to reduce redundancy.

POINTS FORM

This form is loaded only when all the three reviews of


particular person is done. This form consists of a

grid layout, where all the records of the employees


are shown and based on this record we can draw a
graph.

PASSWORD FORM (ADMIN FORM)

This is the security form through which an officer


has to pass through prior to entering this project. If
correct password is entered Welcome Form will be
opened and incase of wrong password message will
be shown.

SHIFT SCHEDULE FORM (ADMIN

FORM)
This is the shift allotment form through which an
officer can arrange different shifts for different work
to be done. Shift ids, work id, shift time, start date
and end date are taken as input.

SHIFT ALLOCATE FORM (ADMIN

FORM)
This is the shift allotment form through which an
officer

can

allot

different

shifts

to

different

employees. Shift ids, work id, and employee id are


taken as input.

MODULAR DESCRIPTION

Module

Input

Processing logic

Output

Member

Registration

Employees

registratio

form

information

n
Project

Project

Project

distributio

proposal

name, requirement and distribution

nam
e

and form

detailed Team
formation

details

like Project

time complexity

schedules

controlling
Work

Work

Work details and their Work

distributio

distribution

schedule

n
Time

form
Work

supervisors for working


Work weight age and Time

allotment

distribution

time

within
time limit

to

team schedule list

required

to schedules,

a complete it with grace time


period and other limits

tables

and Gant and


pert

charts

Shift

Shift

Shift

allocation

preparation

allocating them to the

and

form

controlling

chart

display them on notice

Performance

boards etc
Calculation

Employee
and

or team

team form

Performanc including
e grading

formation

etc
and Shift schedule

supervisors

of Selection

performance
supervisor,

to

for
leader

best best
and supervisor,

personal and member

leader,

professional

member

details

team

PROCESS LOGIC
Proper connectivity between the visual basic and the
Oracle-8 is important. First step is to build a huge
database. Multiple queries will be allowed. This
processing logic we need to take care of validations.
Validations are very important part of the project,
without which the project is incomplete. Proper
relationship between the fields has to be defined.
Cascade updating and cascade deletion must also be
present in this project. Graphical representation for
the different entities will be shown.

TABLE STRUCTURE

of

and

Login
Name
Emp id

TYPE
VARCHAR2(10

Password

)
VARCHAR2(8)

Employee
Name
Emp id

TYPE
VARCHAR2(10

Emp name
Designation
Team id
Project id
Shift id
Module id

)
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(10)
VARCHAR2(10)
VARCHAR2(10)
VARCHAR2(10)

Personal
Name
Emp id

TYPE
VARCHAR2(10

Emp name
Address
Contact no
Age

)
VARCHAR2(30)
VARCHAR2(30)
VARCHAR2(10)
VARCHAR2(10)

Work
Name
Project id

TYPE
VARCHAR2(10

Project name
Work profile

)
VARCHAR2(30)
VARCHAR2(10

Start date
End date
Project cost
Supervisor id

0)
Date
Date
Number
VARCHAR2(10

No of module

)
Number

Shift Details
Name
Shift id

TYPE
VARCHAR2(10

)
Shift time
Number
Shift
start Date
date
Work id
Shift

Number
End Date

date

Points
Name
Emp id

TYPE
VARCHAR2(10

Module id
Contribution
Team sprit
Leader ship
Punctuality

)
VARCHAR2(30)
Number
Number
Number
Number

REPORT GENERATION
Employee details
Performance details
Shift allocation details
Work details
Shift schedule details

WELCOME FORM
Private Sub Command1_Click()
Load MDIForm1
MDIForm1.Show
End Sub
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Command1.ToolTipText = "Click To Start"
End Sub
Private Sub Command2_Click()
End
End Sub
Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Command2.ToolTipText = "Click To End"
End Sub

SHIFT ALLOCATE FORM


Dim WithEvents rs As ADODB.Recordset
Dim WithEvents rs1 As ADODB.Recordset
Dim WithEvents rs2 As ADODB.Recordset
Dim g As Boolean
Public Sub check()
If Combo1.Text = "" Then
g = False
Else: g = True
End If
End Sub
Public Sub enab(h As Boolean)
Command1.Enabled = h
End Sub

Private Sub Combo1_Change()


Dim str As String
str = Combo2.Text
rs1.MoveFirst
Do While rs1.EOF = False
If str = rs1!shift_id Then
Combo3.Text = rs1!work_id
Exit Sub
Else: rs1.MoveNext
End If
Loop
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = project"
Db.Open fconnect
Set rs = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockPessimistic
rs.Source = ("select * from shift_allocate ")
Set rs.ActiveConnection = Db
rs.Open
Set rs1 = New ADODB.Recordset
rs1.CursorType = adOpenStatic
rs1.CursorLocation = adUseClient
rs1.LockType = adLockPessimistic
rs1.Source = ("select * from shift_details ")
Set rs1.ActiveConnection = Db
rs1.Open
Set rs2 = New ADODB.Recordset
rs2.CursorType = adOpenStatic
rs2.CursorLocation = adUseClient
rs2.LockType = adLockPessimistic
rs2.Source = ("select * from employee_details ")
Set rs2.ActiveConnection = Db
rs2.Open
Do While rs1.EOF = False
Combo1.AddItem rs1!shift_id

rs1.MoveNext
Loop
Do While rs2.EOF = False
Combo2.AddItem rs2!emp_no
rs2.MoveNext
Loop
End Sub
Public Sub inserting()
rs!shift_id = Combo1.Text
rs!emp_id = Combo2.Text
rs!work_id = Combo3.Text
End Sub
Public Sub clear()
Combo1.Text = ""
Combo2.Text = ""
Combo3.Text = ""
End Sub
Private Sub Command3_Click()
Combo1.Text = ""
Combo2.Text = ""
Combo3.Text = ""
End Sub
Private Sub Command4_Click()
check
If g = True Then
rs.AddNew
inserting
rs.Update
clear
Command1.Enabled = True
ElseIf g = False Then
MsgBox "CANNOT INSERT EMPTY RECORD", vbOKOnly, "WATCH
OUT"
End If
MsgBox " Record have be entered sucessfully"
End Sub

Private Sub Command5_Click()


Command5.Enabled = True
If rs.EOF = False Then
rs.Delete
rs.MoveNext
MsgBox ("Record have been successfully deleted")
Else
MsgBox ("THERE IS NO MORE RECORD PRESENT ")
End If
End Sub
Private Sub Command6_Click()
MDIForm1.Show
Me.Hide
End Sub
Private Sub Command1_Click()
Dim h As String
Dim i As Long
Dim j As Long
Dim g As Long
enab (False)
rs.MoveFirst
g=0
Do While Not rs.EOF
g=g+1
rs.MoveNext
Loop
MsgBox g
MSFlexGrid1.Cols = 4
MSFlexGrid1.Rows = Val(g + 1)
MSFlexGrid1.TextMatrix(0, 0) = "SR.NO"
MSFlexGrid1.TextMatrix(0, 1) = "SHIFT ID"
MSFlexGrid1.TextMatrix(0, 2) = "WORK ID"
MSFlexGrid1.TextMatrix(0, 3) = "EMP ID"
MSFlexGrid1.AllowBigSelection = False
MSFlexGrid1.SelectionMode = flexSelectionByRow
MSFlexGrid1.AllowUserResizing = flexResizeBoth
rs.MoveFirst
For k = 1 To g
MSFlexGrid1.TextMatrix(k, 0) = Val(k)
MSFlexGrid1.TextMatrix(k, 1) = rs!shift_id
MSFlexGrid1.TextMatrix(k, 2) = rs!work_id

MSFlexGrid1.TextMatrix(k, 3) = rs!emp_id
On Error GoTo 20:
rs.MoveNext
Next
20: Exit Sub
allocate.Refresh
End Sub

SHIFT SCHEDULE FORM


Dim WithEvents rs As ADODB.Recordset
Dim WithEvents rs1 As ADODB.Recordset
Dim g As Boolean
Public Sub check()
If Text1.Text = "" Then
g = False
Else: g = True
End If
End Sub
Public Sub enab(h As Boolean)
Command1.Enabled = h
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = project"
Db.Open fconnect
Set rs = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockPessimistic
rs.Source = ("select * from shift_details")
Set rs.ActiveConnection = Db
rs.Open
Set rs1 = New ADODB.Recordset
rs1.CursorType = adOpenStatic
rs1.CursorLocation = adUseClient
rs1.LockType = adLockPessimistic
rs1.Source = ("select * from work_details")

Set rs1.ActiveConnection = Db
rs1.Open
Do While rs1.EOF = False
Combo1.AddItem rs1!work_id
rs1.MoveNext
Loop
End Sub
Public Sub inserting()
rs!shift_id = Text1.Text
rs!work_id = Combo1.Text
rs!shift_time = Text2.Text
rs!shift_start_date = Text3.Text
rs!shift_end_date = Text4.Text
End Sub
Public Sub clear()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Combo1.Text = ""
End Sub
Private Sub Command3_Click()
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Combo1.Text = ""
End Sub
Private Sub Command4_Click()
check
If g = True Then
rs.AddNew
inserting
rs.Update
clear
ElseIf g = False Then

MsgBox "CANNOT INSERT EMPTY RECORD", vbOKOnly, "WATCH


OUT"
End If
MsgBox " Record have be entered sucessfully"
End Sub
Private Sub Command5_Click()
Command5.Enabled = True
If rs.EOF = False Then
rs.Delete
rs.MoveNext
MsgBox ("Record have been successfully deleted")
Else
MsgBox ("THERE IS NO MORE RECORD PRESENT ")
End If
End Sub
Private Sub Command6_Click()
MDIForm1.Show
Me.Hide
End Sub
Private Sub Command1_Click()
Dim h As String
Dim i As Long
Dim j As Long
Dim g As Long
enab (False)
rs.MoveFirst
g=0
Do While Not rs.EOF
g=g+1
rs.MoveNext
Loop
MsgBox g
MSFlexGrid1.Cols = 6
MSFlexGrid1.Rows = Val(g + 1)
MSFlexGrid1.TextMatrix(0, 0) = "SR.NO"
MSFlexGrid1.TextMatrix(0, 1) = "SHIFT ID"
MSFlexGrid1.TextMatrix(0, 2) = "WORK ID"
MSFlexGrid1.TextMatrix(0, 3) = "SHIFT TIME"

MSFlexGrid1.TextMatrix(0, 4) = "SHIFT START DATE"


MSFlexGrid1.TextMatrix(0, 5) = "SHIFT END DATE"
MSFlexGrid1.AllowBigSelection = False
MSFlexGrid1.SelectionMode = flexSelectionByRow
MSFlexGrid1.AllowUserResizing = flexResizeBoth
rs.MoveFirst
For k = 1 To g
MSFlexGrid1.TextMatrix(k, 0) = Val(k)
MSFlexGrid1.TextMatrix(k, 1) = rs!shift_id
MSFlexGrid1.TextMatrix(k, 2) = rs!work_id
MSFlexGrid1.TextMatrix(k, 3) = rs!shift_time
MSFlexGrid1.TextMatrix(k, 4) = rs!shift_start_date
MSFlexGrid1.TextMatrix(k, 5) = rs!shift_end_date
On Error GoTo 20:
rs.MoveNext
Next
20: Exit Sub
schedule.Refresh
End Sub

EMPLOYEE OFFICE DETAIL FORM


Dim WithEvents rs As ADODB.Recordset
Dim WithEvents rs1 As ADODB.Recordset
Dim WithEvents rs2 As ADODB.Recordset
Dim WithEvents rs4 As ADODB.Recordset
Dim WithEvents rs5 As ADODB.Recordset
Dim g As Boolean
Private Sub ADDC_Click()
clear
navig (True)
Text1.SetFocus
Text8.Enabled = False
SAVC.Enabled = True
End Sub

Public Sub enab(h As Boolean)


ADDC.Enabled = h
SAVC.Enabled = h
FIRSTC.Enabled = h
NEXTC.Enabled = h
PREVC.Enabled = h
LASTC.Enabled = h
End Sub
Private Sub CANC_Click()
enab (True)
End Sub
Private Sub Command1_Click()
Dim h As String
Dim i As Long
Dim j As Long
Dim g As Long
enab (False)
rs.MoveFirst
g=0
Do While Not rs.EOF
g=g+1
rs.MoveNext
Loop
MsgBox g
MSFlexGrid1.Cols = 9
MSFlexGrid1.Rows = Val(g + 1)
MSFlexGrid1.TextMatrix(0, 0) = "SR.NO"
MSFlexGrid1.TextMatrix(0, 1) = "EMPLOYEE NUMBER"
MSFlexGrid1.TextMatrix(0, 2) = "NAME"
MSFlexGrid1.TextMatrix(0, 3) = "GRADE"
MSFlexGrid1.TextMatrix(0, 4) = "DEPARTMENT"
MSFlexGrid1.TextMatrix(0, 5) = "DESIGNATION"
MSFlexGrid1.TextMatrix(0, 6) = "DATE OF ENTRY"
MSFlexGrid1.TextMatrix(0, 7) = "AGE"
MSFlexGrid1.TextMatrix(0, 8) = "SEX"
MSFlexGrid1.AllowBigSelection = False
MSFlexGrid1.SelectionMode = flexSelectionByRow
MSFlexGrid1.AllowUserResizing = flexResizeBoth
rs.MoveFirst
For k = 1 To g
MSFlexGrid1.TextMatrix(k, 0) = Val(k)

MSFlexGrid1.TextMatrix(k, 1) = rs!emp_no
MSFlexGrid1.TextMatrix(k, 2) = rs!emp_name
MSFlexGrid1.TextMatrix(k, 3) = rs!emp_grade
MSFlexGrid1.TextMatrix(k, 4) = rs!department
MSFlexGrid1.TextMatrix(k, 5) = rs!designation
MSFlexGrid1.TextMatrix(k, 6) = rs!date_of_entry
MSFlexGrid1.TextMatrix(k, 7) = rs!age
MSFlexGrid1.TextMatrix(k, 8) = rs!sex
On Error GoTo 20:
rs.MoveNext
Next
20: Exit Sub
Employee.Refresh
End Sub
Private Sub DELC_Click()
DELC.Enabled = True
rs.MoveFirst
Do While Not rs.EOF
If bac = rs!emp_no Then
rs.Delete
Exit Do
Else
rs.MoveNext
End If
Loop
MsgBox ("DELETED FROM EMPLOYEE")
rs1.MoveFirst
Do While Not rs1.EOF
If bac = rs1!emp_no Then
rs1.Delete
Exit Do
Else
rs1.MoveNext
End If
Loop
MsgBox ("RECORD DELETED FROM PERSONAL")
rs2.MoveFirst
Do While Not rs2.EOF
If bac = rs2!emp_no Then

rs2.Delete
rs2.MoveNext
Else
rs2.MoveNext
End If
Loop
MsgBox ("RECORDS DELETED FROM WORK")
rs4.MoveFirst
Do While Not rs4.EOF
If bac = rs4!emp_no Then
rs4.Delete
Exit Do
Else
rs4.MoveNext
End If
Loop
MsgBox ("DELETED FROM REVIEW")
rs5.MoveFirst
Do While Not rs5.EOF
If bac = rs5!emp_no Then
rs5.Delete
Exit Do
Else
rs5.MoveNext
End If
Loop
MsgBox ("DELETED FROM RESULT")
Employee.Refresh
End Sub
Private Sub FIRSTC_Click()
rs.MoveFirst
Text1.Text = rs!emp_no
Combo1.Text = rs!emp_grade
Text3.Text = rs!emp_name
Text10.Text = rs!department
Text4.Text = rs!designation
Text5.Text = rs!date_of_entry

Text6.Text = rs!QUALIFICATION
Text7.Text = rs!date_of_BIRTH
Text8.Text = rs!age
Text9.Text = rs!sex
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = PROJECT"
Db.Open fconnect
Set rs = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockPessimistic
rs.Source = ("select * from employee_details")
Set rs.ActiveConnection = Db
rs.Open
rs.MoveFirst
Text1.Text = rs!emp_no
Combo1.Text = rs!emp_grade
Text3.Text = rs!emp_name
Text10.Text = rs!department
Text4.Text = rs!designation
Text5.Text = rs!date_of_entry
Text6.Text = rs!QUALIFICATION
Text7.Text = rs!date_of_BIRTH
Text8.Text = rs!age
Text9.Text = rs!sex
navig (False)
Text1.Enabled = False
SAVC.Enabled = False
Set rs1 = New ADODB.Recordset
rs1.CursorType = adOpenStatic
rs1.CursorLocation = adUseClient
rs1.LockType = adLockPessimistic
rs1.Source = "select * from personal_details"

Set rs1.ActiveConnection = Db
rs1.Open
Set rs2 = New ADODB.Recordset
rs2.CursorType = adOpenStatic
rs2.CursorLocation = adUseClient
rs2.LockType = adLockPessimistic
rs2.Source = ("select * from work_details")
Set rs2.ActiveConnection = Db
rs2.Open
Set rs4 = New ADODB.Recordset
rs4.CursorType = adOpenStatic
rs4.CursorLocation = adUseClient
rs4.LockType = adLockPessimistic
rs4.Source = ("select * from review_details")
Set rs4.ActiveConnection = Db
rs4.Open
Set rs5 = New ADODB.Recordset
rs5.CursorType = adOpenStatic
rs5.CursorLocation = adUseClient
rs5.LockType = adLockPessimistic
rs5.Source = ("select * from result_details")
Set rs5.ActiveConnection = Db
rs5.Open
End Sub
Public Sub navig(s As Boolean)
Text1.Enabled = s
Combo1.Enabled = s
Text3.Enabled = s
Text4.Enabled = s
Text5.Enabled = s
Text6.Enabled = s
Text7.Enabled = s
Text8.Enabled = s
Text9.Enabled = s
Text10.Enabled = s
End Sub
Public Sub clear()

Text1.Text = ""
Combo1.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""
Text9.Text = ""
Text10.Text = ""
End Sub
Public Sub check()
If Text1.Text = "" Or Combo1.Text = "" Or Text3.Text = "" Or Text4.Text = ""
Or Text5.Text = "" Or Text6.Text = "" Or Text7.Text = "" Or Text8.Text = "" Or
Text9.Text = "" Or Text10.Text = "" Then
g = False
Else: g = True
End If
End Sub
Public Sub inserting()
rs!emp_no = Text1.Text
rs!emp_name = Text3.Text
rs!emp_grade = Combo1.Text
rs!department = Text10.Text
rs!designation = Text4.Text
rs!date_of_entry = Text5.Text
rs!QUALIFICATION = Text6.Text
rs!date_of_BIRTH = Text7.Text
rs!age = Text8.Text
rs!sex = Text9.Text
End Sub
Private Sub LASTC_Click()
rs.MoveLast
Text1.Text = rs!emp_no
Combo1.Text = rs!emp_grade
Text3.Text = rs!emp_name
Text10.Text = rs!department
Text4.Text = rs!designation

Text5.Text = rs!date_of_entry
Text6.Text = rs!QUALIFICATION
Text7.Text = rs!date_of_BIRTH
Text8.Text = rs!age
Text9.Text = rs!sex
End Sub
Private Sub MSFlexGrid1_Click()
Dim numb As Integer
numb = 0
numb = MSFlexGrid1.Row
MsgBox numb
bac1 = MSFlexGrid1.TextMatrix(numb, 1)
MsgBox bac1
End Sub
Private Sub NEXTC_Click()
If rs.EOF = False Then
rs.MoveNext
End If
If rs.EOF = True Then
rs.MovePrevious
MsgBox ("YOU ARE WATCHING THE LAST RECORD")
End If
Text1.Text = rs!emp_no
Combo1.Text = rs!emp_grade
Text3.Text = rs!emp_name
Text10.Text = rs!department
Text4.Text = rs!designation
Text5.Text = rs!date_of_entry
Text6.Text = rs!QUALIFICATION
Text7.Text = rs!date_of_BIRTH
Text8.Text = rs!age
Text9.Text = rs!sex
End Sub
Private Sub PREVC_Click()
rs.MovePrevious
If rs.BOF = True Then
rs.MoveFirst
MsgBox ("YOU ARE WATCHING THE FIRST RECORD")

End If
Text1.Text = rs!emp_no
Combo1.Text = rs!emp_grade
Text3.Text = rs!emp_name
Text10.Text = rs!department
Text4.Text = rs!designation
Text5.Text = rs!date_of_entry
Text6.Text = rs!QUALIFICATION
Text7.Text = rs!date_of_BIRTH
Text8.Text = rs!age
Text9.Text = rs!sex
End Sub
Private Sub SAVC_Click()
Command1.Enabled = True
check
If g = True Then
rs.AddNew
inserting
rs.Update
ElseIf g = False Then
MsgBox "CANNOT INSERT EMPTY RECORD", vbOKOnly, "WATCH
OUT"
End If
SAVC.Enabled = False
End Sub
Private Sub combo1_Validate(Cancel As Boolean)
If Combo1.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text10_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY CHARACTERS", vbOKOnly, "error")
End If
End Sub

Private Sub Text10_Validate(Cancel As Boolean)


If Text10.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE
CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text3_Validate(Cancel As Boolean)
If Text3.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text4_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text4_Validate(Cancel As Boolean)
If Text4.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If

End Sub
Private Sub Text5_LostFocus()
Dim a As String
Dim b As String
Dim MON As Date
a = Text5.Text
b = Left(a, 2)
d = Val(b)
If d > 31 Then
MsgBox ("NOT VALID DATE")
Text5.Text = ""
Text5.SetFocus
Exit Sub
End If
c = Mid(a, 4, 2)
f = Val(c)
If f > 12 Then
MsgBox ("MONTH NOT VALID")
Text5.Text = ""
Text5.SetFocus
Exit Sub
End If
k = Right(a, 2)
m = Val(k)
If m > 2001 Then
MsgBox ("NOT VALID YEAR")
Text5.Text = ""
Text5.SetFocus
Exit Sub
End If
If Len(Format(a, "DD/MM/YYYY")) <> 10 Then
MsgBox "wrong format"
Text5.Text = ""
Text5.SetFocus
Else
fg = Format(Now, "DD/MM/YYYY")
If MON > fg Then
MsgBox ("DATE SHOULD NOT BE MORE THAN SYSTEM
DATE")
Text5.Text = ""
Text5.SetFocus
End If

End If
Exit Sub
End Sub
Private Sub Text5_Validate(Cancel As Boolean)
If Text5.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text6_Validate(Cancel As Boolean)
If Text6.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text7_LostFocus()
Dim a As String
Dim b As String
Dim MON As Date
a = Text7.Text
b = Left(a, 2)
d = Val(b)
If d > 31 Then
MsgBox ("NOT VALID DATE")
Text7.Text = ""
Text7.SetFocus
Exit Sub
End If
c = Mid(a, 4, 2)
f = Val(c)
If f > 12 Then
MsgBox ("MONTH NOT VALID")
Text7.Text = ""
Text7.SetFocus
Exit Sub
End If

k = Right(a, 2)
m = Val(k)
If m > 2001 Then
MsgBox ("NOT VALID YEAR")
Text7.Text = ""
Text7.SetFocus
Exit Sub
End If
If MON = Len(Format(a, "DD/MM/YYYY")) > 10 Then
MsgBox "wrong format"
Text7.Text = ""
Text7.SetFocus
Else
fg = Format(Now, "DD/MM/YYYY")
u = Year(Format(a, "DD/MM/YYYY"))
MsgBox u
v = Year(fg)
MsgBox v
X=v-u
Text8.Text = X
If MON > fg Then
MsgBox ("DATE SHOULD NOT BE MORE THAN SYSTEM
DATE")
Text7.Text = ""
Text7.SetFocus
End If
End If
Exit Sub
u = Year(MON)
v = Year(fg)
X=v-u
Text8.Text = X
End Sub
Private Sub Text7_Validate(Cancel As Boolean)
If Text7.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub

Private Sub Text9_KeyPress(KeyAscii As Integer)


If KeyAscii <> 70 And KeyAscii <> 77 Then
KeyAscii = 0
MsgBox ("ENTER [F] FOR FEMALE OR [M] FOR MALE")
End If
End Sub
Private Sub Text9_LostFocus()
Dim j As String
Dim out As Date
rs.MoveLast
X = rs!emp_no
h = Left(X, 1)
Y = Right(X, 1)
t = Val(Y)
Y=Y+1
j = Text5.Text
out = Format(j, "dd/mm/yyyy")
ref = CDate(out)
l = Month(out)
'P = Val(l)
r = Year(out)
'F = Val(r)
Text1.Text = h & l & r & Y
End Sub
Private Sub Text9_Validate(Cancel As Boolean)
If Text9.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub

REVIEW GRID FORM


Dim WithEvents rs As ADODB.Recordset
Dim WithEvents rs2 As ADODB.Recordset
Dim WithEvents rs6 As ADODB.Recordset
Private Sub Form_Load()
Dim h As String
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = msdasql.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = project"
Db.Open fconnect
Set rs6 = New ADODB.Recordset
rs6.CursorType = adOpenStatic
rs6.CursorLocation = adUseClient
rs6.LockType = adLockOptimistic
f = "select * from work_details "
rs6.Source = f
Set rs6.ActiveConnection = Db
rs6.Open
rs6.MoveFirst
g=0
Do While Not rs6.EOF
g=g+1
rs6.MoveNext
Loop
'MsgBox g
i=1
MSFlexGrid1.Cols = 5
MSFlexGrid1.Rows = Val(g + 1)
MSFlexGrid1.TextMatrix(0, 0) = "SR No."
MSFlexGrid1.TextMatrix(0, 1) = "WORK_ID"
MSFlexGrid1.TextMatrix(0, 2) = "NAME"
MSFlexGrid1.TextMatrix(0, 3) = "GRADE"
MSFlexGrid1.TextMatrix(0, 4) = "REPORTING OFFICER"
MSFlexGrid1.AllowBigSelection = False
MSFlexGrid1.SelectionMode = flexSelectionByRow
'MSFlexGrid1.DragMode = 1
MSFlexGrid1.AllowUserResizing = flexResizeBoth

rs6.MoveFirst
For k = 1 To g
MSFlexGrid1.TextMatrix(k, 0) = Val(k)
MSFlexGrid1.TextMatrix(k, 1) = rs6!work_id
MSFlexGrid1.TextMatrix(k, 2) = rs6!Name
MSFlexGrid1.TextMatrix(k, 3) = rs6!grade
'
MSFlexGrid1.TextMatrix(k, 4) = rs6!reporting_officer_id
On Error GoTo 20:
rs6.MoveNext
Next
20: Exit Sub
End Sub
Private Sub MSFlexGrid1_Click()
Dim a As Integer
a = MSFlexGrid1.Row
MsgBox a
b = MSFlexGrid1.TextMatrix(a, 1)
MsgBox b
End Sub

MDI FROM
Dim WithEvents rs13 As ADODB.Recordset
Private Sub admin_Click()
Load Password
Password.Show
End Sub
Private Sub MDIForm_Load()
reporting.Visible = True
On Error GoTo 20
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = PROJECT"

Db.open fconnect
Set rs13 = New ADODB.Recordset
rs13.CursorType = adOpenStatic
rs13.CursorLocation = adUseClient
rs13.LockType = adLockPessimistic
f = "select * from work_details"
rs13.Source = f
Set rs13.ActiveConnection = Db
rs13.open
rs13.MoveFirst
g=0
Do While Not rs13.EOF
G=g+1
rs13.MoveNext
Loop
'MsgBox g
If g >= 1 Then
Load (GRIDF)
GRIDF.Show
Else: GoTo 20
20:
Exit Sub
End If
End Sub
Private Sub official_Click()
Load Employee
Employee.Show
End Sub
Private Sub p_Click()
points.Show
End Sub
Private Sub personal1_Click()
Load Personal
Personal.Show
End Sub
Private Sub points_Click()
points.Show

End Sub
Private Sub reporting_Click()
report.Show
End Sub
Private Sub SA_Click()
allocate.Show
End Sub
Private Sub SS_Click()
schedule.Show
End Sub
Private Sub WK_Click()
Work.Show
End Sub

PASSWORD FORM
Dim WithEvents rs As ADODB.Recordset
Dim d As Integer
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER =MSDASQL.1 ;" & " UID = scott;" & " PWD = tiger;" & "
data source = PROJECT"
Db.open fconnect
Set rs = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient

rs.LockType = adLockOptimistic
rs.Source = ("select * from admin")
Set rs.ActiveConnection = Db
rs.open
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE
CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE
CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text1_Validate(Cancel As Boolean)
If Text1.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text2_Validate(Cancel As Boolean)
If Text2.Text = "" Then
MsgBox "EMPTY FIELD", vbInformation, "ERROR"
Cancel = True

End If
End Sub
Private Sub Command1_Click()
rs.MoveFirst
Do Until rs.EOF
If (Text1.Text = rs!userid) And (Text2.Text = rs!Password) Then
review.Show
Me.Hide
Exit Sub
End If
rs.MoveNext
Loop
If i = 3 Then
MsgBox "invalid user login!", vbOKOnly, "logon"
MsgBox "login failed", vbOKOnly, "logon"
End
End If
MsgBox "invalid user login try again!", vbOKOnly, "logon"
Text2.Text = ""
Text2.SetFocus
i=i+1
End Sub

PERSONAL DETAIL FORM


Dim WithEvents rs1 As ADODB.Recordset
Dim WithEvents rs As ADODB.Recordset
Dim i As Integer
Dim g As Boolean
Private Sub Command1_Click()
Work.Show
End Sub
Private Sub Command2_Click()
Unload Personal
End Sub

Private Sub FIRSTC_Click()


rs.MoveFirst
Text1.Text = rs!emp_no
Text2.Text = rs!Address
Text3.Text = rs!city
Text4.Text = rs!country
Text5.Text = rs!zip_code
Text6.Text = rs!phone
Text7.Text = rs!e_mail
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = project"
Db.open fconnect
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockPessimistic
rs1.Source = ("select * from employee_details")
rs.Source = ("select * from personal_details")
Set rs.ActiveConnection = Db
Set rs1.ActiveConnection = Db
rs.open
rs1.open
Do While rs1.EOF = False
Combo1.AddItem rs1!emp_no
rs1.MoveNext
Loop
SAVC.Enabled = True
End Sub

Public Sub check()


If Combo1.Text = "" Or Text2.Text = "" Or Text3.Text = "" Or Text4.Text = ""
Or Text5.Text = "" Or Text6.Text = "" Or Text7.Text = "" Then
g = False
Else: g = True
End If
End Sub
Public Sub inserting()
rs!emp_no = Combo1.Text
rs!Address = Text2.Text
rs!city = Text3.Text
rs!country = Text4.Text
rs!zip_code = Text5.Text
rs!phone = Text6.Text
rs!e_mail = Text7.Text
End Sub
Private Sub LASC_Click()
rs1.MoveLast
Text1.Text = rs1!emp_no
Text2.Text = rs1!Address
Text3.Text = rs1!city
Text4.Text = rs1!country
Text5.Text = rs1!zip_code
Text6.Text = rs1!phone
Text7.Text = rs1!e_mail
End Sub
Private Sub NEXC_Click()
If rs1.EOF = False Then
rs1.MoveNext
End If
If rs1.EOF = True Then
MsgBox ("THIS IS THE LAST RECORD")
Else
Text1.Text = rs1!emp_no
Text2.Text = rs1!Address
Text3.Text = rs1!city

Text4.Text = rs1!country
Text5.Text = rs1!zip_code
Text6.Text = rs1!phone
Text7.Text = rs1!e_mail
End If
End Sub
Private Sub PREVC_Click()
rs1.MovePrevious
If rs1.BOF = True Then
rs1.MoveFirst
MsgBox ("YOU ARE VIEWING THE FIRST RECORD")
End If
Text1.Text = rs1!emp_no
Text2.Text = rs1!Address
Text3.Text = rs1!city
Text4.Text = rs1!country
Text5.Text = rs1!zip_code
Text6.Text = rs1!phone
Text7.Text = rs1!e_mail
End Sub
Private Sub SAVC_Click()
Command1.Enabled = True
check
If g = True Then
rs.AddNew
inserting
rs.Update
ElseIf g = False Then
MsgBox "CANNOT INSERT EMPTY RECORD", vbOKOnly, "WATCH
OUT"
End If
clear
End Sub
Public Sub navig(s As Boolean)
Text1.Enabled = s
Text2.Enabled = s
Text3.Enabled = s
Text4.Enabled = s
Text5.Enabled = s

Text6.Enabled = s
Text7.Enabled = s
End Sub
Public Sub clear()
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE
CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text3_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE
CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text4_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0

RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE


CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text6_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text7_LostFocus()
SAVC.Enabled = True
End Sub

POINT FORM
Dim WithEvents rs9 As ADODB.Recordset
Dim WithEvents rs10 As ADODB.Recordset
Private Sub Command2_Click()
End
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = PROJECT"
Db.open fconnect
Set rs9 = New ADODB.Recordset
rs9.CursorType = adOpenStatic
rs9.CursorLocation = adUseClient
rs9.LockType = adLockOptimistic
rs9.Source = ("select * from result_details")
Set rs9.ActiveConnection = Db
rs9.open

rs9.MoveFirst
g=0
Do While Not rs9.EOF
g=g+1
rs9.MoveNext
Loop
MsgBox g
i=1
MSFlexGrid1.Cols = 13
MSFlexGrid1.Rows = Val(g + 1)
MSFlexGrid1.TextMatrix(0, 0) = "SR. NO"
MSFlexGrid1.TextMatrix(0, 1) = "EMP NO"
MSFlexGrid1.TextMatrix(0, 2) = "JOB KNOWLEDGE"
MSFlexGrid1.TextMatrix(0, 3) = "ORGANISING ABILITY"
MSFlexGrid1.TextMatrix(0, 4) = "COST EFFECTIVENESS"
MSFlexGrid1.TextMatrix(0, 5) = "TEAM EFFECTIVENESS"
MSFlexGrid1.TextMatrix(0, 6) = "INITIATIVE"
MSFlexGrid1.TextMatrix(0, 7) = "JUDGEMENT"
MSFlexGrid1.TextMatrix(0, 8) = "ADAPTABILITY"
MSFlexGrid1.TextMatrix(0, 9) = "DEVELOPMENT_OF_SUBORDINATES"
MSFlexGrid1.TextMatrix(0, 10) = "COMMUNICATION_SKILL"
MSFlexGrid1.TextMatrix(0, 11) = "PEER_RELATIONSHIP"
MSFlexGrid1.TextMatrix(0, 12) = "Average"
MSFlexGrid1.AllowBigSelection = False
MSFlexGrid1.SelectionMode = flexSelectionByRow
MSFlexGrid1.AllowUserResizing = flexResizeBoth
rs9.MoveFirst
For k = 1 To g
MSFlexGrid1.TextMatrix(k, 0) = Val(k)
MSFlexGrid1.TextMatrix(k, 1) = rs9!emp_no
MSFlexGrid1.TextMatrix(k, 2) = rs9!JOB_KNOWLEDGE
MSFlexGrid1.TextMatrix(k, 3) = rs9!ORGANISING_ABILITY
MSFlexGrid1.TextMatrix(k, 4) = rs9!COST_EFFECTIVENESS
MSFlexGrid1.TextMatrix(k, 5) = rs9!TEAM_EFFECTIVENESS
MSFlexGrid1.TextMatrix(k, 6) = rs9!INITIATIVE
MSFlexGrid1.TextMatrix(k, 7) = rs9!JUDGEMENT
MSFlexGrid1.TextMatrix(k, 8) = rs9!ADAPTABILITY
MSFlexGrid1.TextMatrix(k, 9) = rs9!
DEVELOPMENT_OF_SUBORDINATES
MSFlexGrid1.TextMatrix(k, 10) = rs9!COMMUNICATION_SKILL
MSFlexGrid1.TextMatrix(k, 11) = rs9!PEER_RELATIONSHIP

MSFlexGrid1.TextMatrix(k, 12) = rs9!Average


On Error GoTo 20:
rs9.MoveNext
Next
20: Exit Sub
End Sub

REPORT FORM
Private Sub Command1_Click()
DataReport1.Show
End Sub
Private Sub Command2_Click()
DataReport2.Show
End Sub
Private Sub Command3_Click()
DataReport3.Show
End Sub
Private Sub Command4_Click()
DataReport4.Show
End Sub
Private Sub Command5_Click()
DataReport4.Show
End Sub
Private Sub Command6_Click()
End
End Sub
Private Sub Command7_Click()
DataReport6.Show

End Sub
Private Sub Command8_Click()
DataReport7.Show
End Sub

RESULT FORM
Dim WithEvents rs As ADODB.Recordset
Dim WithEvents rs5 As ADODB.Recordset
Dim g As Boolean
Private Sub Combo1_Change()
Dim str As String
str = Combo1.Text
rs.MoveFirst
Do While rs.EOF = False
Combo1.Text = rs!emp_no
If str = rs!emp_no Then
Text2.Text = rs!work_id
Text3.Text = rs!Target
Text7.Text = rs!review_date
Exit Sub
Else:
rs.MoveNext
End If
Loop
End Sub
Private Sub Command1_Click()
Unload Result
review.Show
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String

fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = PROJECT"
Db.open fconnect
Set rs5 = New ADODB.Recordset
rs5.CursorType = adOpenStatic
rs5.CursorLocation = adUseClient
rs5.LockType = adLockPessimistic
rs5.Source = ("select * from result_details")
Set rs5.ActiveConnection = Db
rs5.open
Set rs = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockPessimistic
rs.Source = ("select * from employee_details")
Set rs.ActiveConnection = Db
rs.open
Combo1.Text = rs!emp_no
SAVC.Enabled = True
Command1.Enabled = False
End Sub
Public Sub check()
If Combo1.Text = "" Or Text3.Text = "" Or Text5.Text = "" Or Text6.Text = ""
Or Text7.Text = "" Or Text8.Text = "" Or Text9.Text = "" Or Text10.Text = "" Or
Text11.Text = "" Or Text12.Text = "" Or Text13.Text = "" Then
g = False
Else: g = True
End If
End Sub
Public Sub inserting()
rs5!emp_no = Combo1.Text
rs5!Average = Text3.Text
rs5!JOB_KNOWLEDGE = Text5.Text
rs5!ORGANISING_ABILITY = Text6.Text
rs5!COST_EFFECTIVENESS = Text7.Text
rs5!TEAM_EFFECTIVENESS = Text8.Text

rs5!INITIATIVE = Text9.Text
rs5!JUDGEMENT = Text10.Text
rs5!ADAPTABILITY = Text11.Text
rs5!DEVELOPMENT_OF_SUBORDINATES = Text14.Text
rs5!COMMUNICATION_SKILL = Text12.Text
rs5!PEER_RELATIONSHIP = Text13.Text
End Sub
Private Sub SAVC_Click()
Command1.Enabled = True
check
If g = True Then
rs5.AddNew
inserting
rs5.Update
ElseIf g = False Then
MsgBox "CANNOT INSERT EMPTY RECORD", vbOKOnly, "WATCH
OUT"
End If
SAVC.Enabled = False
End Sub
Private Sub Text10_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text10_Validate(Cancel As Boolean)
If Text10.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text11_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub

Private Sub Text11_Validate(Cancel As Boolean)


If Text11.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text12_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text12_Validate(Cancel As Boolean)
If Text12.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text13_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text13_Validate(Cancel As Boolean)
If Text13.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text14_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")

End If
End Sub
Private Sub Text14_LostFocus()
d = Val(Text5.Text) + Val(Text6.Text) + Val(Text7.Text) + Val(Text8.Text) +
Val(Text9.Text) + Val(Text10.Text) + Val(Text11.Text) + Val(Text12.Text) +
Val(Text13.Text) + Val(Text14.Text)
Text3.Text = d / 10
End Sub
Private Sub Text14_Validate(Cancel As Boolean)
If Text14.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text5_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text5_Validate(Cancel As Boolean)
If Text5.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
Private Sub Text6_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text6_Validate(Cancel As Boolean)
If Text6.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"

Cancel = True
End If
End Sub
Private Sub Text7_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text7_Validate(Cancel As Boolean)
If Text7.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text8_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text8_Validate(Cancel As Boolean)
If Text8.Text = "" Then
MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub
Private Sub Text9_KeyPress(KeyAscii As Integer)
If KeyAscii <> 8 And KeyAscii < 48 Or KeyAscii > 57 Then
KeyAscii = 0
MsgBox ("ENTER ONLY NUMBERS")
End If
End Sub
Private Sub Text9_Validate(Cancel As Boolean)

If Text9.Text = "" Then


MsgBox "EMPTY FIELD", vbExclamation, "ERROR"
Cancel = True
End If
End Sub

REVIEW DETAILS FORM


Dim WithEvents rs As ADODB.Recordset
Dim WithEvents rs1 As ADODB.Recordset
Dim g As Boolean
Private Sub ADDC_Click()
clear
navig (True)
Text4.SetFocus
SAVE.Enabled = True
End Sub
Private Sub ADVC_Click()
Result.Show
End Sub
Private Sub Combo2_Click()
Dim str As String
str = Combo2.Text
rs.MoveFirst
Do While rs.EOF = False
If str = rs!emp_no Then
Text2.Text = rs!work_id
Text3.Text = rs!Targets
Text7.Text = rs!review_date
Exit Sub
Else: rs.MoveNext
End If
Loop
End Sub

Private Sub Form_Load()


Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = PROJECT"
Db.open fconnect
Set rs = New ADODB.Recordset
Set rs1 = New ADODB.Recordset
rs.Source = ("select * from work_details")
rs1.Source = ("select * from review_details")
Set rs.ActiveConnection = Db
Set rs1.ActiveConnection = Db
rs.open
rs1.open
Do While rs.EOF = False
Combo2.AddItem rs!emp_no
rs.MoveNext
Loop
navig (False)
g = True
SAVE.Enabled = True
End Sub
Public Sub navig(s As Boolean)
Combo2.Enabled = s
Text2.Enabled = s
Text3.Enabled = s
Text4.Enabled = s
Text5.Enabled = s
Text6.Enabled = s
Text7.Enabled = s
Text8.Enabled = s

End Sub
Public Sub clear()
Combo2.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Text8.Text = ""

End Sub
Public Sub check()
If Combo2.Text = "" And Text2.Text = "" And Text3.Text = "" And Text4.Text =
"" And Text5.Text = "" And Text6.Text = "" And Text7.Text = "" And Text8.Text
= "" Then
g = False
Else: g = True
End If
End Sub
Private Sub SAVE_Click()
search.Enabled = True
check
If g = True Then
rs1.AddNew
inserting
rs1.Update
ElseIf g = False Then
MsgBox "CANNOT INSERT EMPTY RECORD", vbOKOnly, "WATCH
OUT"
End If
SAVE.Enabled = False
End Sub
Public Sub inserting()

rs1!emp_no = Combo2.Text
rs1!work_id = Text2.Text
rs1!per_done = Text5.Text
rs1!Task_given = Text3.Text
rs1!remarks = Text6.Text
rs1!review_date = Text7.Text
rs1!points = Text8.Text
rs1!success = Text4.Text
End Sub
Private Sub SEARCH_Click()
Dim h As String
Dim i As Long
Dim j As Long
Dim g As Long
enab (False)
rs1.MoveFirst
g=0
Do While Not rs1.EOF
g=g+1
rs1.MoveNext
Loop
MsgBox g
i=1
MSFlexGrid1.Cols = 9
MSFlexGrid1.Rows = Val(g + 1)
MSFlexGrid1.TextMatrix(0, 0) = "SR.NO"
MSFlexGrid1.TextMatrix(0, 1) = "EMPLOYEE NUMBER"
MSFlexGrid1.TextMatrix(0, 2) = "WORK ID"
MSFlexGrid1.TextMatrix(0, 3) = "TARGET"
MSFlexGrid1.TextMatrix(0, 4) = "PERCENTAGE"
MSFlexGrid1.TextMatrix(0, 5) = "REMARKS"
MSFlexGrid1.TextMatrix(0, 6) = "REVIEW DATE "
MSFlexGrid1.TextMatrix(0, 7) = "POINTS"
MSFlexGrid1.TextMatrix(0, 8) = "SUCESS"
MSFlexGrid1.AllowBigSelection = False
MSFlexGrid1.SelectionMode = flexSelectionByRow
MSFlexGrid1.AllowUserResizing = flexResizeBoth

rs1.MoveFirst
For k = 1 To g
MSFlexGrid1.TextMatrix(k, 0) = Val(k)
MSFlexGrid1.TextMatrix(k, 1) = rs1!emp_no
MSFlexGrid1.TextMatrix(k, 2) = rs1!work_id
MSFlexGrid1.TextMatrix(k, 3) = rs1!Task_given
MSFlexGrid1.TextMatrix(k, 4) = rs1!per_done
MSFlexGrid1.TextMatrix(k, 5) = rs1!remarks
MSFlexGrid1.TextMatrix(k, 6) = rs1!review_date
MSFlexGrid1.TextMatrix(k, 7) = rs1!points
MSFlexGrid1.TextMatrix(k, 8) = rs1!success
On Error GoTo 20:
rs1.MoveNext
addc.Enabled = True
Next
20: Exit Sub
review.Refresh
End Sub
Public Sub enab(h As Boolean)
addc.Enabled = h
SAVE.Enabled = h
End Sub

START FORM
Private Sub Command1_Click()
Load MDIForm1
MDIForm1.Show
End Sub
Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Command1.ToolTipText = "Click To Start"
End Sub
Private Sub Command2_Click()
End

End Sub
Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As
Single, Y As Single)
Command2.ToolTipText = "Click To End"
End Sub

WORK FORM
Dim WithEvents rs As ADODB.Recordset
Dim WithEvents rs1 As ADODB.Recordset
Dim WithEvents rs2 As ADODB.Recordset
Dim WithEvents rs3 As ADODB.Recordset
Dim g As Boolean
Private Sub ADDC_Click()
clear
Text1.Enabled = True
Text2.Enabled = True
Text2.Enabled = True
Text3.Enabled = True
Combo2.Enabled = True
Text4.Enabled = True
Text5.Enabled = True
Text6.Enabled = True
Text7.Enabled = True
Combo1.Enabled = True
Combo3.Enabled = True
EXITC.Enabled = True
SAVC.Enabled = True
ADDC.Enabled = True
End Sub
Private Sub Combo1_KeyPress(KeyAscii As Integer)
MsgBox "read only", vbCritical, "ERROR"
End Sub

Private Sub Combo2_Click()


Dim str As String
str = Combo2.Text
rs.MoveFirst
Do While rs.EOF = False
If str = rs!emp_no Then
Text2.Text = rs!emp_name
Text3.Text = rs!emp_grade
Exit Sub
Else: rs.MoveNext
End If
Loop
End Sub
Private Sub EXITC_Click()
Unload Work
Load GRIDF
GRIDF.Show
End Sub
Private Sub fistrc_Click()
rs2.MoveFirst
Combo2.Text = rs2!emp_no
Text1.Text = rs2!work_id
Text2.Text = rs2!Name
Text3.Text = rs2!grade
Text4.Text = rs2!Targets
Text5.Text = rs2!start_date
Text6.Text = rs2!review_date
Text7.Text = rs2!end_date
Combo1.Text = rs2!reporting_officer_id
Combo3.Text = rs2!Status
End Sub
Private Sub Form_Load()
Set Db = New ADODB.Connection
Dim fconnect As String
fconnect = "DRIVER = MSDASQL.1;" & " UID = scott;" & " PWD = tiger;" & "
data source = project"
Db.open fconnect
Set rs = New ADODB.Recordset

Set rs1 = New ADODB.Recordset


Set rs2 = New ADODB.Recordset
Set rs3 = New ADODB.Recordset
rs.CursorType = adOpenStatic
rs.CursorLocation = adUseClient
rs.LockType = adLockPessimistic
rs1.CursorType = adOpenStatic
rs1.CursorLocation = adUseClient
rs1.LockType = adLockPessimistic
rs2.CursorType = adOpenStatic
rs2.CursorLocation = adUseClient
rs2.LockType = adLockPessimistic
rs3.CursorType = adOpenStatic
rs3.CursorLocation = adUseClient
rs3.LockType = adLockPessimistic
rs.Source = ("select * from employee_details")
rs1.Source = ("select * from personal_details")
rs2.Source = ("select * from work_details")
rs3.Source = ("select * from review_officer")
Set rs.ActiveConnection = Db
Set rs1.ActiveConnection = Db
Set rs2.ActiveConnection = Db
Set rs3.ActiveConnection = Db
rs.open
rs1.open
rs2.open
rs3.open
Do While rs.EOF = False
Combo2.AddItem rs!emp_no
rs.MoveNext
Loop
Do While rs3.EOF = False
Combo1.AddItem rs3!Name
rs3.MoveNext
Loop
navig (False)
g = True

SAVC.Enabled = False
End Sub
Public Sub navig(s As Boolean)
Combo2.Enabled = s
Text1.Enabled = s
Text2.Enabled = s
Text3.Enabled = s
Text4.Enabled = s
Text5.Enabled = s
Text6.Enabled = s
Text7.Enabled = s
Combo1.Enabled = s
Combo3.Enabled = s
End Sub
Public Sub clear()
Combo2.Text = ""
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
Text4.Text = ""
Text5.Text = ""
Text6.Text = ""
Text7.Text = ""
Combo1.Text = ""
Combo3.Text = ""
End Sub
Private Sub LASTC_Click()
rs.MoveLast
Combo2.Text = rs2!emp_no
Text1.Text = rs2!work_id
Text2.Text = rs2!Name
Text3.Text = rs2!grade
Text4.Text = rs2!Targets
Text5.Text = rs2!start_date
Text6.Text = rs2!review_date
Text7.Text = rs2!end_date
Combo1.Text = rs2!reporting_officer_id
Combo3.Text = rs2!Status

End Sub
Private Sub MODC_Click()
End Sub
Private Sub NEXTC_Click()
If rs2.EOF = False Then
rs2.MoveNext
End If
If rs2.EOF = True Then
MsgBox ("THIS IS THE LAST RECORD")
Else
Combo2.Text = rs2!emp_no
Text1.Text = rs2!work_id
Text2.Text = rs2!emp_name
Text3.Text = rs2!grade
Text4.Text = rs2!Target
Text5.Text = rs2!start_date
Text6.Text = rs2!review_date
Text7.Text = rs2!end_date
Combo1.Text = rs2!repositing_office_id
Combo3.Text = rs2!Status
End If
End Sub
Private Sub PREVC_Click()
rs2.MovePrevious
If rs2.BOF = True Then
rs2.MoveFirst
MsgBox ("YOU ARE VIEWING THE FIRST RECORD")
End If
Combo2.Text = rs2!emp_no
Text1.Text = rs2!work_id
Text2.Text = rs2!emp_name
Text3.Text = rs2!grade
Text4.Text = rs2!Target
Text5.Text = rs2!start_date
Text6.Text = rs2!review_date
Text7.Text = rs2!end_date

Combo1.Text = rs2!repositing_office_id
Combo3.Text = rs2!Status
End Sub
Public Sub inserting()
rs2!emp_no = Combo2.Text
rs2!work_id = Text1.Text
rs2!Name = Text2.Text
rs2!grade = Text3.Text
rs2!Targets = Text4.Text
rs2!start_date = Text5.Text
rs2!review_date = Text6.Text
rs2!end_date = Text7.Text
rs2!reporting_officer_id = Combo1.Text
rs2!Status = Combo3.Text
End Sub
Private Sub SAVC_Click()
SAVC.Enabled = True
If g = True Then
rs2.AddNew
inserting
rs2.Update
clear
ElseIf g = False Then
MsgBox "CANNOT INSERT EMPTY RECORD", vbOKOnly, "WATCH
OUT"
End If
EXITC.Enabled = True
End Sub
Private Sub Text2_KeyPress(KeyAscii As Integer)
Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE
CHARACTERS", vbOKOnly, "error")
End If
End Sub

Private Sub Text4_KeyPress(KeyAscii As Integer)


Dim OP As String
Dim comp As Boolean
comp = Chr(KeyAscii) Like "[A-Z a-z]"
If comp = False And KeyAscii <> 8 And KeyAscii <> 13 And KeyAscii <> 32 Then
KeyAscii = 0
RES = MsgBox("ENTER ONLY UPPERCASE AND LOWERCASE
CHARACTERS", vbOKOnly, "error")
End If
End Sub
Private Sub Text5_Click()
Text5.Text = Date
End Sub
Private Sub Text5_Validate(Cancel As Boolean)
Dim a As String
Dim b As String
Dim MON As Date
a = Text5.Text
b = Left(a, 2)
d = Val(b)
If d > 31 Then
MsgBox ("NOT VALID DATE")
Text5.Text = ""
Text5.SetFocus
Cancel = True
Exit Sub
End If
c = Mid(a, 4, 2)
f = Val(c)
If f > 12 Then
MsgBox ("MONTH NOT VALID")
Text5.Text = ""
Text5.SetFocus
Cancel = True
Exit Sub
End If
k = Right(a, 2)
m = Val(k)
If m > 2001 Then
MsgBox ("NOT VALID YEAR")
Text5.Text = ""
Text5.SetFocus

Cancel = True
Exit Sub
End If
If Len(Format(a, "DD/MM/YYYY")) <> 10 Then
On Error GoTo 10
MsgBox "wrong format"
Text5.Text = ""
Text5.SetFocus
Cancel = True
Else
fg = Format(Now, "DD/MM/YYYY")
MON = Format(a, "DD/MM/YYYY")
If MON > fg Then
MsgBox ("DATE SHOULD NOT BE MORE THAN SYSTEM DATE")
Text5.Text = ""
Text5.SetFocus
Cancel = True
10:
MsgBox ("WRONG ENTRY")
Exit Sub
End If
End If
Exit Sub
End Sub
Private Sub Text6_Click()
Text6.Text = Date
End Sub
Private Sub Text6_Validate(Cancel As Boolean)
Dim a As String
Dim b As String
Dim MON As Date
a = Text6.Text
b = Left(a, 2)
d = Val(b)
If d > 31 Then
MsgBox ("NOT VALID DATE")
Text6.Text = ""
Text6.SetFocus
Cancel = True
Exit Sub

End If
c = Mid(a, 4, 2)
f = Val(c)
If f > 12 Then
MsgBox ("MONTH NOT VALID")
Text6.Text = ""
Text6.SetFocus
Cancel = True
Exit Sub
End If
k = Right(a, 2)
m = Val(k)
If m > 2001 Then
MsgBox ("NOT VALID YEAR")
Text6.Text = ""
Text6.SetFocus
Cancel = True
Exit Sub
End If
If Len(Format(a, "DD/MM/YYYY")) <> 10 Then
MsgBox "wrong format"
Text6.Text = ""
Text6.SetFocus
Cancel = True
Else
fg = Format(Now, "DD/MM/YYYY")
MON = Format(A, "DD/MM/YYYY")
If MON > fg Then
MsgBox ("DATE SHOULD NOT BE MORE THAN SYSTEM
DATE")
Text6.Text = ""
Text6.SetFocus
Cancel = True
End If
End If
Exit Sub
End Sub
Private Sub Text7_Click()
Text7.Text = Date
End Sub

Private Sub Text7_Validate(Cancel As Boolean)


Dim a As String
Dim b As String
Dim MON As Date
a = Text7.Text
b = Left(a, 2)
d = Val(b)
If d > 31 Then
MsgBox ("NOT VALID DATE")
Text7.Text = ""
Text7.SetFocus
Cancel = True
Exit Sub
End If
c = Mid(a, 4, 2)
f = Val(c)
If f > 12 Then
MsgBox ("MONTH NOT VALID")
Text7.Text = ""
Text7.SetFocus
Cancel = True
Exit Sub
End If
k = Right(a, 2)
m = Val(k)
If m > 2001 Then
MsgBox ("NOT VALID YEAR")
Text7.Text = ""
Text7.SetFocus
Cancel = True
Exit Sub
End If
If Len(Format(a, "DD/MM/YYYY")) <> 10 Then
MsgBox "wrong format"
Text7.Text = ""
Text7.SetFocus
Cancel = True
Else
fg = Format(Now, "DD/MM/YYYY")
MON = Format(a, "DD/MM/YYYY")
If MON > fg Then
MsgBox ("DATE SHOULD NOT BE MORE THAN SYSTEM
DATE")

Text7.Text = ""
Text7.SetFocus
Cancel = True
End If
End If
Exit Sub
End Sub

FUTURE SCOPE
Like all other systems this system will remain
feasible in the long run only if it provides the
solutions to the current and future needs of the call
centers

and

must

be

up

to

date

as

per

the

requirement of the call centers, it should evolve


continually

so

as

to

incorporate

the

necessary

changes. In addition, changes in the hardware and


software platforms may also make it necessary to
port the current application to that specific platform.

ENHANCEMENT OF THE PROJECT


Further enhancement of the s/w will occur at the
time of its design phase.
The enhancement simply depends upon

the

requirements that we face at the time of s/w


implementation.
The tables can be manipulated at the time of
database formation and its normalization.
The modules can also be changed at the time of
final

s/w

design

under

the

principle

of

modularity i.e. based on cohesion and coupling


factors.
Even we can make changes to the s/w of the call
center to make it compatible with the selected
software technology it means visual basic and
oracle-8.

LIMITATIONS OF THE PROJECT


The project I am making is a real life project;
still there are few loopholes, which should be
taken care in the long term. The project I am
making is used in fewer companies because it is
a

traditional

system

of

maintaining

the

employees performances manually. So as and


when time changes few more details may be
required in this project, hence we have updated
it at regular interval of time. Few limitations
that I can oversee at this point of time are as
under: 1. This application is for standalone machine.
2. Not used within a network.
3. Typical (Or as told by the clients).
4. Using backend as Oracle (it may or may not be
available at client end).

APPENDIX
Data Control :The data control gives you access to database without any programming.

Module :Modules are used to store procedure. Procedure stored in a module can be
called from any part of the application. This is one method by which
forms and procedures in different forms can exchange information.
Text Box:-

This control displays that the user can edit.


Frame:-

This control is used to draw boxes on the form and to group other
elements.
Command Button :-

A common button represent an action that is carried out when the used
click the button.

BIBLIOGRAPHY

1.

Complete Reference Visual Basic 6.0-

By Hebert Schild

2.

Mastering Visual Basic 6.0

By Evangelos Petroutsos

3.

Visual Basic 6 from ground up

By Gary Cornell

You might also like