makebarcode.com
 

 


Barcode InfoPCL FontsHome

 

Calculating a Code 128 Barcode Checksum in Access Basic
Home > Barcode Basics > Application Notes > AppNote004

This bit of Access Basic (same as Visual Basic) will calculate a Code 128 Modulo 103 checksum. Barcode fonts from different publishers may map some characters to different locations, so be sure to check.

Function Format_Code128 (InString As String) As String
    Dim Sum As Integer, i As Integer
    Dim Checksum As Integer, Checkchar As Integer
    Dim MyString As String, CVal As Integer

    '
    ' Initialize running total with value of
    ' Subset B start character
    '
    Sum = 104
    '
    ' Scan the string and add character value times position
    '
    For i = 1 To Len(InString)
        '
        ' Copy one character from InString position i to MyString
        '
        MyString = Mid$(InString, i, 1)
        '
        ' Get the numeric value of the character and subtract
        ' 32 to shift (the space character, ASCII value 32, has
        ' a numeric value of 0 as far as Code 128 is concerned)
        '
        CVal = Asc(MyString) - 32
        '
        ' Add the weighted value into the running sum
        '
        Sum = Sum + (CVal * i)
    Next i
    '
    ' Calculate the Modulo 103 checksum
    '
    Checksum = Sum Mod 103
    '
    ' Now convert this number to a character.  This conversion
    ' takes into account the particular mapping of the font
    ' being used (this example is for the font published by
    ' Azalea Software.
    '
    If Checkdigit = 0 Then
        Checkchar = 174
    ElseIf Checkdigit < 94 Then
        Checkchar = Checkdigit + 32
    Else
        Checkchar = Checkdigit + 71
    End If
    '
    ' Now format the final output string: start character,
    ' data, check character, and stop character
    '
    MyString = Chr(162) + InString + Chr(Checkchar) + Chr(164)
    Format_Code128 = MyString
End Function

   

home
Contact:  info@makebarcode.com
(c) Copyright Measurement Equipment Corporation
All Rights Reserved