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.
  • ["Brace Things" tag page]: Show all articles with the tag "Brace Things" (including those where "Brace Things" is a secondary tag).
  • ["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).
  • Topics Page Redesign: (Apr 22, 2022) Check out the redesigned Topics page at nolongerset.com! It's now auto-updating and optimized for discovering new content.
  • Scaling Back: (Jun 7, 2024) Publishing every day is a grind.
  • Comentario: The New Commenting Engine for NoLongerSet.com: (Mar 31, 2025) NoLongerSet.com is migrating from Commento to Comentario for our comment hosting platform. Everything should look the same...but better.
  • I'm Back: (Aug 3, 2026) Ready or not, I'm going to start writing (regularly) again. I hope you'll join me. It should be one wild ride.
  • ["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).
  • ["Move Fast" tag page]: Show all articles with the tag "Move Fast" (including those where "Move Fast" 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).

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