Bug Types Automated Test Errors (aka, Failing Tests) You can have a bug in your code and/or in your test. You're unlikely to have the *same* bug in your code and your test.
Basic How to Pause Your VBA Code For a Set Amount of Time There is no built-in function to pause code in VBA. The easiest and safest way to do it is to use the Sleep API function. Here's a quick how-to.
twinBASIC Weekly Update twinBASIC Update: August 8, 2021 Highlights include a revamped references list UX, a 100%-twinBASIC-compatible Printers object replacement, and news on unit testing and documentation.
Bug Types Misunderstood Requirements in the Project Design Phase Your client knows what's wrong. They *think* they know how to fix it. But treating symptoms is never as effective as treating the disease.
Bug Types Compile Errors Compile errors are easy to keep out of deployed code (just remember to Debug > Compile). Which is good because they hard crash Access in Runtime mode.
Bug Types Syntax Errors Every programming language has its own syntactical quirks. The C family loves braces. Python loves indentation. BASIC loves words. And Perl loves #%@!{}]&.
Defensive Programming The RecordsAffected Property is a Powerful Tool for Defensive Programming As developers, we need to constantly be thinking about how to handle unknown unknowns. The RecordsAffected property helps us do that.
Basic Avoid DoCmd.RunSQL in Microsoft Access If you are just starting out writing VBA in Microsoft Access, you may be tempted to use DoCmd.RunSQL. Don't. There is a better way.
Tools RegEx101.com Writing and reading regular expressions is like speaking a foreign language. Think of regex101.com like Google Translate for regexes.
twinBASIC Weekly Update twinBASIC Update: August 1, 2021 Highlights include VSCode CodeLens support, compiler warnings, VB_GlobalNameSpace support, and twinBASIC's debut on stackoverflow.
Combo Boxes A Lazy-Loading Combo Box In Only 3 Lines of Code Combo boxes that pull down too many records can slow down your Access forms. Boost performance with my class module and 3 lines of code.
Combo Boxes A Wonderful, Magical Class Module Imagine a single class module you can use for progressive combo box filtering, lazy loading combo boxes, AND multi-column filtering!
Version Control Learn to Love Text-Based Version Control with "Highlights for Children" Why use text-based version control for visual objects like forms and reports? I'll tell you why, but first, find all the differences between these two pictures...
Intermediate Enforcing a Single-Row Table in MS Access and SQL Server There are many uses for a table with one--and only one--row in it. Using such a table is simpler if you can rely on the sanctity of its one-row-ness.
Intermediate Office 2019 Runs in 64-bit Mode By Default. Here's What That Means for VBA Developers Through Office 2016, default installs used the 32-bit version of the software. Now that 64-bit is the default, it's time to bite the bullet and convert your VBA code.
DoEvents DoEvents vs. Repaint in Microsoft Access Can you use the Repaint method in place of the DoEvents function? It depends on what you're trying to do. Let's explore with some sample code.
twinBASIC Weekly Update twinBASIC Update: July 25, 2021 Highlights include unique icon colors for each code file type, plus Standard vs. Professional vs. Ultimate editions, pricing, pre-orders, and early-bird discounts.
Basic Poor Man's Status Bar in VBA If you're looking for a quick and dirty way to keep track of a long-running process while developing, this VBA one-liner will do the trick.
DoEvents How DoEvents Works: The Nitty-Gritty Technical Details A peek behind the scenes at the inner workings of the DoEvents function.
Commentary Microsoft and VBA: A Love(less) Story Whatever happened to the passion Microsoft once had for VBA? From love story to marriage of convenience, this article is one weird ride.
Intermediate The "Unset" Enum Item This simple technique is a foolproof way to avoid the sort of logic bug that can live undetected in your codebase for years.
Tools 3 Ways to Run the Best Low-Level Windows Debugging Tool A surprising number of thorny Access performance issues can be resolved with this venerable tool. Here's how to get started with Process Monitor.
DoEvents A High-Level Overview of the DoEvents Function Call Why does calling DoEvents save us from the dreaded "(Not Responding)" treatment? It's all about handling "Windows Messages."
twinBASIC Weekly Update twinBASIC Update: July 18, 2021 Highlights include continued work on the GUI plus future support for web forms and IntelliSense in the Debug Console.
DoEvents When (or Should I Say, How Often) to Call DoEvents Too few calls to DoEvents, and your app may appear to be "(Not Responding)." Too many calls to DoEvents, and your app will run slow. Let's Goldilocks this thing.