Create QR Code Barcodes in TLV Format in Access
How To Create QR Code Barcodes in TLV format in Access
- This tutorial shows how to add QR Code barcodes in TLV format to your MS Access reports. The barcodes are generated using BarCodeWiz QR Code Fonts.
- We are going to use the following example file included with our fonts: QrCodeAccess_Example. You can use your own data.
- Watch the video or follow the steps below.

Step 1A. Add TLV function to your access file
- Click on Database Tools tab > Visual Basic (or press Alt + F11).

- Right-click the database and select Insert / Module.

- Copy the following text and paste it into the editor window:
Function Tlv(sellersName As String, vatNumber As String, timestamp As Date, invoiceTotal As String, vatTotal As String) Static bcwiz As Object If bcwiz Is Nothing Then Set bcwiz = CreateObject("BarCodeWizFonts.QrCode.QrCodeFonts") End If Dim tags(4) As Integer tags(0) = 1 tags(1) = 2 tags(2) = 3 tags(3) = 4 tags(4) = 5 Dim values(4) As String values(0) = sellersName values(1) = vatNumber values(2) = format(timestamp, "yyyy-MM-ddThh:mm:ssZ") values(3) = invoiceTotal values(4) = vatTotal Dim bytes() As Byte ReDim bytes(0) Dim v As Integer For v = LBound(values) To UBound(values) Dim thisB() As Byte thisB = bcwiz.GetEncodingAsBytes(values(v), "UTF-8") Dim leng As Integer leng = UBound(thisB) - LBound(thisB) + 1 If UBound(bytes) = 0 Then bytes(0) = CByte(tags(v)) Else AppendByte bytes, CByte(tags(v)) 'Tag End If AppendByte bytes, CByte(leng) 'Length AppendBytes bytes, thisB 'Value Next Dim base64 As String base64 = bcwiz.BytesToBase64(bytes) Tlv = QrCodeEncode(base64, 1, 1, True, 4) End Function Private Function AppendByte(ByRef arr() As Byte, ByRef b As Byte) Dim bytes(0) As Byte bytes(0) = b AppendBytes arr, bytes End Function Private Function AppendBytes(ByRef arr() As Byte, ByRef bytesToAppend() As Byte) Dim orgSize As Integer orgSize = UBound(arr) - LBound(arr) + 1 Dim appendSize As Integer appendSize = UBound(bytesToAppend) - LBound(bytesToAppend) + 1 ReDim Preserve arr(orgSize + appendSize - 1) Dim i As Integer For i = 0 To appendSize - 1 arr(orgSize + i) = bytesToAppend(i) Next End Function
- Click on Save button (or press Ctrl + S on your keyboard)

- Name the module: TLVModule

Step 1B. Import module with barcode functions
- Again, click on Database Tools tab > Visual Basic (or press Alt + F11).

- Right-click the database and Import File...

- Select BarCodeWizQrCode.bas
- The default location of the file is:
Program Files\BarCodeWiz\BarCodeWiz QR Code Fonts\BarCodeWizQrCode.bas

Step 2. Create a new table (or use an existing table)
- Create a new table with barcode data. Name it TLVTable (or simply use an existing table). Our table has the following data:

Step 3. Create a new report in Design Mode
- Click on Create tab > Report Design

Step 4. Set Record Source of the report
- Go to report Properties window and set the Record Source property to TLVTable (the name of our table from step 2).

Step 5. Insert a TextBox for Barcode into the Detail section or the report. Set these properties:
- Control Source: =Tlv([sellersName],[vatNumber],[timestamp],[invoiceTotal],[vatTotal])

- Can Grow: Yes

- Border Style: Transparent
- Font Name: BCW_QR
- Font Size: 8

Step 6. Print or Print Preview the report.
- The report is ready to save or print.
