Topics

  • ["Access 101" tag page]: Show all articles with the tag "Access 101" (including those where "Access 101" is a secondary tag).
  • ["Advanced" tag page]: Show all articles with the tag "Advanced" (including those where "Advanced" is a secondary tag).
  • ["AI" tag page]: Show all articles with the tag "AI" (including those where "AI" is a secondary tag).
  • ["Announcement" tag page]: Show all articles with the tag "Announcement" (including those where "Announcement" is a secondary tag).
  • ["API" tag page]: Show all articles with the tag "API" (including those where "API" is a secondary tag).
  • ["Archive" tag page]: Show all articles with the tag "Archive" (including those where "Archive" is a secondary tag).
  • Archive Collection: Hidden Features: (Jan 20, 2023) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Hidden Features.
  • Archive Collection: Bug Types: (Jan 21, 2023) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Bug Types.
  • Archive Collection: twinBASIC: (Jan 22, 2023) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: twinBASIC.
  • Archive Collection: Test-Driven Development: (Jan 23, 2023) I'm on vacation! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Test-Driven Development (TDD).
  • Archive Collection: Tools: (Jan 24, 2023) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Tools.
  • Archive Collection: Defensive Programming: (Jan 25, 2023) I'm on vacation! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Defensive Programming.
  • Archive Collection: Form Design: (Jan 26, 2023) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Form Design.
  • Archive Collection: Humor: (Jan 27, 2023) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Humor.
  • Archive Collection: Field Descriptions: (Jul 24, 2023) I'm on a short vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy this curated collection of articles. Today's topic: Field Descriptions.
  • Archive Collection: String Functions: (Jan 4, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: String Functions.
  • Archive Collection: Combo Boxes: (Jan 5, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Combo Boxes.
  • Archive Collection: Window Functions: (Jan 6, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Window Functions.
  • Archive Collection: DevCon 2023: (Jan 7, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: DevCon 2023.
  • Archive Collection: Design Functions: (Jan 8, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Design Functions.
  • Archive Collection: Debugging: (Jan 9, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Debugging.
  • Archive Collection: Date Functions: (Jan 10, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Date Functions.
  • Archive Collection: Quick Tips: (May 30, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Quick Tips.
  • Archive Collection: Fluent Interfaces: (May 31, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Fluent Interfaces.
  • Archive Collection: SQL Server: (Jun 1, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: SQL Server.
  • Archive Collection: Nothing: (Jun 3, 2024) I'm on vacation (shh...don't tell anyone)! I'll be back soon, but until then enjoy today's curated collection of articles from the archive. Today's topic: Nothing...
  • ["AutoHotKey" tag page]: Show all articles with the tag "AutoHotKey" (including those where "AutoHotKey" is a secondary tag).
  • Debugging VBA with no Break Key: (Oct 27, 2020) Ever use a keyboard without a Pause/Break key? It's no big deal for most people, but if you develop in VBA it's a huge deal.
  • A Mind-Reading Script: (Oct 28, 2020) What if you could highlight any text, press a hotkey, and have Windows do what you want almost every time? You'd have my top productivity hack.
  • Expand Your Access Palette: (Oct 31, 2020) Use AutoHotkey to bring consistency to your Access color schemes and save time when designing forms.
  • Size Matters: (Nov 1, 2020) Testing your program for small screens? You could change your own monitor's resolution, but that gets annoying real fast. Here's a better way.
  • "Toggle" Hotkey for the Immediate Window: (Nov 18, 2020) Am I the only one who finds it annoying that [Ctl] + [G] doesn't *toggle* between the immediate window and the code window? Let's fix that.
  • Streamlining SaveAsText / LoadFromText: (Mar 19, 2021) SaveAsText and LoadFromText are indispensable for Access version control. They're also annoying to type repeatedly. Let's fix that.
  • Toggle ODBC TraceSQLMode with an AutoHotKey Script: (Mar 14, 2022) Traditional methods of enabling and disabling ODBC TraceSQLMode are a pain in the neck. This AutoHotKey script makes it as easy as pushing a button.
  • ["Basic" tag page]: Show all articles with the tag "Basic" (including those where "Basic" is a secondary tag).
  • ["Best Of" tag page]: Show all articles with the tag "Best Of" (including those where "Best Of" is a secondary tag).
  • My Top 10 Allen Browne Posts: (Nov 11, 2022) If you're a Microsoft Access developer and you've never heard of Allen Browne, then you are in for a treat...
  • My Top 10 Joel Spolsky Posts: (Mar 8, 2023) If you are running a small (or large) software development company, Joel Spolsky should be at the top of your reading list.
  • ["Book Review" tag page]: Show all articles with the tag "Book Review" (including those where "Book Review" is a secondary tag).
  • Code that Fits in Your Head: (Aug 15, 2023) "Code that Fits in Your Head" is to senior software developers what "Code Complete" is to junior software developers. I can think of no higher praise.
  • ["Bug Alert" tag page]: Show all articles with the tag "Bug Alert" (including those where "Bug Alert" is a secondary tag).
  • ["Bug Types" tag page]: Show all articles with the tag "Bug Types" (including those where "Bug Types" is a secondary tag).
  • Syntax Errors: (Aug 5, 2021) Every programming language has its own syntactical quirks. The C family loves braces. Python loves indentation. BASIC loves words. And Perl loves #%@!{}]&.
  • Compile Errors: (Aug 6, 2021) 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.
  • Misunderstood Requirements in the Project Design Phase: (Aug 7, 2021) 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.
  • Automated Test Errors (aka, Failing Tests): (Aug 10, 2021) 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.
  • Logic Errors: (Aug 19, 2021) The logic error is the most dangerous and insidious of all software errors.
  • Runtime Errors: (Aug 20, 2021) It's impossible to predict every possible scenario that could befall our applications in the wild. But we need to at least try.
  • Misunderstood Requirements (After You've Written the Code): (Aug 21, 2021) As you install the final piece of crown molding in the dog's second bedroom, you can't help but smile at the absurdity of it all.
  • "It Runs On My Computer": (Aug 28, 2021) Here are the 7 most common reasons I've had to utter those words as an Access developer.
  • Why You Should Learn to Love Syntax Errors: (Apr 24, 2023) The immediate negative feedback loop that syntax errors provide is a powerful learning tool.
  • ["Business" tag page]: Show all articles with the tag "Business" (including those where "Business" is a secondary tag).
  • ["ChatGPT" tag page]: Show all articles with the tag "ChatGPT" (including those where "ChatGPT" is a secondary tag).
  • Copyright Implications of ChatGPT Content: (Jan 3, 2023) ChatGPT from OpenAI is taking the world by storm. Who owns the ChatGPT output? Can you pass it off as your own? Do you need to acknowledge OpenAI?
  • ChatGPT: (Jan 4, 2023) The personal computer. Google search. The smart phone. Lifelike chat bots. Another generation-defining technology has arrived.
  • My Policy on ChatGPT-Generated Content: (Jan 5, 2023) I plan to use ChatGPT to generate content at NoLongerSet.com. But I plan to do it with full transparency. Here is my pledge to you, dear reader.
  • ChatGPT: Code-Writing Intern, Code-Reading Mentor: (Feb 13, 2024) An exploration of ChatGPT's relative strengths and weaknesses when it comes to writing vs. reading code.
  • ["Class Modules" tag page]: Show all articles with the tag "Class Modules" (including those where "Class Modules" is a secondary tag).
  • ["Code Complete" tag page]: Show all articles with the tag "Code Complete" (including those where "Code Complete" is a secondary tag).
  • ["Code Library" tag page]: Show all articles with the tag "Code Library" (including those where "Code Library" is a secondary tag).
  • ["COM" tag page]: Show all articles with the tag "COM" (including those where "COM" is a secondary tag).
  • ["Combo Boxes" tag page]: Show all articles with the tag "Combo Boxes" (including those where "Combo Boxes" is a secondary tag).
  • ["Commentary" tag page]: Show all articles with the tag "Commentary" (including those where "Commentary" is a secondary tag).
  • ["Conventions" tag page]: Show all articles with the tag "Conventions" (including those where "Conventions" is a secondary tag).
  • VBA Squeeze Box: (Sep 20, 2020) I discussed previously the differences between passing by value and passing by reference. I now want to discuss how and when I use each in my own code.
  • Enum Type Naming Convention: (Oct 9, 2020) The combination of "IntelliSense overload" and "global identifier case changes" convinced me I needed a different approach.
  • Comment Continuations: (Dec 3, 2020) Using ellipses to "group" comments separated by intervening lines of code.
  • Googleable Field Names: (Feb 7, 2021) Using globally unique field and table names will make it easier to identify where such fields and tables are used throughout your application.
  • Beautiful Blocks of Boilerplate: (May 3, 2021) Using the colon character to join multiple lines of code all willy-nilly can lead to messy code. But, used judiciously, it can create beauty from chaos.
  • Database Date Field Naming Convention: (Sep 21, 2021) Naming is hard. When it comes to naming conventions, the key is to keep things simple. Here's how I like to name the date and time fields in my databases.
  • Naming Conventions Matter: Making Wrong Code Look Wrong: (Oct 14, 2021) Joel Spolsky and Antonin Scalia join forces to help illustrate the importance of sensible code naming conventions.
  • My File System Variable Naming Convention for VBA: (Aug 9, 2022) "SourcePath" may be one of the worst variable names ever written. Is it the full path to a source file? Is it the folder where my source files are located?
  • PascalCase All the Things: (Jun 30, 2023) There is only one correct capitalization convention in VBA: PascalCase.
  • ["Debugging" tag page]: Show all articles with the tag "Debugging" (including those where "Debugging" is a secondary tag).
  • ["Deployment" tag page]: Show all articles with the tag "Deployment" (including those where "Deployment" is a secondary tag).
  • ["DevCon" tag page]: Show all articles with the tag "DevCon" (including those where "DevCon" is a secondary tag).
  • ["DoEvents" tag page]: Show all articles with the tag "DoEvents" (including those where "DoEvents" is a secondary tag).
  • ["Email" tag page]: Show all articles with the tag "Email" (including those where "Email" is a secondary tag).
  • ["Events" tag page]: Show all articles with the tag "Events" (including those where "Events" is a secondary tag).
  • The ArrowKeyNav Routine: (May 1, 2021) Enable Excel-like navigation in your continuous forms by overriding the default behavior of the up and down arrow keys.
  • ArrowKeyNav Presentation: (May 6, 2021) A list of resources and further reading to support my presentation on Navigating Continuous Forms using WithEvents.
  • Many Objects, One Class Module: (May 8, 2021) Check out this trick for reducing boilerplate code: maintain a private collection of objects that are instances of the class itself.
  • ComboBox Dropped Down State: (May 10, 2021) Overriding the up/down arrow key behavior improves the user experience on a continuous Access form. But what if the user drops down a combo box?
  • AddNew Increments AutoNumber Fields: (May 11, 2021) Thanks to Ben Clothier, we've got another improvement to our Arrow Key Navigation class.
  • The ArrowKeyNav Journey: (May 20, 2021) A full breakdown of my weArrowKeyNav class module that uses WithEvents to override the default up and down arrow key behavior in continuous Access forms.
  • ["Fluent API" tag page]: Show all articles with the tag "Fluent API" (including those where "Fluent API" is a secondary tag).
  • ["Form Design" tag page]: Show all articles with the tag "Form Design" (including those where "Form Design" is a secondary tag).
  • ["Forms" tag page]: Show all articles with the tag "Forms" (including those where "Forms" is a secondary tag).
  • ["Holiday" tag page]: Show all articles with the tag "Holiday" (including those where "Holiday" is a secondary tag).
  • Merry Christmas: (Dec 25, 2020) "...the shepherds said to one another, 'Let’s go to Bethlehem and see this thing that has happened, which the Lord has told us about.'"
  • Happy Easter: (Apr 4, 2021) “Don’t be alarmed,” he said. "You are looking for Jesus the Nazarene, who was crucified. He has risen! He is not here."
  • Merry Christmas: (Dec 25, 2021) "But the angel said to her, 'Do not be afraid, Mary; you have found favor with God. You will conceive and give birth to a son, and you are to call him Jesus.' "
  • Happy Easter: (Apr 17, 2022) "Why do you look for the living among the dead? He is not here; he has risen!"
  • Merry Christmas: (Dec 25, 2022) "...She will give birth to a son, and you are to give him the name Jesus, because he will save his people from their sins.”
  • Happy Easter: (Apr 9, 2023) “Because you have seen me, you have believed; blessed are those who have not seen and yet have believed.”
  • Merry Christmas: (Dec 25, 2023) "The Word became flesh and made his dwelling among us. We have seen his glory, the glory of the one and only Son..."
  • Happy Easter: (Mar 31, 2024) "Do not be afraid, for I know that you are looking for Jesus, who was crucified. He is not here; he has risen, just as he said."
  • Merry Christmas: (Dec 25, 2024) "For to us a child is born, to us a son is given..."
  • Happy Easter: (Apr 20, 2025) “[Mary] saw two angels in white, seated where Jesus’ body had been…They asked her, ‘Woman, why are you crying?’”
  • Merry Christmas: (Dec 25, 2025) "Then they opened their treasures and presented him with gifts of gold, frankincense, and myrrh."
  • Happy Easter: (Apr 5, 2026) "For since death came through a man, the resurrection of the dead comes also through a man. For as in Adam all die, so in Christ all will be made alive."
  • ["Humorous" tag page]: Show all articles with the tag "Humorous" (including those where "Humorous" is a secondary tag).
  • Reproducing Errors: (Oct 7, 2021) A physicist, a mechanic, and a programmer were in a car driving over a steep alpine pass when the brakes failed...
  • ["Interfaces" tag page]: Show all articles with the tag "Interfaces" (including those where "Interfaces" is a secondary tag).
  • ["Intermediate" tag page]: Show all articles with the tag "Intermediate" (including those where "Intermediate" is a secondary tag).
  • ["Leadership" tag page]: Show all articles with the tag "Leadership" (including those where "Leadership" is a secondary tag).
  • ["List Fields" tag page]: Show all articles with the tag "List Fields" (including those where "List Fields" is a secondary tag).
  • ["Long-Form" tag page]: Show all articles with the tag "Long-Form" (including those where "Long-Form" is a secondary tag).
  • ["Meta" tag page]: Show all articles with the tag "Meta" (including those where "Meta" is a secondary tag).
  • ["Migration" tag page]: Show all articles with the tag "Migration" (including those where "Migration" is a secondary tag).
  • ["Military" tag page]: Show all articles with the tag "Military" (including those where "Military" is a secondary tag).
  • ["Presentations" tag page]: Show all articles with the tag "Presentations" (including those where "Presentations" is a secondary tag).
  • Journey to Access: Part 1: (Sep 25, 2020) Many of the best Microsoft Access applications are written by people with no formal background in software development. Your origin story starts here.
  • Journey to Access: Part 2: (Sep 26, 2020) The weirdos who enjoy spending lots of time to avoid doing mundane tasks that only take a little time have their own special name: programmers. Welcome to our very weird club.
  • Journey to Access: Part 3: (Sep 27, 2020) A morass of Word documents and Excel workbooks--the invasive plant species of the Windows world--overgrowing your file system like so much digital kudzu.
  • One Step at a Time: (Jan 29, 2021) To reach great heights, take small steps.
  • Growing a Business: (Feb 13, 2021) I used to think owning a business was scary. And then I decided to start growing it.
  • Equal Parts Excited and Terrified: (Mar 29, 2021) You know you’ve found a worthy challenge when you are equal parts excited and terrified to take it on. Because that is how you grow.
  • Access DevCon 2021: Day 1: (Apr 22, 2021) If you weren't able to make it to virtual Access DevCon Vienna 2021, here's what you missed on Day 1.
  • Access DevCon 2021: Day 2: (Apr 24, 2021) If you weren't able to make it to virtual Access DevCon Vienna 2021, here's what you missed on Day 2.
  • The Gambler: (Aug 17, 2021) The most consequential piece of business advice I ever received came from the fictional owner of Pritchett's Closets & Blinds.
  • "This feels weird.": (Sep 20, 2021) My nine-year-old son got hit in the head at soccer practice the other day. His reaction reminds me of my own professional software development journey.
  • How to Write a Daily Article: (Nov 4, 2021) Publishing an article every day is not for the faint of heart. But the benefits compound if you can stick with it.
  • UNC Alias for a Local Folder: (Nov 13, 2021) The subst command lets us mimic mapped network drives. But what if your backend tables are linked using UNC paths? Don't worry. We can handle those, too!
  • $5,999: Microsoft's Insane Price for Access 2013: (Jul 20, 2022) Microsoft does not make it easy to buy old versions of Access, even though you need them to distribute compiled .accde files for *still-supported* runtimes.
  • The Robot, the Technician, and the Fixer: (Jul 28, 2022) What type of Microsoft Access developer are you? Being a robot is easy, being a technician is fun, but being a fixer is valuable.
  • Learning From Other Languages: (Nov 17, 2022) Even if you only write code professionally in a single language, learning the concepts and idioms of other languages will make you a better programmer.
  • Learning From Other Coding Styles: (Nov 18, 2022) Will learning multiple coding styles make you a better programmer? And, does it make sense to import those coding styles into your primary language?
  • ["Prompt School" tag page]: Show all articles with the tag "Prompt School" (including those where "Prompt School" is a secondary tag).
  • ["Quick Tip" tag page]: Show all articles with the tag "Quick Tip" (including those where "Quick Tip" is a secondary tag).
  • ["Quotes" tag page]: Show all articles with the tag "Quotes" (including those where "Quotes" is a secondary tag).
  • ["Recap" tag page]: Show all articles with the tag "Recap" (including those where "Recap" is a secondary tag).
  • ["Reports" tag page]: Show all articles with the tag "Reports" (including those where "Reports" is a secondary tag).
  • ["Ribbon" tag page]: Show all articles with the tag "Ribbon" (including those where "Ribbon" is a secondary tag).
  • Good. Better. Best.: (Dec 16, 2020) Take the test to see where your (or someone else's) Access application stands.
  • MS Access Risk Management: (Dec 20, 2020) Applying US Army risk management techniques to assess Microsoft Access application risk.
  • Proving the Concept with Access: (Dec 26, 2020) Committing to a major custom software development project is fraught with risk. Reduce that risk by prototyping in Access first.
  • Securing Your Data: (Feb 8, 2021) Relying on application-level security to protect your data would be like using guard rails to keep out your enemies.
  • Mail: An Allegory: (Feb 14, 2021) Behold, the world's greatest literary allegory since George Orwell penned "Animal Farm."
  • The Allegory Explained: (Feb 15, 2021) What does delivering mail have to do with writing software applications? I'm glad you asked.
  • Cowpathing with Microsoft Access: (Nov 26, 2021) How do you decide where to spend your software development dollars? Don't guess what your users need, let them show you with Access.
  • ["Series" tag page]: Show all articles with the tag "Series" (including those where "Series" is a secondary tag).
  • ["ShowForm" tag page]: Show all articles with the tag "ShowForm" (including those where "ShowForm" is a secondary tag).
  • No Longer Set: (Oct 30, 2020) Signal is information that conveys meaning. Noise obscures that information. The key to writing good software is to maximize signal and minimize noise.
  • When Good Comments Go Bad: (Nov 10, 2020) Bad actors carry out disinformation campaigns to poison our discourse. But when we write code, sometimes we're the bad actors.
  • Signal vs. Noise: Error Handling: (Nov 20, 2020) To boost our signal to noise ratio, we can increase our lines of meaningful code or decrease the lines of boilerplate.
  • Signal vs. Noise: ShowPlan.out Edition: (Mar 16, 2022) Reading showplan.out files can be intimidating for new and experienced Access developers alike. This simple rule will help get you started.
  • ["SQL" tag page]: Show all articles with the tag "SQL" (including those where "SQL" is a secondary tag).
  • ["SQL Azure" tag page]: Show all articles with the tag "SQL Azure" (including those where "SQL Azure" is a secondary tag).
  • ["SQL Server" tag page]: Show all articles with the tag "SQL Server" (including those where "SQL Server" is a secondary tag).
  • ["Subforms" tag page]: Show all articles with the tag "Subforms" (including those where "Subforms" is a secondary tag).
  • ["TempVars" tag page]: Show all articles with the tag "TempVars" (including those where "TempVars" is a secondary tag).
  • ["Testing" tag page]: Show all articles with the tag "Testing" (including those where "Testing" is a secondary tag).
  • Throwback Thursday: June 13, 2024: (Jun 13, 2024) In this inaugural installment of Throwback Thursday, we focus on the intersection of programming, business, and careers (plus some classic XKCD).
  • Throwback Thursday: June 20, 2024: (Jun 20, 2024) Today's edition of Throwback Thursday is all about query tuning in Microsoft Access.
  • Throwback Thursday: June 27, 2024: (Jun 27, 2024) Today's edition of Throwback Thursday is all about naming things, one of the two hard problems in computer science.
  • Throwback Thursday: July 4, 2024: (Jul 4, 2024) Happy Independence Day, America! (Or as my family in Scotland prefers to greet us on this glorious anniversary, "Happy Treason Day, you ungrateful colonists.")
  • Throwback Thursday: July 11, 2024: (Jul 11, 2024) For those new to databases (and seasoned pros), queries are a mind-bogglingly amazing and infuriatingly obstinate tool. These tips help tame the beast.
  • Throwback Thursday: July 18, 2024: (Jul 18, 2024) Today's edition is all about Unicode, character sets, and Windows Alt Codes. It turns out English is NOT the world's only written language. Who knew?!?!
  • Throwback Thursday: July 25, 2024: (Jul 25, 2024) Today's edition of Throwback Thursday is all about the dangers of password reuse and a couple of tools to help you avoid the temptation.
  • Throwback Thursday: August 1, 2024: (Aug 1, 2024) Today's edition of Throwback Thursday explores the paradox of reliable software: better software -> increased user trust -> more potential for harm.
  • Throwback Thursday: August 8, 2024: (Aug 8, 2024) Today's edition of Throwback Thursday is all about pricing and estimating custom software development work.
  • Throwback Thursday: August 15, 2024: (Aug 15, 2024) Teach your VBA editor new tricks: dark mode, a shortcut key for commenting blocks of code, and a probably-too-clever block-comment syntax.
  • Throwback Thursday: August 22, 2024: (Aug 22, 2024) Today's edition is all about controlling how and where Access forms open on your screen.
  • Throwback Thursday: August 29, 2024: (Aug 29, 2024) Today's edition of Throwback Thursday is all about how Access talks to SQL Server. It's much chattier than you realize.
  • Throwback Thursday: September 5, 2024: (Sep 5, 2024) How do non-programmers become Access developers? We explore a common career arc in today's edition of Throwback Thursday.
  • Throwback Thursday: September 12, 2024: (Sep 12, 2024) Today's edition of Throwback Thursday highlights my three most-used string functions: Conc(), Qt(), and Parse(), used to join words, quote words, and extract words.
  • Throwback Thursday: September 19, 2024: (Sep 19, 2024) In today's edition of Throwback Thursday, I revisit the one VBA add-in I can't live without: vbWatchdog.
  • Throwback Thursday: September 26, 2024: (Sep 26, 2024) Short on time? In today's edition of Throwback Thursday, we explore a few of my favorite articles in my Under 100 series--complex topics explained in under 100 words.
  • Throwback Thursday: October 3, 2024: (Oct 3, 2024) In today's edition of Throwback Thursday, we revisit a few of my favorite techniques to keep out of trouble when debugging code and editing live data.
  • Throwback Thursday: October 10, 2024: (Oct 10, 2024) In today's edition of Throwback Thursday, we address Access consultants' biggest fear: the dreaded software proposal.
  • Throwback Thursday: October 17, 2024: (Oct 17, 2024) Today's edition of Throwback Thursday is all about one of my two favorite programming books: "Code That Fits in Your Head," by Mark Seemannn.
  • Throwback Thursday: October 24, 2024: (Oct 24, 2024) In today's edition of Throwback Thursday, we demystify the WithEvents keyword in VBA and then dive deep into some practical uses for it.
  • Throwback Thursday: October 31, 2024: (Oct 31, 2024) In today's edition of Throwback Thursday, we revisit my RegEx wrapper functions for VBA, while looking ahead to a future without VBScript.dll.
  • Throwback Thursday: November 7, 2024: (Nov 7, 2024) Follow along to see how I used Test-Driven Development to replace hard-coded holiday dates with a robust, history-aware date engine in today's edition of Throwback Thursday.
  • Throwback Thursday: November 14, 2024: (Nov 14, 2024) In today's edition of Throwback Thursday, we explore a topic near and dear to my heart: Version Control with Microsoft Access.
  • Throwback Thursday: November 21, 2024: (Nov 21, 2024) In today's edition of Throwback Thursday, we revisit my annual twinBASIC talks at DevCon Vienna in honor of my presentation to the UK Access User Group yesterday.
  • Throwback Thursday: November 28, 2024: (Nov 28, 2024) Discover three mindset shifts that can transform you from a developer into a high-value consultant in today's edition of Throwback Thursday.
  • Throwback Thursday: December 5, 2024: (Dec 5, 2024) Learn how to enhance TempVars with type safety, IntelliSense, and compile-time checking in today's edition of Throwback Thursday.
  • Throwback Thursday: December 12, 2024: (Dec 12, 2024) Check out my three most-used everyday tools in today's edition of Throwback Thursday.
  • Throwback Thursday: December 19, 2024: (Dec 19, 2024) How do you loop by month in VBA? Coding it clearly is surprisingly difficult. We explore several approaches in today's edition of Throwback Thursday.
  • Throwback Thursday: December 26, 2024: (Dec 26, 2024) In today's edition of Throwback Thursday, we tackle every programmer's favorite topic: Technical Debt.
  • Throwback Thursday: January 2, 2025: (Jan 2, 2025) In today's edition of Throwback Thursday, we revisit some of my favorite Allen Browne-inspired articles.
  • Throwback Thursday: January 9, 2025: (Jan 9, 2025) Today's edition of Throwback Thursday is all about the DoEvents function: What it is; Where to use it; When to use it; Why it works; and How it works.
  • Throwback Thursday: January 16, 2025: (Jan 16, 2025) We explore the value of learning other programming languages and incorporating elements from them into VBA in today's edition of Throwback Thursday.
  • Throwback Thursday: January 23, 2025: (Jan 23, 2025) We dive into the difference between IIf() and IIf()--that's not a typo--in today's edition of Throwback Thursday.
  • Throwback Thursday: January 30, 2025: (Jan 30, 2025) In today's edition of Throwback Thursday, we dive into one of my core programming principles: some bugs are better than others (with a "real-life" lesson from Office Space).
  • Throwback Thursday: February 6, 2025: (Feb 6, 2025) We dive into the deep end of debugging VBA in today's edition of Throwback Thursday. We cover the Watch window, including how to avoid some nasty performance side effects.
  • Throwback Thursday: February 13, 2025: (Feb 13, 2025) In today's edition of Throwback Thursday, we explore the greatest gift we can give to future programmers: writing readable code.
  • Throwback Thursday: February 20, 2025: (Feb 20, 2025) In today's edition of Throwback Thursday, we explore a few of my favorite AutoHotkey scripts for Access development.
  • Throwback Thursday: February 27, 2025: (Feb 27, 2025) Today's edition of Throwback Thursday is all about 64-bit VBA: updating your 32-bit code to run in 64-bit, 32 vs. 64-bit Office, and tools to help with the conversion.
  • Throwback Thursday: March 6, 2025: (Mar 6, 2025) Today's edition of Throwback Thursday is chock full of tips and tricks to emulate your client's production environment during development.
  • Throwback Thursday: March 13, 2025: (Mar 13, 2025) Today's edition of Throwback Thursday is about one of VBA's most underappreciated features: the humble Enum statement.
  • Throwback Thursday: March 20, 2025: (Mar 20, 2025) In today's edition of Throwback Thursday, we explore the role of "feature gates" (aka, "feature flags") in Microsoft Access (and Microsoft Office more broadly).
  • Throwback Thursday: March 27, 2025: (Mar 27, 2025) In today's edition of Throwback Thursday, we explore how to create GUIDs in your Access applications and how you can use them to simplify creating temporary files.
  • Throwback Thursday: April 3, 2025: (Apr 3, 2025) In today's edition of Throwback Thursday, we look back at past Access DevCon Vienna conferences (and forward to next week's conference).
  • Throwback Thursday: April 10, 2025: (Apr 10, 2025) Today's edition of Throwback Thursday is all about testing: Python-inspired doc tests, my B-BEAR quick and dirty T-SQL test technique, and a proper SQL Server unit testing tool.
  • Throwback Thursday: April 17, 2025: (Apr 17, 2025) "Boring is beautiful." In today's Throwback Thursday, we're confronted with the uncomfortable truth that the best software is often uninteresting to write.
  • Throwback Thursday: April 24, 2025: (Apr 24, 2025) Today's edition of Throwback Thursday is all about building file names, verifying folder paths, and other related file system activities.
  • Throwback Thursday: May 1, 2025: (May 1, 2025) In this week's edition of Throwback Thursday, we explore the magic of "self-healing" object variables and caching in VBA.
  • Throwback Thursday: May 8, 2025: (May 8, 2025) Today's edition of Throwback Thursday is all about scripting major SQL Server operations like backing up, cloning databases, and server migrations.
  • Throwback Thursday: May 15, 2025: (May 15, 2025) This week's Throwback Thursday article features tips, tricks, and tools for tracking down hard-to-diagnose bugs.
  • Throwback Thursday: May 22, 2025: (May 22, 2025) We revisit one of my all-time favorite articles in today's edition of Throwback Thursday. The topic is dry (LLCs, S Corps, and C Corps, oh my!), but the writing is not.
  • Throwback Thursday: May 29, 2025: (May 29, 2025) In today's edition of Throwback Thursday, we revisit one of my favorite techniques: guard clauses--my secret weapon for avoiding Dante Alighieri-levels of nesting.
  • Throwback Thursday: June 5, 2025: (Jun 5, 2025) In today's edition of Throwback Thursday, we explore two common data structures used to store multiple objects in VBA: Collections and Dictionaries.
  • Throwback Thursday: June 12, 2025: (Jun 12, 2025) Today's edition of Throwback Thursday is an homage to the "citizen developer"--largely responsible for Access's 30-year domination in the desktop database market.
  • Throwback Thursday: June 19, 2025: (Jun 19, 2025) This week's edition of Throwback Thursday is all about the tool we use to track hours at my software development company (plus how--and why--we got here).
  • Throwback Thursday: June 27, 2025: (Jun 26, 2025) Today's edition of Throwback Thursday is an homage to the fine art of software maintenance...and how we can make this thankless chore easier on our future selves.
  • Throwback Thursday: July 3, 2025: (Jul 3, 2025) Today's edition of Throwback Thursday is a deep dive into an underused tool in the VBA debugging toolkit: the Watch Window.
  • Throwback Thursday: July 10, 2025: (Jul 10, 2025) Today's edition of Throwback Thursday explores a structured approach to safely rewrite a complex VBA function as a lightning-quick SQL Server scalar function.
  • Throwback Thursday: July 17, 2025: (Jul 17, 2025) In today's edition of Throwback Thursday, we explore several techniques for looping and grouping by month in Access and SQL Server.
  • Throwback Thursday: July 24, 2025: (Jul 24, 2025) In today's Throwback Thursday, we revisit several clever tricks to create consistent development environments across multiple devices and users.
  • Throwback Thursday: August 7, 2025: (Aug 7, 2025) We dive into the mysterious and wonderful world of the hidden Access WizHook object in today's edition of Throwback Thursday.
  • Throwback Thursday: August 14, 2025: (Aug 14, 2025) In today's edition of Throwback Thursday, we resurface some of Access and VBA's most deeply "hidden" features.
  • Throwback Thursday: August 21, 2025: (Aug 21, 2025) Today's edition of Throwback Thursday uncovers Access's secret superpower: proving whether your custom software project is worth pursuing at all.
  • Throwback Thursday: August 28, 2025: (Aug 28, 2025) In today's edition of Throwback Thursday, we explore three different ways to determine the type of a variable in VBA.
  • Throwback Thursday: September 4, 2025: (Sep 4, 2025) Setting up a new SQL Server instance? Today's edition of Throwback Thursday is a one-stop shop for all your configuration, connection, and automated backup needs.
  • Throwback Thursday: September 11, 2025: (Sep 11, 2025) In this epoch edition of Throwback Thursday, we explore several key compatibility considerations between Access and SQL Server.
  • Throwback Thursday: September 18, 2025: (Sep 18, 2025) In this week's edition of Throwback Thursday, we explore the value of Abbreviation columns in lookup tables, how to automate populating them, and why they improve your apps.
  • Throwback Thursday: September 25, 2025: (Sep 25, 2025) Today's edition of Throwback Thursday is all about knowing when (and how) to convert a fit-for-purpose procedure into a generic, reusable routine.
  • Throwback Thursday: October 2, 2025: (Oct 2, 2025) Today's edition of Throwback Thursday is all about subtlety. The subtle differences between + and &; between . and !; between IsNull() and Is Null; and between IIf and IIf.
  • Throwback Thursday: October 9, 2025: (Oct 9, 2025) In today's edition of Throwback Thursday, we look back at a few tips for staying out of trouble when writing one-off or temporary code.
  • Throwback Thursday: October 16, 2025: (Oct 16, 2025) In today's edition of Throwback Thursday, we revisit one of my most popular functions--NewSort()--which enables easy sorting of columns in continuous forms.
  • Throwback Thursday: October 23, 2025: (Oct 23, 2025) In today's edition of Throwback Thursday, we revisit another of my most popular functions--Pluralize()--which lets you adapt your string(s) ... <- to avoid this ugliness.
  • Throwback Thursday: October 30, 2025: (Oct 30, 2025) In today's edition of Throwback Thursday, we revisit my presentation on building ribbon interfaces in code, along with other ribbon-related goodies.
  • Throwback Thursday: November 6, 2025: (Nov 6, 2025) Report captions add polish to your Access applications. In today's edition of Throwback Thursday, we resurface some tips and techniques to make them easier to manage.
  • Throwback Thursday: November 13, 2025: (Nov 13, 2025) In today's edition of Throwback Thursday, we revisit some tips and techniques for dealing with debugging challenges that have vexed me over the years.
  • Throwback Thursday: November 20, 2025: (Nov 20, 2025) In today's Throwback Thursday, we revisit one of my favorite VBA hacks: a hidden attribute that unlocks IntelliSense when looping through a collection of custom class instances.
  • Throwback Thursday: November 27, 2025: (Nov 27, 2025) In today's edition of Throwback Thursday, we revisit my B-BEAR technique (Begin, Before, Execute, After, Rollback): the only way I make live changes to SQL Server production data.
  • Throwback Thursday: December 4, 2025: (Dec 4, 2025) In today's edition of Throwback Thursday, we explore how you can deliver more value to your clients as an Access developer.
  • Throwback Thursday: December 11, 2025: (Dec 11, 2025) Today's edition of Throwback Thursday is a reminder not to undervalue what you know and can do with Microsoft Access (no matter what you might hear on Stack Overflow).
  • Throwback Thursday: December 18, 2025: (Dec 18, 2025) Freshen up your Access forms and take your checkboxes to the next level with these modern on/off buttons in today's edition of Throwback Thursday.
  • Throwback Thursday: January 1, 2026: (Jan 1, 2026) When you think of Access, should you think of emoji? In today's edition of Throwback Thursday, all signs point to yes.
  • Throwback Thursday: January 8, 2026: (Jan 8, 2026) In today's edition of Throwback Thursday, we revisit a technique that lets you pause code until a form or report is closed--without some of the drawbacks of dialog forms.
  • Throwback Thursday: January 15, 2026: (Jan 15, 2026) In today's edition of Throwback Thursday, we explore the subtleties of storing and displaying time spans in Microsoft Access.
  • Throwback Thursday: January 22, 2026: (Jan 22, 2026) In today's edition of Throwback Thursday, we revisit how to handle "untrappable" Access errors via the Form Error event.
  • Throwback Thursday: January 29, 2026: (Jan 29, 2026) In today's edition of Throwback Thursday, we revisit one of my favorite analogies for comparing traditional Access "version control" with real text-based version control.
  • Throwback Thursday: February 5, 2026: (Feb 5, 2026) In today's edition of Throwback Thursday, we revisit my article on Documentation-First Development--an increasingly useful concept in the age of AI-assisted development.
  • Throwback Thursday: February 12, 2026: (Feb 12, 2026) In today's edition of Throwback Thursday, we review one of the most important concepts in SQL Server security: role-based access control.
  • Throwback Thursday: February 20, 2026: (Feb 19, 2026) Take your VBA string-building skills to the next level in today's edition of Throwback Thursday.
  • Throwback Thursday: February 26, 2026: (Feb 26, 2026) In today's edition of Throwback Thursday, we explore the wonderful, mysterious world of COM, the tech that allows us to automate Excel from Access.
  • Throwback Thursday: March 5, 2026: (Mar 5, 2026) Today's edition of Throwback Thursday is all about autonumbers and primary keys.
  • Throwback Thursday: March 12, 2026: (Mar 12, 2026) With the coming end of life of SQL Server 2016, we revisit a few articles with tips on scripting those migrations In today's edition of Throwback Thursday.
  • Throwback Thursday: March 19, 2026: (Mar 19, 2026) In today's edition of Throwback Thursday, we revisit a few articles on VBA's most powerful underused feature: class modules.
  • Throwback Thursday: March 26, 2026: (Mar 26, 2026) In today's edition of Throwback Thursday, we review some common gotchas of the SQL BETWEEN statement and how to avoid falling victim to these potential logic errors.
  • Throwback Thursday: April 2, 2026: (Apr 2, 2026) In today's edition of Throwback Thursday, we revisit some of the problems with global constants in VBA and my preferred alternative.
  • Throwback Thursday: April 9, 2026: (Apr 9, 2026) In today's edition of Throwback Thursday, we revisit some foundational articles on twinBASIC to get you ready for next week's annual DevCon Vienna conference.
  • Throwback Thursday: April 16, 2026: (Apr 16, 2026) In today's edition of Throwback Thursday, we revisit some advanced articles on twinBASIC to get you ready for my talk tomorrow at DevCon Vienna 2026.
  • Throwback Thursday: April 23, 2026: (Apr 23, 2026) Today's edition of Throwback Thursday revisits the pitfalls of leaving old code and database fields around and answers the question, "What could it hurt?"
  • Throwback Thursday: April 30, 2026: (Apr 30, 2026) In today's edition of Throwback Thursday, we revisit the bane of my VBA coding existence: the IDE's case-changing "feature."
  • Throwback Thursday: May 7, 2026: (May 7, 2026) In today's edition of Throwback Thursday, we revisit a few articles on VBA memory management and the "Large Address Aware" (LAA) flag in Microsoft Access.
  • ["Tools" tag page]: Show all articles with the tag "Tools" (including those where "Tools" is a secondary tag).

All original code samples by Mike Wolfe are licensed under CC BY 4.0