Visual Basic .net Enumerations

An enumeration is a list of integer values, each one mapped to a name.

Let us consider an example in which we have to store a category into a Class. Let us also assume that the Class name is AccoutClass and categories are creditor, debtor, bank and general. Instead of using literals to describe the various categories, we will use an enumeration with the following names.

'Enumerator for Account Category
Public Enum AccountCategory
Creditor = 1
Debtor = 2
Bank = 3
General = 4
End Enum

The above statements must appear outside any procedure we use in the class. We will place them at the beginning of the file, right after the declaration of the Class.

In our example, the name Creditor corresponds to 1, the name Debtor corresponds to 2, and so on. Notice that we use enumerations to replace numeric constants with more meaningful names, in this case AccountCategory. We will see how enumerations are used both in the class and the calling application.

The below code shows how enumerations are used in the calling software application program.
Select Case itemClicked.Text

Case "&Creditor"
  MsgBox("Creditor Accounts")

  Dim AccForm As New AccountForm
  AccForm.Text = "Creditor Accounts"
  AccForm.AccountCat = AccountCategory.Creditor

Case "&Debtor"
  MsgBox("Debtor Accounts")

  Dim AccForm As New AccountForm
  AccForm.Text = "Debtor Accounts"
  AccForm.AccountCat = AccountCategory.Debtor
End Select

In the above code, we check whether the user has selected an account, and then assign AccountCategory enumerator member - Creditor or Debtor, to a variable AccountCat of the AccForm.

As we can see, the members of the AccountCategory enumeration become properties of the enumerator.

The advantage of using enumerations is that we can manipulate meaningful names instead of numeric constants. This makes your vb code less prone to errors and far easier to understand.

Note that the members of an enumeration are always constants.

Because the AccountCategory enumeration was declared as Public, it will be exposed to any application that uses the class.

Another example of enumeration is given below. This example shows how to allow access to an user depending on their username and password.

'Enumerator for access levels
Public Enum BLAccessLevel
	BLFullAccess = 1
	BLManagerAccess = 2
	BLRestrictedAccess = 3
End Enum

Private Overloads Sub VerifyAccess(ByVal sUserName As String, 
ByVal spassword As String)

Dim sRole As String
'Login and authenticate based on passed credentials

PrivateUserRoles.Login(sUserName, spassword)
'The security object will return a Roles property that contains all 

associated with the given employee

For Each sRole In PrivateUserRoles.Roles()
	'Set an appropriate level of authorization based on the 

assigned roles

	Select Case sRole
	'Certain employees in HR must have access to all relevant data

		Case "HRManager", "HRClerk", "HRPayrollClerk"
			PrivateAccessLevel = BLAccessLevel.BLFullAccess
		'Managers must be able to view information

		Case "Manager", "FactorySupervisor", "QAManager"
			PrivateAccessLevel = 

		Case Else

	End Select
If PrivateAccessLevel = BLAccessLevel.BLFullAccess Then Exit For
End Sub

more on String Enumerations in VB.NET with an example

cover image of azure cloud book

Develop Azure Applications

Azure Cloud is gaining popularity and is competing with Amazon Elastic Cloud and Google Cloud for a spot in the billion dollar Cloud computing space.

With this book learn how to use - Table (an Azure Table is different from a SQL Server Table), Queue, Blob storage services, use your local machine to create an Application and a Service, how Azure splits a Table to achieve Load Balancing, Scalability based on the Partition Key, AppFabric Service Bus, Access Control Service, role of Fabric Controller, features of Azure SQL Database and Content Delivery Network.

Many have mastered Cloud Programming and are enjoying the benefits. Why not you?

View Highlights » View Contents »
cover image of foundation database programming book

Create your Own Accounting Software

A foundation book to Master Accounting Software Development, VB.Net, C# and OOPs programming. Detailed explanation of the Accounting domain for programmers is included. SQL and ADO.Net is also covered in detail.

This book gives you a strong foundation in Application Development.

A thorough understanding of the contents will enable you to grasp the topics covered in the accompanying books quite easily. This is because, the accounting domain is dealt with great detail in this book.

The ideal book to get started with application development in the .Net world.

View Highlights » View Contents »

cover image of book

Create your Own WEB ERP Software using ASP.Net

This book opens you to the Web. Using ASP.Net, C# and SQL Server as the tools, you will learn to build a Multi Tier Web Application as recommended by Microsoft. You will learn implementing inline GridView control, Transaction Management for a layered Web Application, build Data Access component and a Business Layer component.

Opens you to a world of opportunities. You will be able to develop a Web ERP application including all the five modules and learn how to use the TreeView control and GridView control to implement transactions such as Purchase Invoice, Sales Order and Sales Invoice.

View Highlights » View Contents »
cover image of entity framework book

ASP.Net MVC 5 Application Development Using Entity Framework 6 and VS 2015

Entity frameworks is the latest buzz in .Net programming and is the data access technology for Microsoft OS based hand held devices and web applications. Learn to integrate EF into an ASP.Net Application and MVC application. Create, explore and query the Entity Data Model. Learn how to use ObjectDataSource control and GridView control in an ASP.Net Application.

Also, learn to build Three-Tier ASP.Net application, create a business-class, implement methods in the class to perform CRUD operations and bind a GridView to the ObjectDataSource control. Learn how to handle concurrency and managing Transactions.

View Contents »