Commentary Some Bugs are Better than Others Not all bugs are created equal. Avoid the expensive ones by making more of the ones that are easy to find and fix.
Code Library Getting a Temporary File Name with VBA Here is a simple function to generate an unused temporary file name in VBA.
Code Library Finding the Temporary Folder with VBA Be a good steward of your users' file system. If you are creating temporary files, be sure to create them in the designated temporary folder.
Code Library Nothing To See Here Introducing InformNoData(), a simple function to improve the user experience when there is no report data to show.
Intermediate Parameterized Constructors in VBA VBA does not allow for parameterized constructors. We can work around that, though, using the Factory pattern and a strong naming convention.
Side-by-Side Reports in Access A simple technique to view an old and new version of a report during development, while hiding the old (or new) version in production.
AutoHotKey Streamlining SaveAsText / LoadFromText SaveAsText and LoadFromText are indispensable for Access version control. They're also annoying to type repeatedly. Let's fix that.
Version Control Reverting Unwanted Changes Using Version Control in Access is like having a time machine that makes it easy to undo design mistakes. Here's a quick overview of the process.
Version Control It's All About the Diff How can you figure out what you changed on a form when you can't remember changing anything on that form? Version control, of course.
Reports PreviewReport Function This custom function is the simplest and safest way to preview reports in any Microsoft Access application.
Reports Future Compatibility Use this trick to support future functionality while still getting your code to compile in older versions of Access.
Reports Avoid the Cascading Maximize Prevent a full screen report from forcing the calling form to be maximized with this clever workaround.
Reports The 'OpenReport' Action Was Canceled Does it annoy you that using the Report NoData event as Codd intended results in a runtime error? Because it annoys me.
Reports OpenReport Shows Wrong Data Calling DoCmd.OpenReport on a report that's already open will not update the filtering on the report. You have to close it first.
Reports Previewing Reports That sound of your printer warming up means you forgot the acViewPreview flag again. You're better off avoiding DoCmd.OpenReport entirely.
Version Control Peace of Mind from Version Control "Do you want to save your changes?" No, not if I just added temporary debugging code. But, Yes, if I also added production code. What to do?
Watches Break When Value Changes When debugging VBA, you can watch an expression and halt code execution whenever its value changes. Let's explore exactly how that works.
Watches Break When Value Is True When debugging VBA, you can watch an expression and halt code execution as soon as it evaluates to True. Let's explore exactly how that works.
Watches Watch Expression A deeper than necessary dive into the exact expression evaluation behavior of the basic "Watch Expression" in VBA.
Basic Watching and Waiting Careful what you watch for! Monitoring changes to a slow expression can grind your debug session to a halt.
Code Library How to Set a Breakpoint Inside of an Access Query Did you ever want to set a breakpoint inside of an executing query? How about inside a form event property? This trick lets you do it.
Commentary Reducing Lost Code Recovery Time How do you reduce your recovery time when you've lost a bunch of code you just wrote? To misquote Bart Simpson, "Version control, my man."
The Extra Resume: Revisited Pre-staging the extra Resume means, "there's no code to change when debugging." But is that really a good thing?
SQL Server Brent Ozar: Date Table Fan Brent Ozar, legendary SQL Server guru, makes his case for using a "Date Table." The video is all done in T-SQL, but the concepts apply equally to ACE backends.