Basic Proper Use of Global State With great power comes great responsibility. Use global variables wisely.
Basic Pseudocode Programming Practice Is it bad practice to write comments first and then code? Not at all. In fact, it's one of the most powerful techniques in building good code.
Technical Debt Overuse of Global State You wouldn't control the water temperature in your entire house from a single location. Why would you write your code that way?
Technical Debt Old Fields Left in Place Leaving old fields in place is even worse than leaving old code. Instead of runtime errors, you'll end up with harder-to-detect data errors.
Technical Debt Old Code Left in Place What's the harm in leaving old code in place? It's not like it costs us anything. ... Or does it?
Intermediate Sources of Technical Debt Dealing with technical debt is no fun. It's better to avoid it in the first place. To help with that, here's a list of common sources of technical debt.
Commentary Declaration of Database Design Altering the schema of a production database is not a step to be taken lightly. But when requirements dictate, it must be done.
Code Library Setting MultiSelect At Runtime You can't actually set a list box's MultiSelect property at runtime. But there are a few ways to work around the limitation. Let's explore them.
Intermediate Decompile Before Deployment Before deploying my Access applications, I like to strip them down to their bare bones.
Intermediate To Compile or Not to Compile With the proper deployment infrastructure in place, distributing uncompiled Access apps can simplify your life versus compiled Access apps.
Business Google Analytics Alternatives Avoid GDPR cookie-consent forms and respect your website users' privacy with one of these privacy-friendly Google Analytics alternatives.
Advanced Fluent Interfaces It's probably irresponsible of me to share the following technique with you because you'll be so tempted to abuse it. But let's do it anyway.
Tools Installing and Updating Access Applications Want to be a professional Access developer? Then you can't ask your clients to copy and paste .accdb files to their computers. What do you do instead?
Basic Constructing Version Numbers Every program needs a version number. But there's no need to overthink it. When versioning Access apps, less is more.
Business Pricing Annual Technical Support How am I trying to fix my biggest business mistake? By giving my clients three options that explicitly address their risk tolerance.
Business My Biggest Business Mistake What's the best way to bill for ongoing technical support? I don't really know (HA!). But I think I know the worst way to do it.
Business My Personal Journey Join me on a self-indulgent trip down memory lane, rationalized as a "context-setting" exercise for future business-focused articles.
SQL Server Yes/No Fields in SQL Server The SQL Server equivalent of an Access Yes/No field is the "bit" data type. Or is it?
SQL Server Working around the "Reboot Required" error when installing SQL Server A previous installation required a reboot... To proceed, [uninstall ODBC Driver 17,] restart your computer and then run Setup again.
Commentary Access Migrations Data migrations are high risk operations. You can't prepare for every pitfall, but a good plan will maximize your chances of success.
SQL Server SQL Server Read-Only Mode Before running a final data migration, you want to ensure no further changes will be made to the old data. One way to do that is to set the database to read-only.
Commentary How It's Always Been Done Good programmers know how to code. Great programmers know why. The best programmers question why.