Call Center Management System

Download as doc, pdf, or txt
Download as doc, pdf, or txt
You are on page 1of 125
At a glance
Powered by AI
The key takeaways are that the document discusses a call center shift management system project that aims to computerize shift scheduling and work distribution. It will be developed using Visual Basic and an Oracle database.

The objective of the project is to organize shifts, distribute work, track employee performance, and manage projects for call centers.

The project will use Visual Basic for the user interface, Oracle8 for the backend database, and will follow a relational database model.

ACKNOWLEDGEMENT

Nothing concrete can be achieved without an optimal combination of inspiration and


perspiration. No work can be accomplished without taking the guidance of the experts.
It is only the views and advice from ingenious intellectual that help in the
transformation of a product into a quality product.

We owe my sincere gratitude to Mrs. Shashi Mishra, our honorable project guide.

Last but not the least, no acknowledgement will be complete without mentioning our
parents. They have also supported us throughout the development project.
CONTENTS

1. Introduction
2. Objective of the Project
3. Project Category
4. System Design
5. Hardware & Software Requirement
6. System Analysis
7. Feasibility Study
8. Implementation
9. Testing & Debugging
10. Context Diagram
11. Data Flow Diagram
12. Screenshot
13. Coding
14. Future Scope
15. Limitation of the Project
16. 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 company’s communication
network. In order to schedule and distribute the
work via which company can run smoothly the call
centers make different-different 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 different project in different
timetables.
• 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 basic, and object oriented
technology. Visual basic have several 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 a

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 won’t 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, there’s a lot more
ODBC drivers out there still in use. The idea
behind OLE-DB is very similar to the idea behind
ODBC-but in fact it allows access to a much
broader range of data stores. In fact, you’ll 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 a 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 let’s 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 security features and reliable data

source. With its most unique COMMIT and


ROLLBACK features it is the 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 I am dealing with the work
distribution, shift allotment and performances of the
employee’s in the call center. First of all the details
of new employee are entered. Then each of the
employee’s 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 criteria’s 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 criteria’s that a project team
adopts in order to assign project work to his
team members?
4. What are the details of project, work
distribution; shift allocated and 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 levels of
quality effectiveness.

ORGANIZATIONAL EVALUATION
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 design that can meet the
requirement of the shift allocation, 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 center’s 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, administration’s duties, performance

requirements, employee’s work details, call center

projects, shift timings, shift details and overall

working of the call center are mentioned after

analyzing and studying the call center’s 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. It’s 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 CENTER’S

WORKING UNIT

Information is gathered by investigating the

individual’s involvement (i.e. contribution of

employee, its contribution to its department and

that of evaluation department) and their

involvements in the whole Call Center’s Shift

ALLOTMENT System. The information thus gathered

plays an important role in properly defining

individuals needs and expectations from the

software system.
2. KNOWLEDGE OF BEHAVIOR

PATTERNS

What are call center’s 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 center’s 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 the call center needs a computer-based

system?
• 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?

• Work’s 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
customer’s 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 Code
Analysis Design 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 software of Employee management

system is implemented using Visual Basic and


Oracle-8. The Visual Basic provides a perfect

graphical user interface for implement the call

center’s 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 center’s 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 sub-

modules 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

CENTER’S 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 CENTER’S 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 center’s 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 Shift Project Distribution

Allotmen
t

System Time Allotment


Team Leader of
Call
center’s Shift Allocation

Supervisor
Performance Grading
1ST LEVEL DFD

Project
Manger

Project
Distributio
n Time
Allotment

‘n’
Controllin
g

Project
Work Team
Distributio Supervisor
n

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
Project Manger Allocation
Controlling

Project wise
Team Members Performance
Grading

Shift
Best Chart
Preparation Team Leaders
Team
Member
Selection Best
Superviso
Supervisors r
Selection

Notice Module
Board Wise
Team Dispersio Performance
Member Supervisor n Grading
Performance
Grading

3rd LEVEL DFD


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

employee’s 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 employee’s 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 Point’s 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


nam
e
Member Registration Employees detailed Team
registratio form information formation
n
Project Project Project details like Project
distributio proposal name, requirement and distribution
n and form time complexity schedules
controlling
Work Work Work details and their Work
distributio distribution schedule to team schedule list
n form supervisors for working
Time Work Work weight age and Time
allotment distribution time required to schedules,
within a complete it with grace time tables
time limit period and other limits and Gant and
pert charts
etc
Shift Shift Shift formation and Shift schedule
allocation preparation allocating them to the
and form or team supervisors to
controlling chart display them on notice
boards etc
Employee Performance Calculation of Selection of
and team form performance for best best
Performanc including supervisor, leader and supervisor,
e grading personal member leader,
and member and
professional team
details

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
Login
Name TYPE
Emp id VARCHAR2(10)
Password VARCHAR2(8)

Employee
Name TYPE
Emp id VARCHAR2(10)
Emp name VARCHAR2(30)
Designation VARCHAR2(30)
Team id VARCHAR2(10)
Project id VARCHAR2(10)
Shift id VARCHAR2(10)
Module id VARCHAR2(10)

Personal
Name TYPE
Emp id VARCHAR2(10)
Emp name VARCHAR2(30)
Address VARCHAR2(30)
Contact no VARCHAR2(10)
Age VARCHAR2(10)
Work
Name TYPE
Project id VARCHAR2(10)
Project name VARCHAR2(30)
Work profile VARCHAR2(100
)
Start date Date
End date Date
Project cost Number
Supervisor id VARCHAR2(10)
No of module Number

Shift Details
Name TYPE
Shift id VARCHAR2(10)
Shift time Number
Shift start Date
date
Work id Number
Shift End Date
date

Points
Name TYPE
Emp id VARCHAR2(10)
Module id VARCHAR2(30)
Contribution Number
Team sprit Number
Leader ship Number
Punctuality 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

employee’s 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