Sei sulla pagina 1di 115

THIS PROJECT

OF

An ISO 9001:2000 CERTIFIED INSTITUTE


( A PROFESSIONAL TECHNICAL TRANING INSTITUTE
)

ON THE

1
THE BANK OF INDIA
(BOI) PROJECT

THE BOI PROJECT BASED


ON ALL BANKING FIELD
A ‘PUBLIC SECTOR
UNDERTAKING’
AND ‘NAVRATANA’
ORGANIZATION

2
PROJECT
BASED ON
ALL FIELDS OF BANK

UNDERGUIDANCE
Mr. SATYA PRAKASH SINGH
CENTER MANAGER

AIESECI COMPUTER CENTER

SUBMITED BY
DIVYANI PANDEY
ADCA

3
PROJECT
BASED ON
ALL FIELDS OF BANK

UNDERGUIDANCE
Mr. SATYA PRAKASH SINGH
CENTER MANAGER

AIESECI COMPUTER CENTER

SUBMITED BY
KANAHIYA
ADCA

4
PROJECT
BASED ON
ALL FIELDS OF BANK

UNDERGUIDANCE
Mr. SATYA PRAKASH SINGH
CENTER MANAGER

AIESECI COMPUTER CENTER

SUBMITED BY
KAWLESH
ADCA

TABEL OF CONTENTS

 ACKNOWLEDGEMENT

5
 WHY A PROJECT

 PREFACE

 INTRODUCTION OF COMPUTER

 ABOUT BANKING PROJECT

 ABOUT VISUAL BASIC

 DATA TABLE

 OBJECTIVE OF PROJECT

 RESEARCH METHODOLOGY

 CODING

 OUTPUT

 THANKYOU

6
I CONVEY MY GRADUATE AND SINCERE
ACKNOWLEDGEMENT TO MY COMPUTER
TEACHER MR. SATYA PRAKASH SINGH
FOR HIS DEDICATIVE HELP PROVIDE TO ME
WITH ADEQUATE INFORMATION AND
GUIDANCE WHICH HELPED ME TO COMPLETE
MY PROJECT SUCESSFULY.

I AM ALSO THANK THE AIESECI


INSTITUTE AND THE OTHER TEACHERS OF
COMPUTER FOR GIVING ME THE
OPPORTUNITY AND EQUIPMENT NECESSARY
FOR MAKING THIS PROJECT.

I AM ALSO EXTEND MY
HEARTFELT THANKFUL TO MY COMPANIONS
FOR THEIRMOST VALUABLE CO-OPERATION.

DIVYANI PANDEY
ADCA

7
Practical aspect of computer science is

very important. In fact every theory in

computer science seeks its practical

importance and purposeful application

according to its availability. As such, a

computer science student is expected to

do some experiment and research on

subject other then those taught in the

text book during the course of the class

studies. Such an effort when well

organized with a definite aim is said to be

a PROJECT.

8
PREFACE
GLOBLE AGE IS THE AGE OF COMPUTER . THE

COMPUTER HAS BECOME JUST A PART OF OUR LIFE .

THE EFFECT OF THE COMPUTER ON THE MODERN

LIFE IN THE INDIA HAS BEENTREMENDOUS. THE

MAJOR VALUE OF COMPUTER IS ITS SPEED AT WHICH

THE CALCULATION ARE DONE AND THE RELATIVE

ACCURACY OF THE OUTPUT . COMPUTING IS NOW AN

EVERYDAY TERM IN OUR LANGUAGE . COMPUTER

AARE REFFERED TO PRESS ON THE RADIO AND T.V

AND THEY APPEAR IN THE FILM AND BOOKS WIYH

AND WITHOUT AN ERA OF SCIENCE FUNCTION.

9
IN INDIA, THE INDUSTRY AREC ORGANIZED WITH ALL

THE SCIENTIFIC RESEARCH CENTER, NOW MAKING

THE LARGEST USE OF COMPUTER SYSTEAM.

CENTRAL GOVERNMENT ALONG WITH THE STATE

GOVERNMENT ARE GIVING PRIORITY IN USING OF

COMPUTER FOR LARGE DATA PROCESSING , CRIME

CONTROLING , BANKING , AGRICULTURE FIELDS AND

THE RESOURCES PLANING .

AT LAST THAT THIS REPORT WILL BE

VERY HELPFUL FOR THE READERS WHO ARE

INTERESTED IN PROGRAMMING AND TRANING

MANAGEMENT SYSTEAM.

10
11
History
Computers such as the ENIAC had to be
physically rewired in order to perform different
tasks, which caused these machines to be
called "fixed-program computers." Since the
term "CPU" is generally defined as a software
(computer program) execution device, the
earliest devices that could rightly be called
CPUs came with the advent of the stored-
program computer.
The idea of program computer was already
present in the design of tand John William
Mauchly's ENIAC, but was initially omitted so
the machine could be finished sooner. On June
30, 1945, before ENIAC was even completed,
mathematician John von Neumann distributed
the paper entitled "First Draft of a Report on
the EDVAC". It outlined the design of a stored-
program computer that would eventually be
completed in August 1949. EDVAC was
designed to perform a certain number of
instructions (or operations) of various types.
These instructions could be combined to create
useful programs for the EDVAC to run.
Significantly, the programs written for EDVAC
were stored in high-speed computer memory
rather than specified by the physical wiring of
the computer. This overcame a severe
limitation of ENIAC, which was the
considerable time and effort required to
reconfigure the computer to perform a new
task. With von Neumann's design, the
program, or software, that EDVAC ran could be
changed simply by changing the contents of

12
the computer's memory. While von Neumann is
most often credited with the design of the
stored-program computer because of his
design of EDVAC, others before him, such as
Konrad Zuse, had suggested and implemented
similar ideas. The so-called Harvard
architecture of the Harvard Mark I, which was
completed before EDVAC, also utilized a
stored-program design using punched paper
tape rather than electronic memory. The key
difference between the von Neumann and
Harvard architectures is that the latter
separates the storage and treatment of CPU
instructions and data, while the former uses
the same memory space for both. Most modern
CPUs are primarily von Neumann in design, but
elements of the Harvard architecture are
commonly seen as well.
As a digital device, a CPU is limited to a set of
discrete states, and requires some kind of
switching elements to differentiate between
and change states. Prior to commercial
development of the transistor, electrical relays
and vacuum tubes (thermionic valves) were
commonly used as switching elements.
Although these had distinct speed advantages
over earlier, purely mechanical designs, they
were unreliable for various reasons. For
example, building direct current sequential
logic circuits out of relays requires additional
hardware to cope with the problem of contact
bounce. While vacuum tubes do not suffer from
contact bounce, they must heat up before
becoming fully operational, and they
eventually cease to function due to slow
contamination of their cathodes that occurs in
13
the course of normal operation. If a tube's
vacuum seal leaks, as sometimes happens,
cathode contamination is accelerated. Usually,
when a tube failed, the CPU would have to be
diagnosed to locate the failed component so it
could be replaced. Therefore, early electronic
(vacuum tube based) computers were
generally faster but less reliable than
electromechanical (relay based) computers.

14
Parallelism

Model of a subscalar CPU. Notice that it takes


fifteen cycles to complete three instructions.
The description of the basic operation of a CPU
offered in the previous section describes the
15
simplest form that a CPU can take. This type of
CPU, usually referred to as subscalar, operates
on and executes one instruction on one or two
pieces of data at a time.
This process gives rise to an inherent
inefficiency in subscalar CPUs. Since only one
instruction is executed at a time, the entire
CPU must wait for that instruction to complete
before proceeding to the next instruction. As a
result the subscalar CPU gets "hung up" on
instructions which take more than one clock
cycle to complete execution. Even adding a
second execution unit (see below) does not
improve performance much; rather than one
pathway being hung up, now two pathways are
hung up and the number of unused transistors
is increased. This design, wherein the CPU's
execution resources can operate on only one
instruction at a time, can only possibly reach
scalar performance (one instruction per clock).
However, the performance is nearly always
subscalar (less than one instruction per cycle).
Attempts to achieve scalar and better
performance have resulted in a variety of
design methodologies that cause the CPU to
behave less linearly and more in parallel. When
referring to parallelism in CPUs, two terms are
generally used to classify these design
techniques. Instruction level parallelism (ILP)
seeks to increase the rate at which instructions
are executed within a CPU (that is, to increase
the utilization of on-die execution resources),
and thread level parallelism (TLP) purposes to
increase the number of threads (effectively
individual programs) that a CPU can execute
simultaneously. Each methodology differs both
16
in the ways in which they are implemented, as
well as the relative effectiveness they afford in
increasing the CPU's performance for an
application.
One technology used for this purpose was
multiprocessing (MP). The initial flavor of this
technology is known as symmetric
multiprocessing (SMP), where a small number
of CPUs share a coherent view of their memory
system. In this scheme, each CPU has
additional hardware to maintain a constantly
up-to-date view of memory. By avoiding stale
views of memory, the CPUs can cooperate on
the same program and programs can migrate
from one CPU to another. To increase the
number of cooperating CPUs beyond a handful,
schemes such as non-uniform memory access
(NUMA) and directory-based coherence
protocols were introduced in the 1990s. SMP
systems are limited to a small number of CPUs
while NUMA systems have been built with
thousands of processors. Initially,
multiprocessing was built using multiple
discrete CPUs and boards to implement the
interconnect between the processors. When
the processors and their interconnect are all
implemented on a single silicon chip, the
technology is known as a multi-core
microprocessor.
It was later recognized that finer-grain
parallelism existed with a single program. A
single program might have several threads (or
functions) that could be executed separately or
in parallel. Some of earliest examples of this
technology implemented input/output
processing such as direct memory access as a
17
separate thread from the computation thread.
A more general approach to this technology
was introduced in the 1970s when systems
were designed to run multiple computation
threads in parallel. This technology is known as
multi-threading (MT). This approach is
considered more cost-effective than
multiprocessing, as only a small number of
components within a CPU is replicated in order
to support MT as opposed to the entire CPU in
the case of MP. In MT, the execution units and
the memory system including the caches are
shared among multiple threads. The downside
of MT is that the hardware support for
multithreading is more visible to software than
that of MP and thus supervisor software like
operating systems have to undergo larger
changes to support MT. One type of MT that
was implemented is known as block
multithreading, where one thread is executed
until it is stalled waiting for data to return
from external memory. In this scheme, the CPU
would then quickly switch to another thread
which is ready to run, the switch often done in
one CPU clock cycle, such as the UltraSPARC
Technology. Another type of MT is known as
simultaneous multithreading, where
instructions of multiple threads are executed
in parallel within one CPU clock cycle.

Performance
The performance or speed of a processor
depends on e.g. the clock rate and the
instructions per clock (IPC), which together are
the factors for the instructions per second
18
(IPS) that the CPU can perform. Many reported
IPS values have represented "peak" execution
rates on artificial instruction sequences with
few branches, whereas realistic workloads
consist of a mix of instructions and
applications, some of which take longer to
execute than others. The performance of the
memory hierarchy also greatly affects
processor performance, an issue barely
considered in MIPS calculations. Because of
these problems, various standardized tests
such as SPECint have been developed to
attempt to measure the real effective
performance in commonly used applications.
Processing performance of computers is
increased by using multi-core processors,
which essentially is plugging two or more
individual processors (called cores in this
sense) into one integrated circuit.[20] Ideally, a
dual core processor would be nearly twice as
powerful as a single core processor. In
practice, however, the performance gain is far
less, only about fifty percent, due to, e.g.
imperfect software algorithms and
implementation.

Virtual computers
A "computer" is commonly considered to be a
physical device. However, one can create a
computer program which describes how to run
a different computer, i.e. "simulating a
computer in a computer". Not only is this a
19
constructive proof of the Church-Turing thesis,
but is also extremely common in all modern
computers. For example, some programming
languages use something called an interpreter,
which is a simulated computer built on top of
the basic computer; this allows programmers
to write code (computer input) in a different
language than the one understood by the base
computer (the alternative is to use a compiler).
Additionally, virtual machines are simulated
computers which virtually replicate a physical
computer in software, and are very commonly
used by IT. Virtual machines are also a
common technique used to create emulators,
such game console emulators.
History of computing

The first use of the word "computer" was


recorded in 1613, referring to a person who
carried out calculations, or computations, and
the word continued to be used in that sense
until the middle of the 20th century. From the
end of the 19th century onwards though, the
word began to take on its more familiar
meaning, describing a machine that carries out
computations.

Control unit
Diagram showing how a particular MIPS
architecture instruction would be decoded by
the control system.

20
The control unit (often called a control system
or central controller) manages the computer's
various components; it reads and interprets
(decodes) the program instructions,
transforming them into a series of control
signals which activate other parts of the
computer. Control systems in advanced
computers may change the order of some
instructions so as to improve performance.
A key component common to all CPUs is the
program counter, a special memory cell (a
register) that keeps track of which location in
memory the next instruction is to be read
from. The control system's function is as
follows—note that this is a simplified
description, and some of these steps may be
performed concurrently or in a different order
depending on the type of CPU:

1.Read the code for the next instruction from


the cell indicated by the program counter.
2.Decode the numerical code for the
instruction into a set of commands or
signals for each of the other systems.
3.Increment the program counter so it points
to the next instruction.
4.Read whatever data the instruction
requires from cells in memory (or perhaps
from an input device). The location of this
required data is typically stored within the
instruction code.
5.Provide the necessary data to an ALU or
register.
6.If the instruction requires an ALU or
specialized hardware to complete, instruct

21
the hardware to perform the requested
operation.
7.Write the result from the ALU back to a
memory location or to a register or
perhaps an output device.
8.Jump back to step (1).

Since the program counter is (conceptually)


just another set of memory cells, it can be
changed by calculations done in the ALU.
22
Adding 100 to the program counter would
cause the next instruction to be read from a
place 100 locations further down the program.
Instructions that modify the program counter
are often known as "jumps" and allow for loops
(instructions that are repeated by the
computer) and often conditional instruction
execution (both examples of control flow).
It is noticeable that the sequence of operations
that the control unit goes through to process
an instruction is in itself like a short computer
program—and indeed, in some more complex
CPU designs, there is another yet smaller
computer called a microsequencer that runs a
microcode program that causes all of these
events to happen.
Arithmetic/logic unit (ALU)
Main article: Arithmetic logic unit
The ALU is capable of performing two classes
of operations: arithmetic and logic. The set of
arithmetic operations that a particular ALU
supports may be limited to adding and
subtracting or might include multiplying or
dividing, trigonometry functions (sine, cosine,
etc.) and square roots. Some can only operate
on whole numbers (integers) whilst others use
floating point to represent real numbers—
albeit with limited precision. However, any
computer that is capable of performing just the
simplest operations can be programmed to
break down the more complex operations into
simple steps that it can perform.

23
Read-only memor y

Read-only memory (usually known by its


acronym, ROM) is a class of storage
media
used in computers
and other electronic devices. Because
data stored in ROM cannot be modified
(at least not very quickly
or easily), it is mainly used to distribute
firmware (software that is very closely
tied to specific
hardware, and unlikely to require
frequent updates)
In its strictest sense, ROM refers only to
mask ROM (the oldest type of solid state
ROM), which is
fabricated with the desired data
permanently stored in it, and thus can
never be
modified. However,
more modern types such as EPROM and
flash EEPROM can be erased and re-
programmed multiple times
they are still described as "read-only
memory"(ROM)[citation needed] because the
reprogramming process is generally
infrequent, comparatively slow, and often
24
does not permit random access writes to
individual memory locations. Despite the
simplicity of
mask ROM, economies of scale and field-
programmability
often make reprogrammable
technologies more flexible and
inexpensive, so mask
ROM is rarely used

History
The simplest type of solid state ROM is as old
as semiconductor technology itself.
Combinational
logic gates can be joined manually to map n-bit
address input onto arbitrary values of m-bit
data
output (a look-up table). With the invention of
the integrated circuit came mask ROM. Mask
ROM
consists of a grid of word lines (the address
input) and bit lines (the data output),
selectively joined
together with transistor switches, and can
represent an arbitrary look-up table with a
regular physical layout and predictable
propagation delay.

25
In mask ROM, the data is physically encoded in
the circuit, so it can only be programmed
during
fabrication. This leads to a number of serious
disadvantages:
1.It is only economical to buy mask ROM in
large quantities, since users must contract
with a
2. foundry to produce a custom design.
3.The turnaround time between completing
the design for a mask ROM and receiving
the finished product is long, for the same
reason.
4. Mask ROM is impractical for R&D work
since designers frequently need to modify
the contents of memory as they refine a
design.
5. If a product is shipped with faulty mask
ROM, the only way to fix it is to recall the
product and physically replace the ROM.
Subsequent developments have addressed
these shortcomings. PROM, invented in 1956,
allowed users
to program its contents exactly once by
physically altering its structure with the
application of high-
voltage pulses. This addressed problems 1 and
2 above, since a company can simply order a
large batch

26
of fresh PROM chips and program them with
the desired contents at its designers'
convenience. The
1971 invention of EPROM essentially solved
problem 3, since EPROM (unlike PROM) can be
repeatedly
reset to its unprogrammed state by exposure
to strong ultraviolet light. EEPROM, invented in
1983,
went a long way to solving problem 4, since an
EEPROM can be programmed in-place if the
containing device provides a means to receive
the program contents from an external source
(e.g. a personal
computer via a serial cable). Flash memory,
invented at Toshiba in the mid-1980s, and
commercialized
in the early 1990s, is a form of EEPROM that
makes very efficient use of chip area and can
be erased
and reprogrammed thousands of times without
damage.
All of these technologies improved the
flexibility of ROM, but at a significant cost-per-
chip, so that in
large quantities mask ROM would remain an
economical choice for many years. (Decreasing
cost of reprogrammable devices had almost

27
eliminated the market for mask ROM by the
year 2000.)
Furthermore, despite the fact that newer
technologies were increasingly less "read-
only," most were envisioned only as
replacements for the traditional use of mask
ROM.
The most recent development is NAND flash,
also invented by Toshiba. Its designers
explicitly broke
from past practice, stating plainly that "the aim
of NAND Flash is to replace hard disks,"[1]
rather than
the traditional use of ROM as a form of non-
volatile primary storage. As of 2007, NAND has
partially achieved this goal by offering
throughput comparable to hard disks, higher
tolerance of physical shock, extreme
miniaturization (in the form of USB flash drives
and tiny microSD memory cards, for example),
and much lower power consumption.

28
Use of ROM for program storage
Every stored-program computer requires some
form of non-volatile, or erasable, storage to
store the
initial program that runs when the computer is
powered on or otherwise begins execution (a
process known as bootstrapping, often
abbreviated to "booting" or "booting up").
Likewise, every non-trivial computer requires
some form of mutable memory to record
changes in its state as it executes.
Forms of read-only memory were employed as
non-volatile storage for programs in most early
stored-program computers, such as ENIAC
after 1948 (until then it was not a stored-
program computer as
every program had to be manually wired into
the machine, which could take days to weeks).
Read-only memory was simpler to implement
since it required only a mechanism to read
stored values, and not to change them in-
place, and thus could be implemented with
very crude electromechanical devices (see
historical examples below). With the advent of
integrated circuits in the 1960s, both ROM and
its
mutable counterpart static RAM were
implemented as arrays of transistors in silicon
chips; however, a
ROM
29
memory cell could be implemented using fewer
transistors than an SRAM memory cell, since
the latter requires a latch (comprising 5-20
transistors) to retain its contents, while a ROM
cell might consist of
the absence (logical 0) or presence (logical 1)
of a single transistor connecting a bit line to a
word line.
Consequently, ROM could be implemented at a
lower cost-per-bit than RAM for many years.
Most home computers of the 1980s stored a
BASIC interpreter or operating system in ROM
as other
forms of non-volatile storage such as magnetic
disk drives were too expensive. For example,
the
Commodore 64 included 64 KB of RAM and
20 KB of ROM contained a BASIC interpreter
and the
"KERNAL" (sic) of its operating system. Later
home or office computers such as the IBM PC
XT often included magnetic disk drives, and
larger amounts of RAM, allowing them to load
their operating
systems from disk into RAM
, with only a minimal hardware initialization
core and bootloader remaining in ROM (known
as the

30
BIOS in IBM-compatible computers). This
arrangement allowed for a more complex and
easily
upgradeable operating system.
In modern PCs, "ROM" (or Flash) is used to
store the basic bootstrapping firmware for the
main
processor, as well as the various firmware
needed to internally control self contained
devices such as graphic cards, hard disks, DVD
drives, TFT screens, etc, in the system. Today,
many of these "read-only" memories –
especially the BIOS – are often replaced with
Flash memory (see below), to permit in-place
reprogramming should the need for a firmware
upgrade arise. However, simple and mature
sub-systems (such as the keyboard or some
communication controllers in the ICs on the
main board, for example)
may employ mask ROM or OTP (one time
programmable).
ROM and successor technologies such as Flash
are prevalent in embedded systems. This
governs
everything from industrial robots to home
appliances and consumer electronics (MP3
players,
set-top boxes, etc) all of which are designed
for specific functions, but nonetheless based on
general-purpose microprocessors in most
31
cases. With software usually tightly coupled to
hardware, program changes are rarely needed
in such devices (which typically lack devices
such as hard disks for
reasons of cost, size, and/or power
consumption). As of 2008, most products use
Flash rather than
mask ROM, and many provide some means for
connection to a PC for firmware updates; a
digital audio player's might be updated to
support a new file format for instance. Some
hobbyists have taken
advantage of this flexibility to reprogram
consumer products for new purposes; for
example, the
iPodLinux and OpenWRT projects have enabled
users to run full-featured Linux distributions on
their
MP3 players and wireless routers, respectively.
ROM is also useful for binary storage of
cryptographic data, as it makes them difficult
to replace,
which may be desirable in order to enhance
information security.

ROM for data storage

32
Since ROM (at least in hard-wired mask form)
cannot be modified, it is really only suitable for
storing
data which is not expected to need
modification for the life of the device. To that
end, ROM has been
used in many computers to store look-up
tables for the evaluation of mathematical and
logical
functions (for example, a floating-point unit
might tabulate the sine function in order to
facilitate
faster
computation).
This was especially effective when CPUs were
slow and ROM was cheap compared to RAM.
Notably, the display adapters of early personal
computers stored tables of bitmapped font
characters in
ROM. This usually meant that the text display
font could not be changed interactively. This
was the
case for both the CGA and MDA adapters
available with the IBM PC XT.
The use of ROM to store such small amounts of
data has disappeared almost completely in
modern

33
general-purpose computers. However, Flash
ROM has taken over a new role as a medium
for
mass storage or secondary storage of files.

The first EPROM, an Intel 1702, with the die


and wire bonds clearly visible through the
erase window.

Semiconductor based
Classic mask-programmed ROM chips are
integrated circuits that physically encode the
data to be stored
, and thus it is impossible to change their
contents after fabrication. Other types of non-
volatile solid-
state memory permit some degree of
modification:
34
• Programmable read-only memory (PROM),
or one-time programmable ROM (OTP), can
be written
• to or programmed via a special device
called a PROM programmer. Typically, this
device uses
• high voltages to permanently destroy or
create internal links (fuses or antifuses)
within the chip. Consequently, a PROM can
only be programmed once.
• Erasable programmable read-only memory
(EPROM) can be erased by exposure to
strong
• ultraviolet light (typically for 10 minutes or
longer), then rewritten with a process that
again requires application of higher than
usual voltage. Repeated exposure to UV
light will eventually
• wear out an EPROM, but the endurance of
most EPROM chips exceeds 1000 cycles of
erasing and reprogramming. EPROM chip
packages can often be identified by the
prominent quartz
• "window" which allows UV light to enter.
After programming, the window is typically
covered
• with a label to prevent accidental erasure.
Some EPROM chips are factory-erased
before they are packaged, and include no
window; these are effectively PROM.

35
• Electrically erasable programmable read-
only memory (EEPROM) is based on a
similar
• semiconductor structure to EPROM, but
allows its entire contents (or selected
banks) to be electrically erased, then
rewritten electrically, so that they need not
be removed from the
• computer (or camera, MP3 player, etc.).
Writing or flashing an EEPROM is much
slower
• (milliseconds per bit) than reading from a
ROM or writing to a RAM (nanoseconds in
both cases).
o Electrically alterable read-only memory

(EAROM) is a type of EEPROM that can


be
o modified one bit at a time. Writing is a

very slow process and again requires


higher
o voltage (usually around 12 V) than is

used for read access. EAROMs are


intended for applications that require
infrequent and only partial rewriting.
EAROM may be used as
o non-volatile storage for critical system
setup information; in many
applications,
o EAROM has been supplanted by CMOS

RAM supplied by mains power and


backed-up
o with a lithium battery.

36
o Flash memory (or simply flash) is a
modern type of EEPROM invented in
1984. Flash
o memory can be erased and rewritten
faster than ordinary EEPROM, and
newer designs
o feature very high endurance
(exceeding 1,000,000 cycles). Modern
NAND flash makes
o efficient use of silicon chip area,
resulting in individual ICs with a
capacity as high as
o 32 GB as of 2007; this feature, along
with its endurance and physical
durability, has allowed NAND flash to
replace magnetic in some applications
(such as USB flash drives).
o Flash memory is sometimes called
flash ROM or flash EEPROM when used
as a
o replacement
o for older ROM types, but not in
applications that take advantage of its
ability to be
o modified quickly and frequently.
By applying write protection, some types of
reprogrammable ROMs may temporarily
become read-only memory.
]Other technologies

37
There are other types of non-volatile memory
which are not based on solid-state IC
technology,
including:
• Optical storage media, such CD-ROM which
is read-only (analogous to masked ROM).
CD-R is
• Write Once Read Many (analogous to
PROM), while CD-RW supports erase-
rewrite cycles
• (analogous to EEPROM); both are designed
for backwards-compatibility with CD-ROM.

Historical examples

38
Transformer matrix ROM (TROS), from the IBM
System 360/20
• Diode matrix ROM, used in small amounts
in many computers in the 1960s as well as
electronic
• desk calculators and keyboard encoders for
terminals. This ROM was programmed by
installing discrete semiconductor diodes at
selected locations between a matrix of
word line traces and bit
• line traces on a printed circuit board.
• Resistor, capacitor, or transformer matrix
ROM, used in many computers until the
1970s. Like
• diode matrix ROM, it was programmed by
placing components at selected locations
between a
• matrix of word lines and bit lines. ENIAC's
Function Tables were resistor matrix ROM,
• programmed by manually setting rotary
switches. Various models of the IBM
System/360 and complex peripherial
devices stored their microcode in either
capacitor (called BCROS for
• Balanced Capacitor Read Only Storage on
the 360/50 & 360/65 or CCROS for Card
Capacitor Read
• Only Storage on the 360/30) or
transformer (called TROS for Transformer
Read Only Storage on
39
• the 360/20, 360/40 and others) matrix
ROM.
• Core rope, a form of transformer matrix
ROM technology used where size and/or
weight were
• critical. This was used in NASA/MIT's Apollo
Spacecraft Computers, DEC's PDP-8
computers, and other places. This type of
ROM was programmed by hand by weaving
"word line wires" inside
• or outside of ferrite transformer cores.

• Speed of ROMs

Reading speed
Although the relative speed of RAM vs. ROM
has varied over time, as of 2007large RAM
chips can be read faster than most ROMs. For
this reason (and to make for uniform access),
ROM content is sometimes
copied to RAM or shadowed before its first use,
and subsequently read from RAM.

40
Writing speed
For those types of ROM that can be electrically
modified, writing speed is always much slower
than
reading speed, and it may require unusually
high voltage, the movement of jumper plugs to
apply write-enable signals, and special
lock/unlock command codes. Modern NAND
Flash achieves the highest write speeds of any
rewritable ROM technology, with speeds as
high as 15 MB/s (or 70 ns/bit), by allowing
(indeed requiring) large blocks of memory cells
to be written simultaneously.

Endurance and data


retention
Because they are written by forcing electrons
through a layer of electrical insulation onto a
floating transistor gate, rewriteable ROMs can
withstand only a limited number of write and
erase cycles before
the insulation is permanently damaged. In the
earliest EAROMs, this might occur after as few
as 1,000

41
write cycles, while in modern Flash EEPROM
the endurance may exceed 1,000,000, but it is
by no
means
infinite. This limited endurance, as well as the
higher cost per bit, means that Flash-based
storage is unlikely to completely supplant
magnetic disk drives in the near future.

floating gates of the memory cell transistors.


Leakage is exacerbated at high temperatures
or in high-radiation environments. Masked ROM
and fuse/antifuse PROM do not suffer from this
effect, as their
data retention depends on physical rather
than electrical permanence of the integrated
circuit
(although fuse re-growth was once a problem
in some systems).

The contents of ROM chips in video game


console cartridges can be extracted with
special software or hardware devices. The
resultant memory dump files are known as
ROM images, and can be used to
42
produce duplicate cartridges, or in console
emulators. The term originated when most
console games
were distributed on cartridges containing ROM
chips, but achieved such widespread usage
that it is still
applied to images of newer games distributed
on CD-ROMs or other optical media.
ROM images of commercial games usually
contain copyrighted software. The
unauthorized copying and distribution of
copyrighted software is usually a violation of
copyright laws (in some jurisdictions,
duplication of ROM cartridges for backup
purposes may be considered fair use).
Nevertheless, there is a thriving community
engaged in the illegal distribution and trading
of such software. In such circles, the term
"ROM images" is sometimes shortened simply
to "ROMs" or sometimes changed to "rooms" to
highlight the connection with "warez".

43
WHAT IS BANK?

44
THERE'S A NEW "BANKING ENTITY" IN FORMATION,
BROOKLYN, NY-BASED BANK SIMPLE OPERATING
(TEMPORARILY I ASSUME) AT THE .NET VERSION OF ITS
NAME <BANKSIMPLE.NET>. I CHATTED WITH THE
FOUNDERS, JOSH REICH AND SHAMIR KARKAL EARLIER THIS
YEAR AND AM ANXIOUSLY AWAITING MORE INFO ON THE
LAUNCH.

FROM READING ITS TRADEMARK APPLICATION, WEBSITE,


AND BLOG, I BANK SIMPLE WILL LAUNCH
HAVE A FEELING
AS A BANKING FRONT-END (EG. MINT, OBOPAY), AND NOT
AS AN ACTUAL BANK. GIVEN THE MARKET'S (AND
WASHINGTON'S) APPETITE FOR STARTUP BANKS RIGHT
NOW, THEY MAY HAVE LITTLE CHOICE. BUT WHO KNOWS
WHERE THEY GO FROM THERE. IT SOUNDS LIKE THEY WANT
TIGHT CONTROL OVER THE USER EXPERIENCE, SO THEY MAY
EVENTUALLY NEED TO BE A BANK.

BUT FROM THEIR FAQS AND A FEW TIDBITS FOUND


THROUGH DEEP GOOGLING, IT SOUNDS LIKE BANK SIMPLE
WILL BE MUCH MORE THAN WEB-BASED SOFTWARE.
INITIALLY, IT IS LAUNCHING A CARD-BASED SERVICE WITH
COMBINED DEBIT/CREDIT AND REWARDS BUILT IN (DE-
COUPLED DEBIT AGAIN?). HERE'S WHAT THEY SAY IN THE
ABOUT SECTION:
WE WILL LAUNCH LATER THIS YEAR WITH A SIMPLE CARD
WITH IN BUILT CHECKING, SAVINGS, REWARDS AND A LINE
OF CREDIT. AS WE ADD MORE COMPETITIVE BANKING
SERVICES, YOU CAN PERSONALIZE YOUR FEATURES AS YOUR
NEEDS CHANGE.

45
BANK SIMPLE TALKS ABOUT CUSTOMER SERVICE
(ANSWERING THE PHONE), TAKING DEPOSITS BY MAIL (AND
THIS IS A RUMOR, BY MOBILE REMOTE DEPOSIT) AND OTHER
TRADITIONAL BANKING ACTIVITIES. SO THAT IS MUCH MORE
THAN AN ONLINE PFM (CAN WE AGREE TO CALL THAT
OFM?).
THEY MADE THE TECH PRESS THIS WEEK WHEN THEY ADDED
A NEW CO-FOUNDER, ALEX PAYNE, ONE OF EARLY
ENGINEERS AT TWITTER. SO EXPECT STREAMING
INFORMATION, ALA BLIPPY AND SWIPELY, AND SOCIAL
NETWORKING TO BE A CRUCIAL PART OF THE MIX.

THE STARTUP IS LOOKING FOR SUMMER MARKETING


INTERNS, BUT THERE ARE NO PERMANENT JOBS POSTED,
ANOTHER REASON TO BELIEVE THEY WILL NOT BE
OPERATING A FULL-BLOWN BANK IN THE NEAR TERM.

IT SOUNDS LIKE A GOOD PLAN. MARRY THE UTILITY OF


PAYPAL WITH USER EXPERIENCE OF ING DIRECT. THROW
IN A LITTLE MINT-LIKE DESIGN AND SO ME TWITTER
HYPE, AND IT'S A VC'S DREAM.

46
RECOMMENDED TOPICS:
BANK CREDIT CARD
BANK CREDIT
BANK CREDIT CHECK
BANK LOAN CREDIT
BANK BUSINESS CREDIT
BANK CREDIT LINE
BANK CREDIT TRAINING

47
BANK CREDIT
BANK CREDIT HAS TO DO WITH THE AMOUNT OF FUNDS
THAT AN INDIVIDUAL OR A BUSINESS MAY BE ABLE TO
BORROW FROM ONE OR MORE LENDING INSTITUTIONS. IN
EFFECT, BANK CREDIT IS A MEASURE OF HOW MUCH IN THE
WAY OF CASH LOANS MAY BE ISSUED, BASED ON THE
CREDIT HISTORY AND THE ASSETS OF THE COMPANY OR
PERSON. HERE IS SOME INFORMATION ABOUT HOW BANK
CREDIT WORKS, AND WHY KNOWING YOUR BANK CREDIT
RATING MAY BE VERY IMPORTANT.

BECAUSE BANK CREDIT FOCUSES ON THE BORROWING


CAPACITY OF THE INDIVIDUAL OR BUSINESS ENTITY, THE
PREMISE IS A LITTLE DIFFERENT THAN THE EXTENSION OF A
LINE OF CREDIT. FIRST, BANK CREDIT HAS TO DO WITH
LOANS THAT ARE TAKEN OUT FOR SPECIFIC PURPOSES,
RATHER THAN GENERAL PURPOSES. SECOND, THEY OFTEN
INVOLVE SOME SORT OF COLLATERAL THAT HELPS TO
ENSURE THE REPAYMENT OF THE LOAN IN THE EVENT OF
DEFAULT.

48
A basic PHILOSOPHY OF THE BANKING SYSTEM IS THAT
WHEN MONEY IS LOANED OUT, THERE MUST BE A
REASONABLE EXPECTATION OF REPAYMENT OF THE LOAN,
PLUS INTEREST. THIS MEANS THAT LOOKING AT THE
OVERALL FINANCIAL STATUS OF THE APPLICANT IS
IMPORTANT.

ASSETS SUCH AS PROPERTY, SAVINGS AND STOCK


ACCOUNTS, CURRENT INDEBTEDNESS, EMPLOYMENT STATUS
AND ANNUAL NET SALARY OR WAGES, AND OVERALL CREDIT
RATING ARE ALL COMPONENTS THAT FACTOR INTO
DETERMINING THE BANK CREDIT OF THE APPLICANT. THIS IS
A FAR MORE COMPREHENSIVE APPROACH THAN IS NORMALLY
USED FOR THE ISSUING OF A CREDIT CARD.

UNDERSTANDING THE IMPORTANCE OF BANK CREDIT OFTEN


BECOMES APPARENT WHEN APPLYING FOR A MORTGAGE TO
FINANCE THE PURCHASE OF A NEW HOME. DEPENDING ON
THE OVERALL FINANCIAL HEALTH OF THE PROSPECTIVE
HOMEOWNERS, THERE MAY OR MAY NOT BE A SUFFICIENT
LEVEL OF BANK CREDIT TO ALLOW THE APPROVAL OF THE
MORTGAGE. THIS MAY BE TRUE EVEN IF THE APPLICANT CAN
DEMONSTRATE A STEADY SOURCE OF INCOME AND IS NOT IN
ARREARS ON ANY CURRENT FINANCIAL OBLIGATIONS.

49
WHAT IS A PERSONAL BANK LOAN?
... 2000S, MOST PEOPLE WITH A GOOD CREDIT SCORE
COULD OBTAIN A MODEST PERSONAL BANK LOAN. THIS
CHANGED DRAMATICALLY IN THE US WITH THE BANK CRASH
THAT USHERED IN ...

WHAT IS A DAY LOAN?


... CAN THEN BE PLEDGED AS COLLATERAL FOR THE
BALANCE OF THE DAY LOAN, AND THE BANK LOAN IS
CONVERTED INTO A STANDARD CALL LOAN. THE PROCESS
FOR REQUESTED

WHAT IS A BANK TERM LOAN?


... NEEDED, OR BE PROVIDED TO THE COMPANY IN A LUMP
SUM, JUST AS ANY TYPE OF BANK LOAN. HERE IS SOME
INFORMATION ABOUT HOW THE BANK TERM LOAN WORKS,
AND WHY THIS

WHAT IS A CLASSIFIED LOAN?


CLASSIFIED LOANS ARE BANK LOANS THAT HAVE BEEN
ISSUED ACCORDING TO THE TERMS AND REGULATIONS OF
THE BANK, BUT LATER BECOME SOMEWHAT SUSPECT BY THE
BANK ...

50
WHAT IS A BANK TELLER?
... OFFER VERY MANY OPPORTUNITIES FOR ADVANCEMENT
WITHIN THE BANK. IN ORDER TO BECOME A BANKER, LOAN
OFFICER, OR OTHER HIGHER RANKING MEMBER OF THE
STAFF, A BANK ...

WHAT IS A CALLABLE LOAN?


... OF INTEREST THAT IS BELOW THE INTEREST RTE THAT IS
NORMALLY APPLIED IN STANDARD BANK LOANS. WHILE THE
DIFFERENCE IS USUALLY NO MORE THAN A PERCENTAGE
POINT, ...

WHAT IS THE WORLD BANK GROUP?


... . SOME DEVELOPING NATIONS RESENT THE
RESTRICTIONS WHICH MAY BE PLACED ON WORLD BANK
LOANS, ESPECIALLY THOSE WHICH PROMOTE MODERNIZATION
AT THE RISK OF LOSING ...
51
3
BRICKBACK-BANKS OFTEN DO AN EXTENSIVE BANK CREDIT
CHECK IN ORDER TO EXTEND OR APPROVE A BANK CREDIT
LOAN LIKE A MORTGAGE.

CURRENTLY LENDING STANDARDS HAVE TIGHTENED AND


THOSE WITH A CREDIT RATING BELOW 720 MAY HAVE
DIFFICULTY OBTAINING A BANK CREDIT LOAN.

ALSO, INTEREST RATES ARE HIGHER FOR THOSE WITH


BLEMISHES IN THEIR CREDIT RATING. SOME BANK CREDIT
CARDS CAN HAVE INTEREST RATES AS HIGH AS 24%. THIS
MAKES GETTING OUT OF DEBT HARDER BECAUSE SO MUCH
OF THE PAYMENT IS DEVOTED TO THE INTEREST PAYMENT.

BANKS OFTEN RAISE INTEREST RATES ON THOSE


BORROWERS WITH AN ADVERSE CREDIT HISTORY.
SOMETIMES THE BANK MIGHT REFUSE TO EXTEND CREDIT AT
ALL.

IN THIS CASE, IT IS BEST TO OBTAIN A SECURED CREDIT


CARD THAT IS GUARANTEED BY ANOTHER BANK ACCOUNT.
52
HERE THE CREDIT LIMIT IS LOW, AND THE BORROWER
REMOVES THE RISK TO THE BANK BY FREEZING THE FUNDS
IN A BANK ACCOUNT.

THE BANK CARD CREDIT LIMIT IS IDENTICAL TO THE AMOUNT


IN THE ACCOUNT. THE BANK CAN TRANSFER FUNDS FROM
THIS ACCOUNT IN ORDER TO SATISFY THE DEBT. THIS WAY
THE BANK HAS NO RISK AND THE PERSON WITH BAD CREDIT
CAN SLOWLY REBUILDS THEIR CREDIT RATING.

2
WHEN LOOKING TO OBTAIN A BANK CREDIT LINE OR A BANK
CREDIT LOAN IT IS BEST TO ELIMINATE OR REDUCE ALL
OTHER DEBT IN ORDER TO PROVIDE A MORE FAVORABLE
CREDIT PROFILE.

THE MORE FAVORABLE THE CREDIT PROFILE THE MORE


LIKELY YOU ARE TO OBTAIN A LOAN FOR THE AMOUNT AND
TERMS THAT YOU SEEK.

WHEN A BANK EXTENDS A BANK CREDIT LINE WHETHER IN


THE FORM OF A CREDIT CARD OR A HOME EQUITY LINE OF
CREDIT, HOME EQUITY LOAN, AUTO LOAN, OR PERSONAL
LOAN, IT DOES SO AFTER IT REVIEWS THE BORROWER’S
CREDIT PROFILE.

THIS INCLUDES THE APPLICANT’S INCOME, THE DEBT TO


CREDIT RATIO, AND THE OVERALL CREDIT RATING. IF THE
APPLICANT IS SEEKING A HOME EQUITY LOAN OR A HOME

53
EQUITY LINE OF CREDIT, THE BANK WILL ALSO CONSIDER
THE MARKET VALUE OF THE HOME AND THE AVAILABLE
EQUITY IN IT.

A LOAN TO VALUE MINIMUM IS USUALLY AT LEAST 80%,


MEANING THAT THERE HAS TO BE AT LEAST 20% EQUITY
IN THE HOME BEFORE THE BANK WILL CONSIDER AN EQUITY
LINE.

MOST BANKS WILL NOT SURPASS THE HOME’S EQUITY


BECAUSE THIS WOULD RESULT IN NEGATIVE AMORTIZATION.
THIS WOULD MAKE THE LOAN VALUED HIGHER THAN THE
VALUE OF THE HOME. AN APPRAISAL IS USUALLY DONE TO
VERIFY THE MARKET VALUE OF THE HOME.

3
BRICKBACK-BANKS OFTEN DO AN EXTENSIVE BANK CREDIT
CHECK IN ORDER TO EXTEND OR APPROVE A BANK CREDIT
LOAN LIKE A MORTGAGE.

CURRENTLY LENDING STANDARDS HAVE TIGHTENED AND


THOSE WITH A CREDIT RATING BELOW 720 MAY HAVE
DIFFICULTY OBTAINING A BANK CREDIT LOAN.

ALSO, INTEREST RATES ARE HIGHER FOR THOSE WITH


BLEMISHES IN THEIR CREDIT RATING. SOME BANK CREDIT
CARDS CAN HAVE INTEREST RATES AS HIGH AS 24%. THIS
MAKES GETTING OUT OF DEBT HARDER BECAUSE SO MUCH
OF THE PAYMENT IS DEVOTED TO THE INTEREST PAYMENT.

54
BANKS OFTEN RAISE INTEREST RATES ON THOSE
BORROWERS WITH AN ADVERSE CREDIT HISTORY.
SOMETIMES THE BANK MIGHT REFUSE TO EXTEND CREDIT AT
ALL.

IN THIS CASE, IT IS BEST TO OBTAIN A SECURED CREDIT


CARD THAT IS GUARANTEED BY ANOTHER BANK ACCOUNT.
HERE THE CREDIT LIMIT IS LOW, AND THE BORROWER
REMOVES THE RISK TO THE BANK BY FREEZING THE FUNDS
IN A BANK ACCOUNT.

THE BANK CARD CREDIT LIMIT IS IDENTICAL TO THE AMOUNT


IN THE ACCOUNT. THE BANK CAN TRANSFER FUNDS FROM
THIS ACCOUNT IN ORDER TO SATISFY THE DEBT. THIS WAY
THE BANK HAS NO RISK AND THE PERSON WITH BAD CREDIT
CAN SLOWLY REBUILDS THEIR CREDIT RATING.

2
WHEN LOOKING TO OBTAIN A BANK CREDIT LINE OR A BANK
CREDIT LOAN IT IS BEST TO ELIMINATE OR REDUCE ALL
OTHER DEBT IN ORDER TO PROVIDE A MORE FAVORABLE
CREDIT PROFILE.

THE MORE FAVORABLE THE CREDIT PROFILE THE MORE


LIKELY YOU ARE TO OBTAIN A LOAN FOR THE AMOUNT AND
TERMS THAT YOU SEEK.

WHEN A BANK EXTENDS A BANK CREDIT LINE WHETHER IN


THE FORM OF A CREDIT CARD OR A HOME EQUITY LINE OF

55
CREDIT, HOME EQUITY LOAN, AUTO LOAN, OR PERSONAL
LOAN, IT DOES SO AFTER IT REVIEWS THE BORROWER’S
CREDIT PROFILE.

THIS INCLUDES THE APPLICANT’S INCOME, THE DEBT TO


CREDIT RATIO, AND THE OVERALL CREDIT RATING. IF THE
APPLICANT IS SEEKING A

HOME EQUITY LOAN OR A HOME EQUITY

LINE OF CREDIT, THE BANK WILL ALSO CONSIDER THE


MARKET VALUE OF THE HOME AND THE AVAILABLE EQUITY IN
IT.

A LOAN TO VALUE MINIMUM IS USUALLY AT LEAST 80%,


MEANING THAT THERE HAS TO BE AT LEAST 20% EQUITY
IN THE HOME BEFORE THE BANK WILL CONSIDER AN EQUITY
LINE.

MOST BANKS WILL NOT SURPASS THE HOME’S EQUITY


BECAUSE THIS WOULD RESULT IN NEGATIVE AMORTIZATION.
THIS WOULD MAKE THE LOAN VALUED HIGHER THAN THE
VALUE OF THE HOME. AN APPRAISAL IS USUALLY DONE TO
VERIFY THE MARKET VALUE OF THE HOME.

56
57
V ISUAL B ASIC
THIS VISUAL BASIC LANGUAGE
ARTICLE IS ABOUT THE
SHIPPING WITH MICROSOFT VISUAL STUDIO 6.0 OR
EARLIER. FOR THE VISUAL BASIC LANGUAGE SHIPPING WITH
MICROSOFT VISUAL STUDIO LATER, SEE VISUAL BASIC

58
What is Visual Basic
VISUAL BASIC is a high level programming
language which evolved from the earlier
DOS version called BASIC. BASIC means
Beginners' All-purpose Symbolic
Instruction Code. It is a very easy
59
programming language to learn. The code
look a lot like English Language. Different
software companies produced different
versions of BASIC, such as Microsoft
QBASIC, QUICKBASIC, GWBASIC ,IBM
BASICA and so on. However, people prefer
to use Microsoft Visual Basic today, as it is
a well developed programming language
and supporting resources are available
everywhere. Now, there are many
versions of VB exist in the market, the
most popular one and still widely used by
many VB programmers is none other than
Visual Basic 6. We also have VB.net,
VB2005, VB2008 and the latest VB2010.
Both Vb2008 and VB2010 are fully object
oriented programming (OOP) language. If
you wish to learn VB2008, click on the
VB2008 Tutorial. VB2010 tutorial will be
available soon.
VISUAL BASIC is a VISUAL and events
driven Programming Language. These are
the main divergence from the old BASIC.
In BASIC, programming is done in a text-
only environment and the program is
executed sequentially. In VB,
programming is done in a graphical
environment. In the old BASIC, you have
to write program code for each graphical
60
object you wish to display it on screen,
including its position and its color.
However, In VB , you just need to drag and
drop any graphical object anywhere on the
form, and any graphical object anywhere
on the form, and you can change its color
any time using the properties windows.
On the other hand, because the user may
click on a certain object randomly, so each
object has to be programmed
independently to be able to response
VISUAL BASIC (VB) IS THE THIRD-GENERATION EVENT-
DRIVEN PROGRAMMING LANGUAGE AND INTEGRATED
DEVELOPMENT ENVIRONMENT (IDE) FROM MICROSOFT FOR
ITS COM PROGRAMMING MODEL. VB IS ALSO CONSIDERED
A RELATIVELY EASY TO LEARN AND USE PROGRAMMING
LANGUAGE, BECAUSE OF ITS GRAPHICAL DEVELOPMENT
FEATURES AND BASIC HERITAGE.

VISUAL BASIC WAS DERIVED FROM BASIC AND ENABLES


THE RAPID APPLICATION DEVELOPMENT (RAD) OF
GRAPHICAL USER INTERFACE (GUI) APPLICATIONS, ACCESS
TO DATABASES USING DATA ACCESS OBJECTS, REMOTE
DATA OBJECTS, OR ACTIVEX DATA OBJECTS, AND
CREATION OF ACTIVEX CONTROLS AND OBJECTS. SCRIPTING
LANGUAGES SUCH AS VBA AND VBSCRIPT ARE
SYNTACTICALLY SIMILAR TO VISUAL BASIC, BUT PERFORM
DIFFERENTLY.

61
A PROGRAMMER CAN PUT TOGETHER AN APPLICATION USING
THE COMPONENTS PROVIDED WITH VISUAL BASIC ITSELF.
PROGRAMS
WRITTEN IN VISUAL BASIC CAN ALSO USE THE WINDOWS
API, BUT DOING SO REQUIRES EXTERNAL FUNCTION
DECLARATIONS.

THE FINAL RELEASE WAS VERSION 6 IN 1998.


MICROSOFT'S EXTENDED SUPPORT ENDED IN MARCH
2008 AND THE DESIGNATED SUCCESSOR WAS (NOW
KNOWN SIMPLY AS VISUAL BASIC).

What programs can you create


with Visual Basic 6?
With VB 6, you can create any program
depending on your objective. For example,
if you are a college or university lecturer,
you can create educational programs to
teach business, economics, engineering,
computer science, accountancy , financial
management, information system and
more to make teaching more effective and
interesting. If you are in business, you can
also create business programs such as
inventory management system , point-of-
sale system, payroll system, financial
program as well as accounting program to
62
help manage your business and increase
productivity. For those of you who like
games and working as games
programmer, you can create those
programs as well. Indeed, there is no limit
to what program
you ca you can create ! There are many
such programs in this tutorial, so you must
spend more time on the tutorial in order to
learn how to create those programs. If you
wish to see some of the sample programs,
you can take a look at the link below:

VB Sample Programs
The Visual Basic 6 Integrated
Development Environment
Before you can program in VB 6, you need
to install Visual Basic 6 in your computer.
If you do not own a copy of Visual Basic 6
software yet , you can purchase it from
Amazon.com by clicking the link below:

Microsoft Visual Basic 6.0


Professional
63
On start up, Visual Basic 6.0 will display
the following dialog box as shown in . You
can choose to either start a new project,
open an existing project or select a list of
recently opened programs. A project is a
collection of files that make up your
application. There are various types of
applications that we could create,
however, we shall concentrate on creating
Standard EXE programs (EXE means
executable program). Now, click on the
Standard EXE icon to go into the actual
Visual Basic 6 programming environment.

CONTENTS
• 1 LANGUAGE FEATURES
• 2 CHARACTERISTICS
• 3 HISTORY
o3.1 TIMELINE
• 4 DERIVATIVE LANGUAGES
64
• 5 PERFORMANCE AND
OTHER ISSUES
• 6 LEGACY DEVELOPMENT
AND SUPPORT
• 7 EXAMPLE CODE
• 8 SEE ALSO
• 9 REFERENCES
10 EXTERNAL LINKS

L ANGUAGE FEATURES

LIKE THE BASIC PROGRAMMING LANGUAGE, VISUAL


BASIC WAS DESIGNED TO BE EASILY LEARNED AND USED BY
BEGINNER PROGRAMMERS. THE LANGUAGE NOT ONLY
ALLOWS PROGRAMMERS TO CREATE SIMPLE GUI
APPLICATIONS, BUT CAN ALSO DEVELOP COMPLEX
APPLICATIONS. PROGRAMMING IN VB IS A COMBINATION OF
VISUALLY ARRANGING COMPONENTS OR CONTROLS ON A
FORM, SPECIFYING ATTRIBUTES AND ACTIONS OF THOSE
COMPONENTS, AND WRITING ADDITIONAL LINES OF CODE

65
FOR MORE FUNCTIONALITY. SINCE DEFAULT ATTRIBUTES AND
ACTIONS ARE DEFINED FOR THE COMPONENTS, A SIMPLE
PROGRAM CAN BE CREATED WITHOUT THE PROGRAMMER
HAVING TO WRITE MANY LINES OF CODE. PERFORMANCE
PROBLEMS WERE EXPERIENCED BY EARLIER VERSIONS, BUT
WITH FASTER COMPUTERS AND NATIVE CODE COMPILATION
THIS HAS BECOME LESS OF AN ISSUE.

ALTHOUGH PROGRAMS CAN BE COMPILED INTO NATIVE


CODE EXECUTABLES FROM VERSION 5 ONWARDS, THEY
STILL REQUIRE THE PRESENCE OF RUNTIME LIBRARIES OF
APPROXIMATELY 1 MB IN SIZE. THIS RUNTIME IS INCLUDED
BY DEFAULT IN WINDOWS 2000 AND LATER, BUT FOR
EARLIER VERSIONS OF WINDOWS LIKE 95/98/NT IT MUST
BE DISTRIBUTED TOGETHER WITH THE EXECUTABLE.

FORMS ARE CREATED USING DRAG-AND-DROP TECHNIQUES.


A TOOL IS USED TO PLACE CONTROLS (E.G., TEXT BOXES,
BUTTONS, ETC.) ON THE FORM (WINDOW). CONTROLS
HAVE ATTRIBUTES AND EVENT HANDLERS ASSOCIATED WITH
THEM. DEFAULT VALUES ARE PROVIDED WHEN THE
CONTROL IS CREATED, BUT MAY BE CHANGED BY THE
PROGRAMMER.

MANY ATTRIBUTE VALUES CAN BE MODIFIED DURING RUN


TIME BASED ON USER ACTIONS OR CHANGES IN THE
ENVIRONMENT, PROVIDING A DYNAMIC APPLICATION. FOR
EXAMPLE, CODE CAN BE INSERTED INTO THE FORM RESIZE
EVENT HANDLER TO REPOSITION A CONTROL SO THAT IT
REMAINS CENTERED ON THE FORM, EXPANDS TO FILL UP THE
66
FORM, ETC. BY INSERTING CODE INTO THE EVENT HANDLER
FOR A KEYPRESS IN A TEXT BOX, THE PROGRAM CAN
AUTOMATICALLY TRANSLATE THE CASE OF THE TEXT BEING
ENTERED, OR EVEN PREVENT CERTAIN CHARACTERS FROM
BEING INSERTED.

VISUAL BASIC CAN CREATE EXECUTABLES (EXE FILES),


ACTIVEX CONTROLS, OR DLL FILES, BUT IS PRIMARILY
USED TO DEVELOP WINDOWS APPLICATIONS AND TO
INTERFACE DATABASE SYSTEMS. DIALOG BOXES WITH LESS
FUNCTIONALITY CAN BE USED TO PROVIDE POP-UP
CAPABILITIES. CONTROLS PROVIDE THE BASIC
FUNCTIONALITY OF THE APPLICATION, WHILE PROGRAMMERS
CAN INSERT ADDITIONAL LOGIC WITHIN THE APPROPRIATE
EVENT HANDLERS. FOR EXAMPLE, A DROP-DOWN
COMBINATION BOX WILL AUTOMATICALLY DISPLAY ITS LIST
AND ALLOW THE USER TO SELECT ANY ELEMENT. AN EVENT
HANDLER IS CALLED WHEN AN ITEM IS SELECTED, WHICH
CAN THEN EXECUTE ADDITIONAL CODE CREATED BY THE
PROGRAMMER TO PERFORM SOME ACTION BASED ON WHICH
ELEMENT WAS SELECTED, SUCH AS POPULATING A RELATED
LIST.

ALTERNATIVELY, VISUAL BASIC COMPONENT CAN HAVE


A
NO USER INTERFACE, AND INSTEAD PROVIDE ACTIVEX
OBJECTS TO OTHER PROGRAMS VIA COMPONENT OBJECT
MODEL (COM). THIS ALLOWS FOR SERVER-SIDE
PROCESSING OR AN ADD-IN MODULE.

67
THE LANGUAGE IS GARBAGE COLLECTED USING REFERENCE
COUNTING, HAS A LARGE LIBRARY OF UTILITY OBJECTS, AND
HAS BASIC OBJECT ORIENTED SUPPORT. SINCE THE MORE
COMMON COMPONENTS ARE INCLUDED IN THE DEFAULT
PROJECT TEMPLATE, THE PROGRAMMER SELDOM NEEDS TO
SPECIFY ADDITIONAL LIBRARIES.
UNLIKE MANY OTHER
PROGRAMMING LANGUAGES, VISUAL BASIC IS GENERALLY
NOT CASE SENSITIVE, ALTHOUGH IT WILL TRANSFORM
KEYWORDS INTO A STANDARD CASE CONFIGURATION AND
FORCE THE CASE OF VARIABLE NAMES TO CONFORM TO THE
CASE OF THE ENTRY WITHIN THE SYMBOL TABLE. STRING
COMPARISONS ARE CASE SENSITIVE BY DEFAULT, BUT CAN
BE MADE CASE INSENSITIVE IF SO DESIRED.

The Visual Basic compiler is shared with


other Visual Studio languages (C, C++),
but restrictions in the IDE do not allow
the creation of some targets (Windows
model DLLs) and threading models.

C HARACTERISTICS
VISUAL BASIC HAS THE FOLLOWING TRAITS WHICH DIFFER
FROM C-DERIVED LANGUAGES:

• MULTIPLE ASSIGNMENT AVAILABLE IN C LANGUAGE IS


NOT POSSIBLE.A = B = C DOES NOT IMPLY THAT
THE VALUES OF A, B AND C ARE EQUAL. THE
BOOLEAN RESULT OF "IS B = C?" IS STORED IN A.

68
THE RESULT STORED IN A WOULD THEREFORE BE
EITHER FALSE OR TRUE.

• BOOLEAN CONSTANT TRUE HAS NUMERIC VALUE −1.


• THIS IS BECAUSE THE BOOLEAN DATA TYPE IS
STORED AS A 16-BIT SIGNED INTEGER. IN THIS
CONSTRUCT −1 EVALUATES TO 16 BINARY 1S (THE
BOOLEAN VALUE TRUE), AND 0 AS 16 0S (THE
BOOLEAN VALUE FALSE). THIS IS APPARENT WHEN
PERFORMING A NOT OPERATION ON A 16 BIT SIGNED
INTEGER VALUE 0 WHICH WILL RETURN THE INTEGER
VALUE −1, IN OTHER WORDS TRUE = NOT FALSE.
THIS INHERENT FUNCTIONALITY BECOMES ESPECIALLY
USEFUL WHEN PERFORMING LOGICAL OPERATIONS ON
THE INDIVIDUAL BITS OF AN INTEGER SUCH AS AND,
OR, XOR AND NOT. THIS DEFINITION OF TRUE IS
ALSO CONSISTENT WITH BASIC SINCE THE EARLY
1970S MICROSOFT BASIC IMPLEMENTATION AND IS
ALSO RELATED TO THE CHARACTERISTICS OF CPU
INSTRUCTIONS AT THE TIME.
• LOGICAL AND BITWISE OPERATORS ARE UNIFIED. THIS
IS UNLIKE SOME C-DERIVED LANGUAGES (SUCH AS
PERL), WHICH HAVE SEPARATE LOGICAL AND BITWISE
OPERATORS. THIS AGAIN IS A TRADITIONAL FEATURE
OF BASIC.
• VARIABLE ARRAY BASE. ARRAYS ARE DECLARED BY
SPECIFYING THE UPPER AND LOWER BOUNDS IN A WAY
SIMILAR TO PASCAL ANDFORTRAN. IT IS ALSO
POSSIBLE TO USE THE OPTION BASE STATEMENT TO

69
SET THE DEFAULT LOWER BOUND. USE OF THE
OPTION BASE STATEMENT CAN LEAD TO CONFUSION
WHEN READING VISUAL BASIC CODE AND IS BEST
AVOIDED BY ALWAYS EXPLICITLY SPECIFYING THE
LOWER BOUND OF THE ARRAY. THIS LOWER BOUND IS
NOT LIMITED TO 0 1, BECAUSE IT CAN ALSO BE
OR
SET BY DECLARATION. IN THIS WAY, BOTH THE LOWER
AND

• UPPER BOUNDS ARE PROGRAMMABLE. IN MORE


SUBSCRIPT-LIMITED LANGUAGES, THE LOWER BOUND
OF THE ARRAY IS NOT VARIABLE. THIS UNCOMMON
TRAIT DOES EXIST IN BUT NOT IN

OPTION BASE WAS INTRODUCED BY ANSI, WITH


THE STANDARD FOR ANSI MINIMAL BASIC IN THE
LATE 1970S.
• RELATIVELY STRONG INTEGRATION WITH THE
WINDOWS OPERATING SYSTEM AND THE COMPONENT
OBJECT MODEL. THE NATIVE TYPES FOR STRINGS AND
ARRAYS ARE THE DEDICATED COM TYPES, BSTR
AND SAFEARRAY.
• BANKER'S ROUNDING AS THE DEFAULT BEHAVIOR
WHEN CONVERTING REAL NUMBERS TO INTEGERS WITH
THE ROUND FUNCTION. FOR INSTANCE, THE COMMAND
ROUND(2.4, 0) GIVES 2, WHILE ROUND(3.5, 0)
RETURNS 4.
• INTEGERS ARE AUTOMATICALLY PROMOTED TO REALS IN
EXPRESSIONS INVOLVING THE NORMAL DIVISION
70
OPERATOR (/) SO THAT DIVISION OF ONE INTEGER BY
ANOTHER PRODUCES THE INTUITIVELY CORRECT
RESULT. THERE IS A SPECIFIC INTEGER DIVIDE
OPERATOR (\) WHICH DOES TRUNCATE.
• BY DEFAULT, IF A VARIABLE HAS NOT BEEN DECLARED
OR IF NO TYPE DECLARATION CHARACTER IS SPECIFIED,
THE VARIABLE IS OF TYPE VARIANT. HOWEVER THIS
CAN BE CHANGED WITH DEFTYPE STATEMENTS SUCH
AS DEFINT, DEFBOOL, DEFVAR, DEFOBJ, DEFSTR.
THERE ARE 12 DEFTYPE STATEMENTS IN TOTAL
OFFERED BY VISUAL BASIC 6.0. THE DEFAULT TYPE
MAY BE OVERRIDDEN FOR A SPECIFIC DECLARATION BY
USING A SPECIAL SUFFIX CHARACTER ON THE VARIABLE
NAME (# FOR DOUBLE, ! FOR

• SINGLE, & FOR LONG, % FOR INTEGER, $ FOR


STRING, AND @ FOR CURRENCY) OR USING THE KEY
PHRASE AS (TYPE). VB CAN ALSO BE SET IN A MODE
THAT ONLY EXPLICITLY DECLARED VARIABLES CAN BE
USED WITH THE COMMAND OPTION EXPLICIT.

H ISTORY
VB 1.0 WAS INTRODUCED IN 1991. THE DRAG AND
DROP DESIGN FOR CREATING THE USER INTERFACE IS
DERIVED FROM A PROTOTYPE FORM GENERATOR DEVELOPED
BY ALAN COOPER AND HIS COMPANY CALLED TRIPOD.
MICROSOFT CONTRACTED WITH COOPER AND HIS
ASSOCIATES TO DEVELOP TRIPOD INTO A PROGRAMMABLE
FORM SYSTEM FOR WINDOWS 3.0, UNDER THE CODE
71
NAME RUBY (NO RELATION TO THE TRIPOD DID NOT
INCLUDE A PROGRAMMING LANGUAGE AT ALL. MICROSOFT
DECIDED TO COMBINE RUBY WITH THE BASIC LANGUAGE TO
CREATE VISUAL BASIC.
THE RUBY INTERFACE GENERATOR PROVIDED THE "VISUAL"
PART OF VISUAL BASIC AND THIS WAS COMBINED WITH THE
"EB" EMBEDDED BASIC ENGINE DESIGNED FOR
MICROSOFT'S ABANDONED "OMEGA" DATABASE SYSTEM.
RUBY ALSO PROVIDED THE ABILITY TO LOAD DYNAMIC LINK
LIBRARIES CONTAINING ADDITIONAL CONTROLS (THEN
CALLED "GIZMOS"), WHICH LATER BECAME THE VBX
INTERFACE.

TIMELINE
• PROJECT 'THUNDER' WAS INITIATED
• VISUAL BASIC 1.0 (MAY 1991) WAS RELEASED
FOR WINDOWS AT THE COMDEX/WINDOWS WORLD
TRADE SHOW IN ATLANTA, GEORGIA.

• VISUAL BASIC 1.0 FOR DOS WAS RELEASED IN


SEPTEMBER 1992. THE LANGUAGE ITSELF WAS NOT
QUITE COMPATIBLE WITH VISUAL BASIC FOR
WINDOWS, AS IT WAS ACTUALLY THE NEXT VERSION
OF MICROSOFT'S DOS-BASED BASIC COMPILERS,
QUICKBASIC AND BASIC PROFESSIONAL
DEVELOPMENT SYSTEM. THE INTERFACE USED A TEXT
USER INTERFACE, USING EXTENDED ASCII

72
CHARACTERS TO SIMULATE THE APPEARANCE OF A
GUI.

V ISUAL B ASIC FOR MS-DOS


• VISUAL BASIC 2.0 WAS RELEASED IN NOVEMBER
1992. THE PROGRAMMING ENVIRONMENT WAS
EASIER TO USE, AND ITS SPEED WAS IMPROVED.
NOTABLY, FORMS BECAME INSTANTIABLE OBJECTS,
THUS LAYING THE FOUNDATIONAL CONCEPTS OF CLASS
MODULES AS WERE LATER OFFERED IN VB4.

73
• VISUAL BASIC 3.0 WAS RELEASED IN THE SUMMER OF
1993 AND CAME IN STANDARD AND PROFESSIONAL
VERSIONS. VB3 INCLUDED VERSION 1.1 OF THE
MICROSOFT JET DATABASE ENGINE THAT COULD READ
AND WRITE JET (OR ACCESS) 1.X DATABASES.
• VISUAL BASIC 4.0 (AUGUST 1995) WAS THE FIRST
VERSION THAT COULD CREATE 32-BIT AS WELL AS
16-BIT WINDOWS PROGRAMS. IT ALSO INTRODUCED
THE ABILITY TO WRITE NON-GUI CLASSES IN VISUAL
BASIC. INCOMPATIBILITIES BETWEEN DIFFERENT
RELEASES OF VB4 CAUSED INSTALLATION AND
OPERATION PROBLEMS. WHILE PREVIOUS VERSIONS OF
VISUAL BASIC HAD USED VBX CONTROLS, VISUAL
BASIC NOW USED OLE CONTROLS (WITH FILES
NAMES ENDING IN .OCX) INSTEAD. THESE WERE
LATER TO BE NAMED ACTIVEX CONTROLS.
• WITH VERSION 5.0 (FEBRUARY 1997), MICROSOFT
RELEASED VISUAL BASIC EXCLUSIVELY FOR 32-BIT
VERSIONS OF WINDOWS. PROGRAMMERS WHO
PREFERRED TO WRITE 16-BIT PROGRAMS WERE ABLE
TO IMPORT PROGRAMS WRITTEN IN

• VISUAL BASIC 4.0 TO VISUAL BASIC 5.0, AND


VISUAL BASIC 5.0 PROGRAMS CAN EASILY BE
CONVERTED WITH VISUAL BASIC 4.0. VISUAL BASIC
5.0 ALSO INTRODUCED THE ABILITY TO CREATE
CUSTOM USER CONTROLS, AS WELL AS THE ABILITY TO
COMPILE TO NATIVE WINDOWS EXECUTABLE CODE,
74
SPEEDING UP CALCULATION-INTENSIVE CODE
EXECUTION. A FREE, DOWNLOADABLE CONTROL
CREATION EDITION WAS ALSO RELEASED FOR
CREATION OF ACTIVEX CONTROLS. IT WAS ALSO USED
AS AN INTRODUCTORY FORM OF VISUAL BASIC: A
REGULAR .EXE PROJECT COULD BE CREATED AND RUN
IN THE IDE, BUT NOT COMPILED.
• VISUAL BASIC 6.0 (MID 1998) IMPROVED IN A
NUMBER OF AREAS INCLUDING THE ABILITY TO CREATE
WEB-BASED APPLICATIONS. VB6 HAS ENTERED
MICROSOFT'S "NON-SUPPORTED PHASE" AS OF
MARCH 2008. ALTHOUGH THE VISUAL BASIC 6.0
DEVELOPMENT ENVIRONMENT IS NO LONGER
SUPPORTED, THE RUNTIME IS SUPPORTED ON
WINDOWS VISTA, WINDOWS SERVER 2008 AND
WINDOWS 7.
• MAINSTREAM SUPPORT FOR MICROSOFT VISUAL
BASIC 6.0 ENDED ON MARCH 31, 2005.
EXTENDED SUPPORT ENDED IN MARCH 2008. IN
RESPONSE, THE VISUAL BASIC USER COMMUNITY
EXPRESSED ITS GRAVE CONCERN AND LOBBIED USERS
TO SIGN A PETITION TO KEEP THE PRODUCT ALIVE.
MICROSOFT HAS SO FAR REFUSED TO CHANGE THEIR
POSITION ON THE MATTER.
(BUT SEE IRONICALLY,
AROUND THIS TIME (2005), IT WAS EXPOSED THAT
MICROSOFT'S NEW ANTI-

75
• SPYWARE OFFERING,MICROSOFT ANTISPYWARE (PART
OF THE GIANT COMPANY SOFTWARE PURCHASE),
WAS CODED IN VISUAL BASIC 6.0. ITS
REPLACEMENT, WINDOWS DEFENDER, WAS
REWRITTEN AS C++ CODE.

D ERIVATIVE LANGUAGES

MICROSOFT HAS DEVELOPED DERIVATIVES OF VISUAL BASIC


FOR USE IN SCRIPTING.
VISUAL BASIC ITSELF IS DERIVED
HEAVILY FROM BASIC, AND SUBSEQUENTLY HAS BEEN
REPLACED WITH A .NET PLATFORM VERSION.

SOME OF THE DERIVED LANGUAGES ARE:

76
• VISUAL BASIC FORAPPLICATIONS (VBA) IS
INCLUDED IN MANY MICROSOFT APPLICATIONS
(MICROSOFT OFFICE), AND ALSO IN MANY THIRD-
PARTY PRODUCTS LIKE SOLIDWORKS, AUTOCAD,
WORDPERFECT OFFICE 2002, ARCGIS, SAGE
ACCPAC ERP, AND BUSINESS OBJECTS DESKTOP
INTELLIGENCE. THERE ARE SMALL INCONSISTENCIES IN
THE WAY VBA IS IMPLEMENTED IN DIFFERENT
APPLICATIONS, BUT IT IS LARGELY THE SAME LANGUAGE
AS VB6 AND USES THE SAME RUNTIME LIBRARY.
• VBSCRIPT IS THE DEFAULT LANGUAGE FOR ACTIVE
SERVER PAGES. IT CAN BE USED IN WINDOWS
SCRIPTING AND CLIENT-SIDE WEB PAGE SCRIPTING.
ALTHOUGH IT RESEMBLES VB IN SYNTAX, IT IS A
SEPARATE LANGUAGE AND IT IS EXECUTED BY
VBSCRIPT.DLL AS OPPOSED TO THE VB RUNTIME.
ASP AND VBSCRIPT SHOULD NOT BE CONFUSED
WITH WHICH USES THE FOR COMPILED WEB PAGES.
• VISUAL BASIC .NET IS MICROSOFT'S DESIGNATED
SUCCESSOR TO VISUAL BASIC 6.0, AND IS PART OF
MICROSOFT'S PLATFORM. VISUAL BASIC.NET
COMPILES AND RUNS USING THE .NET FRAMEWORK.
IT IS NOT BACKWARDS COMPATIBLE WITH VB6. AN
AUTOMATED CONVERSION TOOL EXISTS, BUT FULLY
AUTOMATED CONVERSION FOR MOST PROJECTS IS
IMPOSSIBLE.
• STAROFFICE BASIC VISUAL BASIC COMPATIBLE
IS A
INTERPRETER INCLUDED IN STAROFFICE SUITE,
DEVELOPED BY SUN MICROSYSTEMS.

77
• GAMBAS VISUAL BASIC INSPIRED FREE SOFTWARE
IS A
PROGRAMMING LANGUAGE. IT IS NOT A CLONE OF
VISUAL BASIC,

• BUT IT DOES HAVE THE ABILITY TO CONVERT VISUAL


BASIC PROGRAMS TO GAMBAS.

P ERFORMANCE AND OTHER ISSUES

EARLIER COUNTERPARTS OF VISUAL BASIC (PRIOR TO


VERSION 5) COMPILED THE CODE TO P-CODE ONLY.
VISUAL BASIC 5 AND 6 ARE ABLE TO COMPILE THE CODE
TO EITHER NATIVE OR P-CODE AS THE PROGRAMMER
CHOOSES. THE P-CODE IS INTERPRETED BY THE LANGUAGE
RUNTIME, ALSO KNOWN AS VIRTUAL MACHINE, IMPLEMENTED
FOR BENEFITS SUCH AS PORTABILITY AND SMALL CODE.
HOWEVER, IT USUALLY SLOWS DOWN THE EXECUTION BY
ADDING AN ADDITIONAL LAYER OF INTERPRETATION OF CODE
BY THE RUNTIME ALTHOUGH SMALL AMOUNTS OF CODE AND
ALGORITHMS CAN BE CONSTRUCTED TO RUN FASTER THAN
THE COMPILED NATIVE CODE.VISUAL BASIC APPLICATIONS
REQUIRE MICROSOFT VISUAL BASIC RUNTIME
MSVBVMXX.DLL, WHERE XX IS THE RELEVANT VERSION
NUMBER, EITHER 50 OR 60. MSVBVM60.DLL COMES
AS STANDARD WITH WINDOWS IN ALL EDITIONS AFTER
WINDOWS 98 WHILE MSVBVM50.DLL COMES WITH
ALL EDITIONS AFTER WINDOWS 95. A WINDOWS 95
MACHINE WOULD HOWEVER REQUIRE INCLUSION WITH THE

78
INSTALLER OF WHICHEVER DLL WAS NEEDED BY THE
PROGRAM.

Criticisms levelled at Visual Basic editions prior to


VB.NET include: Versioning problems associated with
various runtime DLLs, known as DLL HELL

• POOR SUPPORT FOR OBJECT-ORIENTED PROGRAMMING


• INABILITY TO CREATE MULTI-THREADED APPLICATIONS,
WITHOUT RESORTING TO WINDOWS API CALLS
• INABILITY TO CREATE WINDOWS SERVICES
• VARIANT TYPES HAVE A GREATER PERFORMANCE AND
STORAGE OVERHEAD THAN STRONGLY TYPED
PROGRAMMING LANGUAGES
• DEPENDENCY ON COMPLEX AND FRAGILE COM
REGISTRY ENTRIES
• THE DEVELOPMENT ENVIRONMENT IS NO LONGER
SUPPORTED BY MICROSOFT.

L EGACY DEVELOPMENT AND SUPPORT

ALL VISUAL BASIC DEVELOPMENT


VERSIONS OF THE
ENVIRONMENT FROM 1.0 TO 6.0 HAVE BEEN RETIRED AND
ARE NOW UNSUPPORTED BY MICROSOFT. THE ASSOCIATED
RUNTIME ENVIRONMENTS ARE UNSUPPORTED TOO, WITH THE
EXCEPTION OF THE VISUAL BASIC 6 CORE RUNTIME
ENVIRONMENT, WHICH WILL BE OFFICIALLY SUPPORTED BY
MICROSOFT FOR THE LIFETIME OF WINDOWS 7.

79
THIRD PARTY COMPONENTS THAT SHIPPED WITH VISUAL
STUDIO 6.0 ARE NOT INCLUDED IN THIS SUPPORT
STATEMENT. SOME LEGACY VISUAL BASIC COMPONENTS
MAY STILL WORK ON NEWER PLATFORMS, DESPITE BEING
UNSUPPORTED BY MICROSOFT AND OTHER VENDORS.

DEVELOPMENT AND MAINTENANCE DEVELOPMENT FOR


VISUAL BASIC 6 IS POSSIBLE ON LEGACY WINDOWS XP,
WINDOWS VISTA AND WINDOWS 2003 USING VISUAL
STUDIO 6.0 PLATFORMS, BUT IS UNSUPPORTED.
DOCUMENTATION FOR VISUAL BASIC 6.0,

ITS APPLICATION PROGRAMMING INTERFACE AND TOOLS IS


BEST COVERED IN THE LAST MSDN RELEASE BEFORE
VISUAL STUDIO.NET 2002. LATER RELEASES OF
MSDN FOCUSED ON .NET DEVELOPMENT AND HAD
SIGNIFICANT PARTS OF THE VISUAL BASIC 6.0
PROGRAMMING DOCUMENTATION REMOVED. THE VISUAL
BASIC IDE CAN BE INSTALLED AND USED ON WINDOWS
VISTA, WHERE IT EXHIBITS SOME MINOR INCOMPATIBILITIES
WHICH DO NOT HINDER NORMAL SOFTWARE DEVELOPMENT
AND MAINTENANCE. AS OFAUGUST 2008, BOTH VISUAL
STUDIO 6.0 AND THE MSDN DOCUMENTATION
MENTIONED ABOVE ARE AVAILABLE FOR DOWNLOAD BY
MSDN SUBSCRIBERS.

80
E XAMPLE CODE

HERE IS AN EXAMPLE OF THE LANGUAGE: CODE SNIPPET


THAT DISPLAYS A MESSAGE BOX "HELLO, WORLD!" AS
THE WINDOW FORM LOADS:

PRIVATE SUB FORM_LOAD()


' EXECUTE A SIMPLE MESSAGE BOX THAT WILL SAY
"HELLO, WORLD!"
MSGBOX "HELLO, WORLD!"END SUB

81
82
LOGIN FORM CODING
Private Sub Command1_Click()
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
If Combo1 = Adodc1.Recordset.Fields(0) And Text1 =
Adodc1.Recordset.Fields(1) Then
Load MDIForm1
MDIForm1.Show
MsgBox "WELCOME TO BANKING SYSTEAM"
Exit Sub
Else
Adodc1.Recordset.MoveFirst
End If
Loop
MsgBox "INVALID PASSWORD"
End Sub
_____________________________________________________________
Private Sub Command2_Click()
If MsgBox("ARE U SURE U WANT TO EXIT", vbYesNo) = vbYes
Then
End
Else
MsgBox "AGAIN CONTINUE IN THIS PROJECT"
End If
End Sub
_____________________________________________________________
Private Sub Form_Load()
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields(0)
Adodc1.Recordset.MoveNext

83
Loop
End Sub
_____________________________________________________________
Private Sub Timer1_Timer()
Label2.Caption = Date
Label4.Caption = Time
End Sub

ADD NEW USERS CODING


Private Sub Command1_Click()
If Text2 = Text3 Then
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0) = Text1
Adodc1.Recordset.Fields(1) = Text2
Text1 ""
Text2 ""
Text3 ""
MsgBox "NEW LOGIN USERS ADDED"
Else
MsgBox "RE-ENTER PASSWORD DOES NOT MATCH"
Text1 ""
Text2 ""
Text3 ""
End If
_____________________________________________________________

DELETE USERS CODING


End SubPrivate Sub Command1_Click()
Adodc1.Recordset.MoveFirst
DOUNTIL Adodc1.Recordset.EOF
If Combo1 = Adodc1.Recordset.Fields(0) Then
Adodc1.Recordset.Delete
Adodc1.Recordset.MovePrevious
End Sub

84
_____________________________________________________________

CHANGE PASSWORD CODING


Private Sub Command1_Click()
If Text2 = Text3 Then
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
If Combo1 = Adodc1.Recordset.Fields(0) Then
Adodc1.Recordset.Fields(1) = Text2
MsgBox "password Updated"
Combo1 = ""
Text1 = ""
Text2 = ""
Text3 = ""
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
Loop
Else
MsgBox "Re-enter password does not match"
End If
End Sub
_____________________________________________________________
Private Sub Form_Load()
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
Combo1.AddItem Adodc1.Recordset.Fields(0)
Adodc1.Recordset.MoveNext
Loop
End Sub

85
Private Sub Text1_Change()
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
If Combo1 = Adodc1.Recordset.Fields(0) And Text1 =
Adodc1.Recordset.Fields(1) Then
Label4.Visible = True
Label5.Visible = True
Text2.Visible = True
Text3.Visible = True
Command1.Enabled = True
Exit Sub
Else
Label4.Visible = False
Label5.Visible = False
Text2.Visible = False
Text3.Visible = False
Command1.Enabled = False
Adodc1.Recordset.MoveNext
End If
_____________________________________________________________

ACOUNT OPENING FORM CODING


Private Sub Command1_Click()
Adodc1.Recordset.Fields(0) = Text1
Adodc1.Recordset.Fields(1) = Text2
Adodc1.Recordset.Fields(2) = Text3
Adodc1.Recordset.Fields(3) = Text4
Adodc1.Recordset.Fields(4) = Text5
86
Adodc1.Recordset.Fields(5) = Combo1
Adodc1.Recordset.Fields(6) = Combo2
Adodc1.Recordset.Fields(7) = Combo3
Adodc1.Recordset.Fields(8) = Combo4

Adodc1.Recordset.Fields(9) = Combo5
Adodc1.Recordset.Fields(10) = Combo6 + "/" + Combo7 +
"/" + Combo8
Adodc1.Recordset.Fields(11) = Text6
Adodc1.Recordset.Fields(12) = Combo9
Adodc1.Recordset.Fields(13) = Text7
Adodc1.Recordset.Fields(14) = Combo10
Adodc1.Recordset.Update

_____________________________________________________________

End SubPrivate Sub Command2_Click()


a = InputBox("Enter Employee ID")
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
If a = Adodc1.Recordset.Fields(0) Then
Text1 = Adodc1.Recordset.Fields(0)
Text2 = Adodc1.Recordset.Fields(1)
Combo1.Text = Adodc1.Recordset.Fields(2)
Combo2.Text = Adodc1.Recordset.Fields(3)
Text3 = Adodc1.Recordset.Fields(4)
Text4 = Adodc1.Recordset.Fields(5)
Combo3.Text = Adodc1.Recordset.Fields(6)
Combo4.Text = Adodc1.Recordset.Fields(7)
Text5 = Adodc1.Recordset.Fields(8)
Text6 = Adodc1.Recordset.Fields(9)
Combo5.Text = Adodc1.Recordset.Fields(10)
MsgBox "Record Found"
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
Loop
MsgBox "Record Not Found"
End Sub
_____________________________________________________________

87
Private Sub Command2_Click()
Adodc1.Recordset.Delete
Adodc1.Recordset.MovePrevious
End Sub

Private Sub Command3_Click()


a = InputBox("ENTRY ACOUNT NO")
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
If a = Adodc1.Recordset.Fields(1) Then
Text1 = Adodc1.Recordset.Fields(0)
Text2 = Adodc1.Recordset.Fields(1)
End Sub

_____________________________________________________________
Private Sub Form_Load()
Combo1.AddItem "MALE"
Combo1.AddItem "FEMALE"
Combo2.AddItem "MATRIC"
Combo2.AddItem "INTER"
Combo2.AddItem "GRADUCATION"
Combo2.AddItem "POST GRADUCATION"
Combo3.AddItem "SC/ST"
Combo3.AddItem "GENRAL"
Combo4.AddItem "MARIED"
Combo4.AddItem "NON-MARID"
Combo5.AddItem "INDIAN"
Combo5.AddItem "CHINA"
Combo5.AddItem "PAKISTAN"
Combo5.AddItem "AMERICAN"
Combo5.AddItem "GERMAN"
Combo5.AddItem "FRANCH"
Combo5.AddItem "AUSTRLIYA"
Combo5.AddItem "AFRICI"
FOR A = 1 to 31
Combo6.AddItem a
Next
FOR A = 1 to 12
Combo7.AddItem a
Next

88
FOR A = 1950 to 2000

Combo8.AddItem a
next
Combo9.AddItem "current"
Combo9.AddItem "deposit"
FORA = 1 - 31
Combo10.AddItem a
Next
FORA = 1 - 12
Combo11.AddItem a
Next
FORA = 1950 - 2000
Combo12.AddItem a
End Sub
-
_____________________________________________________________

WITHDRAWL FORM CODING


Private Sub Command1_Click()
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0) = LABEL1
Adodc1.Recordset.Fields(1) = Text1
Adodc1.Recordset.Fields(2) = Text2
Adodc1.Recordset.Fields(3) = Text3
Adodc1.Recordset.Fields(4) = Text4
Adodc1.Recordset.Fields(5) = Option1
Adodc1.Recordset.Fields(6) = Option2
Adodc1.Recordset.Fields(7) = Text5
Adodc1.Recordset.Update
End Sub
_____________________________________________________________

Private Sub Command2_Click()


Adodc1.Recordset.Delete
Adodc1.Recordset.MovePrevious
89
End Sub
-
_____________________________________________________________

Private Sub Option1_Click()


If Option1.Enabled = True Then
Text5 = Text3 - Text4
End If
End Sub
_____________________________________________________________

Private Sub Option2_Click()


If Option2.Enabled = True Then
Text5 = Int(Text3) + Int(Text4)
End If
End Sub
-
_____________________________________________________________

Private Sub Text1_Change()


Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
If Text1 = Adodc1.Recordset.Fields(1) Then
Text2 = Adodc1.Recordset.Fields(2)
Text3 = Adodc1.Recordset.Fields(3)
Exit Sub
Else
Adodc1.Recordset.MoveNext
End If
Loop
End Sub
_____________________________________________________________

Private Sub Timer1_Timer()


Label7.Caption = Date
End Sub
____________________________________________________________

90
FUND FORM CODING
Private Sub Command1_Click()
Adodc1.Recordset.Fields(0) = Text1
Adodc1.Recordset.Fields(1) = Combo1
Adodc1.Recordset.Fields(2) = Text2
Adodc1.Recordset.Fields(3) = Text3
Adodc1.Recordset.Fields(4) = Text4
Adodc1.Recordset.Fields(5) = Combo2
Adodc1.Recordset.Fields(6) = Combo3
Adodc1.Recordset.Fields(7) = Text5
Adodc1.Recordset.Fields(8) = Option1.Caption
Else
Adodc1.Recordset.Fields(8) = Option2.Caption
Adodc1.Recordset.Fields(9) = Combo4 + "/" + Combo5 + "/"
+ Combo6
Adodc1.Recordset.Update
End Sub
_____________________________________________________________

Private Sub Command2_Click()


Adodc1.Recordset.Delete
Adodc1.Recordset.MoveFirst
End Sub
_____________________________________________________________

Private Sub Form_Load()


FORA = 1950 - 2005
Combo1.AddItem
Combo2.AddItem = "SONBHADRA"
Combo2.AddItem = "MIRJAPUR"
Combo2.AddItem = "SINGRAULI"
Combo2.AddItem = "SIDHI"
Combo2.AddItem = "VARANSI"
Combo3.AddItem = "UTTAR PRADESH"
Combo3.AddItem = "BIHAR"
Combo3.AddItem = "MADHAY PRADESH"
Combo3.AddItem = "CHHATISGARH"
91
Combo3.AddItem = "GOA"
FOR A = 1 to 31
Combo4.AddItem a
Next
FOR A = 1 to 12
Combo5.AddItem a
Next
FOR A = 1950 to 2000
Combo6.AddItem a
End Sub

DETAIL OF PAYMENT CODING


Private Sub Command1_Click()
Adodc1.Recordset.Fields(0) = Combo1 + "/" + Combo2 + "/"
+ Combo3
Adodc1.Recordset.Fields(1) = Text1
Adodc1.Recordset.Fields(2) = Text2
Adodc1.Recordset.Fields(3) = Text3
Adodc1.Recordset.Fields(4) = Text4
Adodc1.Recordset.Fields(5) = Text5
Adodc1.Recordset.Fields(6) = Text6
Adodc1.Recordset.Fields(7) = Text7
Adodc1.Recordset.Fields(8) = Combo4
Adodc1.Recordset.Update
End Sub
_____________________________________________________________

Private Sub Command2_Click()


Adodc1.Recordset.Delete
Adodc1.Recordset.MoveFirst
End Sub

Private Sub Form_Load()


FORA = 1 - 31
Combo1.AddItem a
Next
92
FORA = 1 - 12
Combo2.AddItem a
Next
FORA = 1950 - 2009
Combo3.AddItem a
Combo4.AddItem "HUNDRAD"
Combo4.AddItem "THOUSAND"
Combo4.AddItem "LACKHS"
Combo4.AddItem "CARORES"
End Sub
_____________________________________________________________

Private Sub Text7_Change()


Text7 = Int(Text2) + Int(Text3) + Int(Text4) + Int(Text5) +
Int(Text6) - Text1
End Sub

-
_____________________________________________________________

STUDENT LOAN FORM CODING


Private Sub WF_Click()
Load Form6
Form6.Show
Form6.SetFocus
End SubPrivate Sub Combo1_Change()
If Combo1.Text = "EDUCATIONAL" Then
TEX2 = "1 LACKS TO 7.5 LACKS"
Text4 = "8%"
Else
If Combo1.Text = "PERSONAL" Then
TEX2 = "1 LACKS TO 4.5 LACKS"
93
Text4 = "10.5%"
Else
If Combo1.Text = "BUSINESS" Then
TEX2 = "1 LACKS TO 10 LACKS"
Text4 = "12%"
End If
End Sub
_____________________________________________________________

Private Sub Command1_Click()


Adodc1.Recordset.AddNew

Adodc1.Recordset.Fields(0) = Text1
Adodc1.Recordset.Fields(1) = Text2
Adodc1.Recordset.Fields(2) = Combo1
Adodc1.Recordset.Fields(3) = Combo2
Adodc1.Recordset.Fields(4) = Text3
Adodc1.Recordset.Fields(5) = Text4
Adodc1.Recordset.Fields(6) = Text5
Adodc1.Recordset.Fields(7) = Text6
Adodc1.Recordset.Fields(8) = Combo3
Adodc1.Recordset.Fields(9) = Text7
Adodc1.Recordset.Fields(10) = Text8
Adodc1.Recordset.Fields(11) = Text9
Adodc1.Recordset.Fields(12) = Text10
Adodc1.Recordset.Fields(13) = Text11
Adodc1.Recordset.Fields(14) = Text12
Adodc1.Recordset.Fields(15) = Text13
Adodc1.Recordset.Fields(16) = Text14
Adodc1.Recordset.Fields(17) = Text15
Adodc1.Recordset.Update
End Sub
_____________________________________________________________

Private Sub Command2_Click()


Adodc1.Recordset.Delete
Adodc1.Recordset.MovePrevious
End Sub
_____________________________________________________________

Private Sub Form_Load()

94
Combo1.AddItem "MATRIC"
Combo1.AddItem "INTER"
Combo1.AddItem "GRADUCATION"
Combo1.AddItem "POST GRADUCATION"
Combo2.AddItem "EDUCATIONAL"
Combo2.AddItem "PERSONAL"
Combo2.AddItem "BUSINESS"
End Sub

EMPLOY PF FORM CODING


Private Sub Command1_Click()
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0) = Combo1 + "/" + Combo2 + "/"
+ Combo3
Adodc1.Recordset.Fields(1) = Text1
Adodc1.Recordset.Fields(2) = Combo4
Adodc1.Recordset.Fields(3) = Combo5
Adodc1.Recordset.Fields(4) = Combo6
Adodc1.Recordset.Fields(5) = Combo7
Adodc1.Recordset.Fields(6) = Text2
Adodc1.Recordset.Fields(7) = Text3
Adodc1.Recordset.Fields(8) = Text4
Adodc1.Recordset.Fields(8) = Text5
Adodc1.Recordset.Fields(8) = Text6
Adodc1.Recordset.Fields(8) = Text7
Adodc1.Recordset.Fields(8) = Text8
Adodc1.Recordset.Fields(8) = Text9
Adodc1.Recordset.Fields(8) = Text10
Adodc1.Recordset.Fields(8) = Text11
End Sub
_____________________________________________________________

Private Sub Command2_Click()


Adodc1.Recordset.Delete
Adodc1.Recordset.MovePrevious
95
End Sub
_____________________________________________________________

Private Sub Form_Load()


For A = 1 To 31
Combo1.AddItem
Next
For A = 1 To 12
Combo2.AddItem
Next
For A = 1950 To 2010
Next
End Sub

DETAIL FO LOAN
Private Sub Command1_Click()
Adodc1.Recordset.AddNew
Adodc1.Recordset.Fields(0) = Text1
Adodc1.Recordset.Fields(1) = Text2
If Option1.Enabled = True Then
Adodc1.Recordset.Fields(2) = Option1.Caption
End If
If Option2.Enabled = True Then
Adodc1.Recordset.Fields(2) = Option2.Caption
End If
Adodc1.Recordset.Fields(3) = Combo1
Adodc1.Recordset.Fields(4) = Text3
Adodc1.Recordset.Fields(5) = Combo2
Adodc1.Recordset.Fields(6) = Text4
Adodc1.Recordset.Fields(7) = Text5
Adodc1.Recordset.Fields(8) = Text6
Adodc1.Recordset.Fields(9) = Text7
Adodc1.Recordset.Fields(10) = Text8
Adodc1.Recordset.Update
Text1 = ""
Text2 = ""
Combo1.Text = ""
96
Text3 = ""
Combo2.Text = ""
Text4 = ""
Text5 = ""
Text6 = ""
Text7 = ""
Text8 = ""
MsgBox "Record Added Successfully"
End Sub

Private Sub Command2_Click()


Adodc1.Recordset.Delete
Adodc1.Recordset.MovePrevious
MsgBox "Record Deleted Successfully"

End Sub

Private Sub Command3_Click()


a = InputBox("Enter Employee ID")
Adodc1.Recordset.MoveFirst
Do Until Adodc1.Recordset.EOF
If a = Adodc1.Recordset.Fields(0) Then
Text1 = Adodc1.Recordset.Fields(0)
Text2 = Adodc1.Recordset.Fields(1)
If Option1.Enabled = True Then
Adodc1.Recordset.Fields(2) = Option1.Caption
End If
If Option2.Enabled = True Then
Adodc1.Recordset.Fields(2) = Option2.Caption
End If
Combo1.Text = Adodc1.Recordset.Fields(3)
Text3 = Adodc1.Recordset.Fields(4)
Combo2.Text = Adodc1.Recordset.Fields(5)
Text4 = Adodc1.Recordset.Fields(6)
Text5 = Adodc1.Recordset.Fields(7)
Text6 = Adodc1.Recordset.Fields(8)
Text7 = Adodc1.Recordset.Fields(9)
Text8 = Adodc1.Recordset.Fields(10)
MsgBox "Record Found"
Exit Sub
Else

97
Adodc1.Recordset.MoveNext
End If
Loop
MsgBox "Record Not Found"
End Sub

Private Sub Command4_Click()


End
End Sub

Private Sub Form_Load()


Combo1.AddItem "Genral Manager"
Combo1.AddItem "Mangre"
Combo1.AddItem "Engineer"
Combo1.AddItem "Supervisor"
Combo1.AddItem "Officer"
Combo1.AddItem "Workmen"
Combo2.AddItem "House Building Loan"
Combo2.AddItem "Vehical Loan"
Combo2.AddItem "Furniture Loan"
Combo2.AddItem "Computer Loan"
Combo2.AddItem "Education Loan"
End Sub

MDI FORM CODING


Private Sub ANU_Click()
Load Form2
Form2.Show
Form2.SetFocus
End Sub

Private Sub AOF_Click()


Load form5
98
form5.Show
form5.SetFocus
End Sub
_____________________________________________________________

Private Sub CP_Click()


Load Form4
Form4.Show
Form4.SetFocus
End Sub
_____________________________________________________________

Private Sub DPF_Click()


Load Form8
Form8.Show
Form8.SetFocus
End Sub
_____________________________________________________________

Private Sub DU_Click()


Load FORM3
FORM3.Show
FORM3.SetFocus
End Sub
_____________________________________________________________

Private Sub FF_Click()


Load Form7
Form7.Show
Form7.SetFocus
End Sub
_____________________________________________________________

Private Sub MDIForm_Load()


StatusBar1.Panels(1).Text = Form1.Combo1.Text

If StatusBar1.Panels(1).Text = "DIVYANI" Then


ANU.Enabled = True
DU.Enabled = True
Else
ANU.Enabled = False

99
DU.Enabled = False
End If
End Sub
__________________________________________________________

LOGIN FORM

100
MDI FORM

101
ACCOUNT OPENING FORM

102
WITHDRAWL FORM
103
FUND FORM

104
DETAIL OF LOAN

105
STUDENT LOAN

106
DETAIL OF PAYMENT FORM

107
ADD NEW LOGIN USER FORM

108
DELETE USER FORM

109
CHANGE PASSWORD FORM

110
CALCULATER
111
NOTEPAD

112
CALENDER

113
114
115

Potrebbero piacerti anche