Dave Irvine Bronze Collection
It's not a question of using bar codes but of how you're going to use them. Here's what you need to know to understand bar code technology.
Every day, all of us are surrounded by bar codes. In any grocery store on the continent, all the products sold, save for fresh produce and bulk food, are identified by a bar code. In its simplest terms, a bar code is a graphic representation of numerical or alphabetic data, usually in the form of an ID code of one sort or another. Bar codes began to be used in the early 1970s in the grocery industry as a method of facilitating automated checkouts. By the early '80s, 95 percent of all grocery items carried a bar code. We've all seen them. A bar code is a series of black and white stripes, which represent a code of numbers and/or letters (two-dimensional bar codes are a little more complex, and I'll talk about them later). This code can be read and deciphered by a scanner, and that information can be fed into a computerized system for processing. As with EDI, one of the big advantages to using bar codes is that they eliminate the need for a person to manually key in the code, thus reducing the chance for error.
Bar code symbology
There are numerous symbologies that have been developed over the years, but the standard codes vary from industry to industry (and application to application). Since I can't cover them all, I'll concentrate on the three that you're most likely to run across: UPC, Code 39, and Code 128.
As with any technology designed to span multiple companies or organizations, the biggest problem facing implementation is standards. In its search for standards, the U.S. grocery industry adopted the Universal Product Code (UPC) symbology in the early 1970s as their standard. The basic UPC code consists of a 10-digit code, divided into two five-digit segments. The first segment is unique to the product manufacturer, while the second segment is unique to that manufacturer's product. Later, an additional two characters were added to the UPC code -- a leading one-digit character, representing an industry code, and a trailing one-digit character, used as a check digit for verifying an accurate read of the code. Thus, the modern UPC code is 1-5-5-1. One of the major drawbacks to the UPC code is that it can encode only numeric symbols.
Since UPC could only encode numeric symbols, a coding methodology with alphabetic capabilities had to be developed. As a result, Code 39 was developed in 1975 by Interface Mechanisms (now Intermec). Code 39 gained wide adoption with the U.S. government, including the Department of Defense. Code 39 also gained acceptance in the automotive industry, as well as the healthcare and pharmaceutical industries. It's called Code 39 (or Code 3 of 9) because it originally contained 39 characters (it now has 43), and also because the structure of the code consists of nine bars (the white space counts as a bar), with three wide and six narrow. Code 39 allows for the printing of alphanumeric characters (all alpha decode as uppercase), space, and the characters "-", ".", "$", "/", "+" and "%".
Code 128 was developed in 1981 in response to the need for a compact bar code system that could represent the full alphanumeric character set. Getting its name from the ability to code the 128 ASCII characters, Code 128 has gained wide acceptance in the field of inventory management and distribution. Code 128 holds a reputation for being a highly readable and highly accurate code.
Creating, reading, and using bar codes
While bar code technology was an expensive technology to employ when it first appeared, that's not true anymore. The basic elements required to use bar code technology are:
|•||A printer to produce the bar code labels.|
|•||A scanner/reader to read and decode the bar code data.|
|•||Software to instruct the printer on how to create a bar code label.|
I'll look at each item individually.
When bar coding was in its infancy, bar codes were often produced using impact printers, including dot matrix printers. While any printer was capable of producing bar codes, it's important to have a good ribbon and a high-quality printer, as the density and clarity of the bars is what affects the ability to read the code. As a result, many users turned to thermal transfer printers specifically designed to produce bar code labels. These printers used an ink film ribbon and a label roll. The ribbon and the label passed together under a thermal head, and the ink was bonded to the label. These produced a crisp, high-quality label. These labels could be produced in long-sequence runs, ideal for producing sequential data labels, such as shelf or bin location labels for warehousing.
This technology is still employed today as the preferred method for the creation of labels, and while it was originally quite expensive, the prices have fallen within the range of any small-to-medium business. With the advent of laser and ink jet printers, producing high-quality bar codes is within anyone's budget. Included in the accompanying Download file is ABARCODE, an add-in for Access that allows the printing of bar codes within Access reports. It's a shareware evaluation program and includes registration information. Note that this isn't software for designing or creating bar code labels; it simply allows printing of a field as a bar code within a report or screen.
Scanners and readers
A scanner is a device used to scan the bar code. It's different from a reader, in that the scanner does nothing with the code except, well, scan it. A scanner is connected to some type of reader, which does the interpreting. The scanner merely converts the data into an electrical pulse that's transmitted to the reader. Scanners can be as simple as a light pen, which is wiped across the bar code from left to right, or can be a hand-held "gun," which uses a wide laser pulse to read the entire code in one pulse (point and shoot). Larger scanners, such as those mounted in the checkouts at the grocery store, use a series of rotating light and mirrors to scan the code, regardless of the angle of presentation.
To use a bar code in an application, you need a device to read and/or decode the bar code. I say "and/or" because the devices really do fall into two categories. The first is a simple reader -- this device reads the bar code and converts the image into binary data that can be fed into an application. The most simple of these devices is a wedge. The wedge fits in between the keyboard and the CPU on a system and is connected to a light pen or scanner. The user scans the bar code, and the reader transmits the data to the wedge. The wedge then takes the data and transmits it to the user application as if it had been keyed in on the keyboard. This type of arrangement is perfect for a small business or office with a need to capture bar code information and use them in their applications.
More sophisticated readers are basically small, hand-held terminals, which can be programmed (usually in C or C++). These readers generally contain some type of display screen, and they can be used for many functions. They're connected to a scanner (or integrated with one), and the data is fed from the scanner to the reader. Since they're programmable, the reader can accept or reject the information and prompt the operator. As a result, this type of equipment is widely used in warehousing and materials management, as it can be used to pick or put goods in the warehouse and can advise the operator if the location matches the product and so forth. These devices can be a batch mode operation, which hold the scanned data internally and are then connected to the main system via an interface cable and the data downloaded, or they can be real-time radio-frequency units, which transmit the data back to the main system as it's read and verified. These units tend to be expensive.
Most applications software requires no modification to use bar code data as input, since the data is translated into binary via the reader. As mentioned with the wedge-type reader, all the bar code does is mimic typing the information in on a keyboard. As a result, a customer order, for example, coded with a bar code can be scanned into the order number field on an order entry screen and the order called up automatically on the screen.
The major software required to work with bar codes is a design package to allow the design and generation of labels. This allows the user to design the label -- with a mixture of text and label data -- and then save the label design. Variable data, such as sequential product information, can be fed to the label program, and a series of labels, such as product or bin labels, can be easily produced. Most software today is Windows-based and is WYSIWYG, so you can lay out your label online.
As you can see, the bar code goes back to the early '70s and is designed to provide a coding method for single data items. More recently, two-dimensional bar codes have come on the market. These codes are a generally a series of dots arranged in small rows, and they can be used to encode a page or more of information. They're gaining popularity in the agriculture and forestry industries, where the history and details of a product must accompany the product.
Another technology gaining popularity is that of data buttons. Similar in technology to a smart card, these are small, brass-clad chips that can be attached to a product. Utilizing a plug-in reader/writer, a user can interrogate these chips for the data they've stored and append to it. They're most notably used in the forestry industry, where conservation laws require the history of lumber to be traced through the harvesting and processing of the lumber to the mill and then to the final end user. These buttons can hold 8K or more of information.
Bringing it all together
If this all sounds too simple, it's because it is. In fact, the important things to remember when using bar codes aren't technology driven. The key points are:
|•||Don't be afraid of the technology; it really is quite simple.|
|•||The key to successful use of bar codes is the quality and durability of the bar code label itself. It must be readable to be useful.|
|•||Talk to other companies or users that have successfully implemented bar code technology. People are usually willing to talk about their projects, especially if they're successful.|
I hope I've taken some of the mystery out of bar codes and their use. Bar codes are an invaluable aid for retail warehousing and distribution, transportation, and almost any line of business.
Your download file is called ABCODE20.ZIP in the file SA1999-10down.zip
This is found in the Bronze Collection at http://www.vb123.com/smart/
Sidebar: Where Can I Use Bar Codes?
As the article suggests, bar codes are really concerned with entering data. If you use a wedge, your Access application will treat the data coming in as if it were someone typing very quickly. In the simplest application, your user can position the cursor on a field, wand in a bar code, and have the data appear in the field as if the user had keyed it in. At that point, the user presses the Enter key to bring up the record for that part number, sales order number, employee ID, or whatever information is encoded in the bar code. Some wedges can be configured to add automatic Enter or Tab keys after data input. In these situations, you treat the data as you would any set of input values and apply the appropriate edits and validation checks.
In a batch mode, retrieval of the data can be more interesting. Imagine a building where each room has a bar-coded identifier stuck on the doorframe. A user might carry a hand-held device that allowed him or her to wand in the room identifier and then enter data about the room (a guard doing a security patrol might record the status of the room, an auditor doing physical inventory might include data about the room's contents, a nurse on rounds might record patient information). On returning to the workstation, the user connects the scanner terminal to the computer, where software on the computer interrogates the device. This can be as simple as producing a flat file that you could import into an Access table and process in batch mode, or an Automation server that lets you retrieve the data interactively. Again, your concern as an Access developer is ensuring that the data is properly validated as part of being processed.
If you have any data that's being entered on a regular basis and you're concerned about the data being entered correctly, you have a candidate for bar code technology. While bar codes have successfully been stuck on almost any physical object, they can also be used to gather information on more ephemeral items as well. The real problem consists of inserting the bar code into the process. If, for instance, you wanted to use bar code readers to record goods received, then you must convince your vendors to send you bills of lading with bar codes on them. One solution is to send the bar code out with your order and request that the label be returned with the ordered goods. All the information about the order could be wanded in from the label. You can also provide your users with pre-printed sheets of information with the bar code printed beside the data. Instead of key-entering the data (for instance, the number of widgets received), the user can just wand the appropriate entry from the pre-printed sheet.
It isn't whether or not you should use bar codes, it's how you're going to use them.
Other Pages at vb123.com that you might like to read