Serial Port Interfacing in Microsoft Access

Table of Contents

An example how to use the StrokeReader ActiveX to control a serial port from Microsoft Access.

How to Proceed

We intentionally do not place the ActiveX on a form. Instead, we dynamically create the object when the form is loading.

Anybody who wants to place the object on a form, be prepared to deal with Access bugs or manually connect to the port by setting Connected=True using a button or when the form is loading. Do not set the Connected=True in the ActiveX properties at the design time.

The Code Example

Dim WithEvents sr As StrokeReader Private Sub Form_Load() Set sr = CreateObject("STROKESCRIBE.StrokeReaderCtrl.1") sr.Port = 3 ' Specify your serial port number here sr.BaudRate = 9600 sr.Parity = NOPARITY sr.DataBits = 8 sr.StopBits = ONESTOPBIT sr.Connected = True If sr.Error Then Debug.Print sr.ErrorDescription End If End Sub Private Sub Form_UnLoad(Cancel As Integer) Set sr = Nothing ' Destroys the serial port object when the form is unloading End Sub ' The serial port event handler. ' The data reception process is asynchronous. You don't need to poll the port. Private Sub sr_CommEvent(ByVal Evt As StrokeReaderLib.Event, ByVal data As Variant) Select Case Evt Case EVT_DISCONNECT Debug.Print "Disconnected" Case EVT_CONNECT Debug.Print "Connected" Case EVT_DATA buf = sr.Read(TEXT) ' Use BINARY to receive a byte array Debug.Print buf End Select End Sub

Open the Immediate Window (press Ctrl+G in VBA) to see output of the Debug.Print statements.

Sending the Data

If you want to send data to to the remote device, use the following code:

Sub send() sr.Send "ABCD" ' A text string End Sub

To send an array of bytes, use this code:

Sub send() Dim x(3) As Byte 'A byte array x(1) = 1 x(2) = 2 x(3) = 3 sr.Send x End Sub

Hardware Flow Control

If a serial device requires specific handshaking, use the following code to control the state of DTR/RTS lines:

sr.DTR = True sr.RTS = True
Facebook X Bluesky Youtube Contacts

© 2026 StrokeScribe. All rights reserved. Use of any portion of this site constitutes acceptance of our Terms of Use and Privacy Policy. The website material may not be reproduced, except with the prior written permission.