Access Europe – Alan Cossey (SMOG)

Alan Cossey will be demonstrating his Standard Module Object Generation (SMOG) application. This is an Access add-in used to generate VBA code which provides compile-time error checking and Intellisense for database objects such as tables and queries as well as their fields, records, parameters and so on, thus making code-writing quicker and more robust.

The meeting was held on Wednesday 1 June at 18:00 (6PM) UK time (currently UTC+1).
This is equivalent to 19:00 (7PM) in Central Europe / CEST (UTC+2) and 10AM in Seattle / PDT (UTC-7)
For other local times, see


Alan’s background is Natural Sciences. After getting his degree in Natural Sciences at Trinity College, Cambridge in 1980, he started work as a production chemist at an agrochemical company before gradually moving into more general management.

He got nudged into IT in the mid-1990s and was asked to support a solution entirely in Access, which had been created rather than wait for the IT department to do it in VB6 and Oracle. This was Alan’s introduction to Access and its ability to often create solutions more rapidly and cheaply than any other development platform.

Alan started up his own company “Premier Data Technologies Ltd.” in 2004, creating and maintaining Access-centred solutions for small and medium-sized businesses and departments in larger organisations. Such organisations have included suppliers of communication equipment to North Sea offshore companies, other chemical companies, some charities, a boiler-making company and a land search company. They have included back ends in Azure SQL database, SQL Server and MySQL as well as Access back ends.

Alan is a Christian and has been a Licensed Lay Minister in the Church of England since 2013.

SMOG Access add-in

SMOG stands for Standard Module Object Generation. Alan developed his SMOG add-in in order to make as much use as possible of both compile-time error-checking and Intellisense in Access. The main part enables database objects such as queries and tables, together with their fields and query parameters to be treated as proper database objects and have their names checked using Intellisense and catch spelling errors at compile time rather than when a user is using the application.

SMOG also significantly reduces the amount of code the developer needs to write in such circumstances.

A short example is the replacement of the following code block:

Dim db As DAO.Database
Set db = CurrentDb()
With db.TableDefs(“tblDemo”)
   Debug.Print .Fields(“PersonID”)
   Debug.Print .Fields(“PersonAddress”)
End With

… with the following code

With tblDemo
     Debug.Print .Fields(.PersonID.Name)
     Debug.Print .Fields(.PersonAddress.Name)
End With

Other functionality in SMOG includes Persisted Public Variables (PPVs), i.e. easy and retrieval of storage of variables in both front and back end tables and, again, their handling with compile-time error-checking and Intellisense.

This promises to be a very informative session for all Access developers.  Do join us



All sessions will be recorded and later uploaded to the AccessUserGroups channel on – YouTube.

If you do not wish to be part of the recording, please ensure your webcam and microphone are both switched off.


We are using Zoom as our meeting application.

Please click the link below to download Zoom, if you don’t already have it.

Get Zoom

To join our meetings, please use the following link or phone number

Join Zoom Meeting

If you are asked:

Meeting ID: 924 3129 5683
Passcode: 661210

Dial by your location:
+1 669 900 9128 US (San Jose)
+1 253 215 8782 US (Tacoma)
+1 301 715 8592 US (Washington DC)
+1 312 626 6799 US (Chicago)
+1 346 248 7799 US (Houston)
+1 646 558 8656 US (New York)
+43 12 535 502 Austria
+32 1579 5132 Belgium
+359 3 257 1633 Bulgaria
+385 1300 0988 Croatia
+420 5 3889 0161 Czech Republic
+45 32 70 12 06 Denmark
+358 9 7252 2471 Finland
+33 1 7037 9729 France
+49 69 7104 9922 Germany
+30 211 198 4488 Greece
+36 1 779 9126 Hungary
+353 1 653 3898 Ireland
+39 069 480 6488 Italy
+352 2786 4277 Luxembourg
+356 2778 1288 Malta
+31 20 241 0288 Netherlands

+48 22 307 3488 Poland
+351 308 810 988 Portugal
+40 31 630 1088 Romania
+421 233 418 515 Slovakia
+386 1600 3102 Slovenia
+34 917 873 431 Spain
+41 43 210 71 08 Switzerland
+46 850 539 728 Sweden
+44 203 481 5240 United Kingdom
+44 208 080 6591 United Kingdom

Meeting ID: 924 3129 5683
Passcode: 661210
Find your local number: